0

この問題に関連する例が見つかりません。コマンド送信後に表示されるプロンプトに値を入力したい

次のコマンドを送信します。

$ssh->exec('sudo pure-pw useradd '.$server_dir.' -u ftpuser -d /home/ftpusers/'.$server_dir);

パテを使用している場合は、プロンプトを返す必要があります。これは sudo パスワードではありません (ユーザーのパスワード プロンプトを無効にしました)。パスワード プロンプトは ftp ユーザー用です。

Password:

その後:

Enter it again:

どうすればphpseclibでそれらに答えることができるのでしょうか? 私は試した:

$ssh-exec('password');
$ssh-exec('password');

しかし、うまくいかないので、今はちょっと行き詰まっています。

編集//読み書きも試しましたが、ページは永遠にロードされ続けます..

4

1 に答える 1

3

さて、ようやく機能しました。コードは次のとおりです。

$ssh->write('sudo pure-pw useradd '.$server_dir.' -u ftpuser -d /home/ftpusers/'.$server_dir."\r\n");
$ssh->read("Password:");
$ssh->write($ftp_pw."\r\n");
$ssh->read("Enter it again:");
$ssh->write($ftp_pw."\r\n");
$ssh->exec("sudo pure-pw mkdb");
于 2013-04-24T12:57:03.857 に答える