1

所以,我在我的 ubuntu 服务器上,想要执行以下命令:

su -c /path/to/command -s /bin/bash -l otheruser

当我在 linux 命令行中键入此命令时,它会完美地询问其他用户的密码并执行该命令。

但是,当我这样做时

exec("su -c /path/to/command -s /bin/bash -l otheruser");

它什么也没做。我当然还没有为它指定密码,但它并没有真正返回任何可以帮助我解决这个问题的东西。出于测试目的,我已将该命令的权限设置为 777。

有什么建议么?

4

1 回答 1

5

试试这个:

<?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 命令不是交互式的。您需要在命令中传递密码,内联。

于 2013-11-07T11:22:39.510 回答