phpseclibを使用してphpからsshコマンドを呼び出します。すべて以下の例ではphpseclibを使用してubuntuコマンドをroot権限で実行する方法
$ip = 'ip_address';
$login = 'user';
$password = 'password';
$ssh = new SSH2($ip);
$ssh->login($login, $password);
okです(私は許可が必要といけないので):私はsudoの秀を使ってログインしようとした
$command = 'ip addr flush dev eth1';
$result = $ssh->exec($command); // result = 'Failed to send flush request: Operation not permitted'
:
$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#
帽子はすべて大丈夫です(私は根元ですが):
$command = 'ip addr flush dev eth1';
$result = $ssh->exec($command); // result = 'Failed to send flush request: Operation not permitted'
問題はどこですか?前もって感謝します!
自分自身をsudoersファイルに追加してから、sudoの後にコマンドを入力するだけです(パスワードを入力する必要はありません)。 –
suはすでにsuidバイナリです。 rootとして実行されるので、 'sudo'を実行する必要はありません。 –
私は端末でこれを試しました: 'adduser user sudo'と結果は 'ユーザ 'はすでに' sudo 'のメンバーです。次に、私は端末に 'su'だけを使用し、結果は' Password: su:Authentication failure'です。 – Krzychu