所以,我在我的ubuntu服务器上,想要执行以下命令:
su -c /path/to/command -s /bin/bash -l otheruser
当我在linux命令行中输入此命令时,它会完全询问其他用户的密码并执行命令。
然而,当我这样做时
exec("su -c /path/to/command -s /bin/bash -l otheruser");
它没有做任何事情。我当然没有为它指定密码,但它并没有真正返回任何可以帮助我解决这个问题的东西。我已将该命令的权限设置为777以进行测试。
有什么建议吗?
答案 0 :(得分:4)
试试这个:
<?php
$ret = exec("su -c /path/to/command -s /bin/bash -l otheruser", $out, $err);
var_dump($ret);
var_dump($out);
var_dump($err);
?>
更多信息:http://us3.php.net/manual/en/function.exec.php
另外,如果您希望exec命令向您询问其他用户的密码(就像在linux命令行中那样) - 它将无法正常工作,exec命令不是交互式的。您需要在内联命令上传递密码。