PHP 使用 exec() 执行 linux 命令


PHP execute linux command using exec()

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

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

当我在 linux 命令行中键入此命令时,它会完美地要求其他用户输入密码并执行命令。

但是,当我这样做时

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

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

有什么建议吗?

试试这个:

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