使用$ ssh->运行多个$ ssh-> exec命令在phplibsec中写入

时间:2016-03-02 21:47:42

标签: php bash ssh

我正在运行phplibsec以在我的服务器上运行密码更改脚本。我目前有三个需要更改的密码。目前这些是使用由$ ssh-> exec命令运行的bash脚本更改的。然而,由于日益复杂化,我需要单独运行这些中的每一个。

我已经开始努力让这些在phplibsec中运行并且发现一个密码会改变,但脚本将停止,我不知道为什么。

以下是我的工作:

$ssh->enablePTY();      
    $ssh->exec('htdigest /etc/apache2/.passwd "Authenticated Users" ' . $username);
    $ssh->read('password:');
    $ssh->write("$newpass\n");
    $ssh->read('password:');
    $ssh->write("$newpass\n");

但是,当我尝试编写另一个连续命令时,无论命令是什么,它都会失败。

这是我最终需要的:

    $ssh->enablePTY();      
    $ssh->exec('htdigest /etc/apache2/.passwd "Authenticated Users" ' . $username);
    $ssh->read('password:');
    $ssh->write("$newpass\n");
    $ssh->read('password:');
    $ssh->write("$newpass\n");

    $ssh->exec('htpasswd /etc/squid3/squiddb ' . $username);
    $ssh->read('password:');
    $ssh->write("$newpass\n");
    $ssh->read('password:');
    $ssh->write("$newpass\n");

    $ssh->exec('passwd ' . $username);
    $ssh->read('password:');
    $ssh->write("$newpass\n");
    $ssh->read('password:');
    $ssh->write("$newpass\n");

似乎只要引入读/写,就不可能再运行exec命令了。我不确定,并且仍然无法找到退出此方法的方法,同时仍能执行。

任何建议都将不胜感激。

0 个答案:

没有答案