使用phpseclib和net_ssh如何使用$ssh-> exec su到root
发布时间:2020-12-13 23:04:35 所属栏目:Linux 来源:网络整理
导读:所以我需要执行一个命令但它只会运行,如果我su到root(或sudo)但我似乎无法弄清楚如何将命令发送到su到root (我可以使用loginuser登录并执行其他命令) http://phpseclib.sourceforge.net/ssh/examples.html 我的代码如下 ?phpinclude('Net/SSH2.php');$ssh =
所以我需要执行一个命令但它只会运行,如果我su到root(或sudo)但我似乎无法弄清楚如何将命令发送到su到root
(我可以使用loginuser登录并执行其他命令) http://phpseclib.sourceforge.net/ssh/examples.html 我的代码如下 <?php include('Net/SSH2.php'); $ssh = new Net_SSH2('255.255.255.255',22); if (!$ssh->login('loginuser','fakepassword')) { exit('Login Failed'); } echo $ssh->read('[prompt]'); echo $ssh->write("sun"); echo $ssh->read('Password:'); echo $ssh->write("rootfakepassword"); echo $ssh->read('[prompt]'); echo $ssh->exec('cc get_wireless_status'); ?> 我也尝试使用exec命令做大致相同的事情而没有运气 有什么建议? 当前版本的代码(不起作用) <?php include('Net/SSH2.php'); $ssh = new Net_SSH2('255.255.99.74',22); if (!$ssh->login('loginuser','password')) { exit('Login Failed'); } echo $ssh->read('loginuser@intranet:/home/login >'); $ssh->write("sun"); echo $ssh->read('Password:'); $ssh->write("rootpasswordn"); echo $ssh->read('intranet:/home/login #'); $ssh->write("cc get_wireless_statusn"); echo $ssh->read('[prompt]'); ?> 腻子文本的登录 login as: loginuser loginuser@255.255.99.74's password: Last login: Thu Feb 14 13:57:16 2013 from infong1045.lxa.perfora.net Sophos UTM (C) Copyrights by Astaro and by others 2000-2012. For more copyright information look at /doc/astaro-license.txt or http://www.astaro.com/doc/astaro-license.txt NOTE: Any modifications done by root will void your support. Please use WebAdmin for any configuration changes. loginuser@intranet:/home/login > su Password: intranet:/home/login # 来自最新版本的代码的响应 Last login: Thu Feb 14 14:00:00 2013 from 10.10.10.194 Sophos UTM (C) Copyrights by Astaro and by others 2000-2012. For more copyright information look at /doc/astaro-license.txt or http://www.astaro.com/doc/astaro-license.txt NOTE: Any modifications done by root will void your support. Please use WebAdmin for any configuration changes. loginuser@intranet:/home/login > Last login: Tue Feb 19 11:09:18 2013 from infong1045.lxa.perfora.net Sophos UTM (C) Copyrights by Astaro and by others 2000-2012. For more copyright information look at /doc/astaro-license.txt or http://www.astaro.com/doc/astaro-license.txt NOTE: Any modifications done by root will void your support. Please use WebAdmin for any configuration changes. loginuser@intranet:/home/login > su Password: intranet:/home/login # Last login: Tue Feb 19 11:09:23 2013 from infong1045.lxa.perfora.net Sophos UTM (C) Copyrights by Astaro and by others 2000-2012. For more copyright information look at /doc/astaro-license.txt or http://www.astaro.com/doc/astaro-license.txt NOTE: Any modifications done by root will void your support. Please use WebAdmin for any configuration changes. loginuser@intranet:/home/login > cc get_wireless_status -bash: /usr/local/bin/confd-client.plx: Permission denied loginuser@intranet:/home/login > 解决方法
这应该工作:
<?php include('Net/SSH2.php'); $ssh = new Net_SSH2('www.domain.tld'); if (!$ssh->login('username','password')) { exit('Login Failed'); } echo $ssh->read('username@username:~$'); $ssh->write("sun"); echo $ssh->read('Password:'); $ssh->write("passwordn"); echo $ssh->read('username@username:~#'); $ssh->write("cc get_wireless_statusn"); echo $ssh->read('[prompt]'); ?> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |