我使用phpseclib從php調用ssh命令。如何使用phpseclib以root權限運行ubuntu命令
$ip = 'ip_address';
$login = 'user';
$password = 'password';
$ssh = new SSH2($ip);
$ssh->login($login, $password);
在下面的例子一切正常(因爲我不需要權限):
$command = 'ip addr flush dev eth1';
$result = $ssh->exec($command); // result = 'Failed to send flush request: Operation not permitted'
我嘗試使用sudo蘇登錄:在下面的例子中發生
$command = 'ifconfig';
$result = $ssh->exec($command); // result = 'eth0 ..., eth1 etc.'
問題:
$result = $ssh->read('$'); // result = '..... [email protected]:~$'
$result = $ssh->write("sudo su\n"); //result = true
$result = $ssh->read(':'); // result = 'sudo su\n [sudo] password for user:'
$result = $ssh->write($password."\n"); // result = true
$result = $ssh->read('#'); //result = '[email protected]:/home/user#
看來t帽子一切都沒問題(我在根),但:
$command = 'ip addr flush dev eth1';
$result = $ssh->exec($command); // result = 'Failed to send flush request: Operation not permitted'
問題在哪裏?先謝謝你!
嘗試在sudoers文件中添加自己,然後只需鍵入sudo,然後按命令(不需要插入密碼) –
'su'已經是suid二進制文件。沒有必要運行'sudo',因爲它總是以root身份運行。 –
我在終端上試過這樣的東西:'adduser user sudo',結果是: '用戶'用戶'已經是'sudo''的成員。接下來,我只在終端中使用'su',結果是:'密碼: su:認證失敗' – Krzychu