所以我需要执行一个命令但它只会运行,如果我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("su\n"); 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("su\n"); echo $ssh->read('Password:'); $ssh->write("rootpassword\n"); echo $ssh->read('intranet:/home/login #'); $ssh->write("cc get_wireless_status\n"); 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("su\n"); echo $ssh->read('Password:'); $ssh->write("password\n"); echo $ssh->read('username@username:~#'); $ssh->write("cc get_wireless_status\n"); echo $ssh->read('[prompt]'); ?>
精彩评论