1

使用 PHP 我希望能够列出 root 的 crontab。我能够从命令行以 Apache 用户身份运行以下命令并获得所需的结果:

sudo crontab -l

但是,在我的 PHP 中,我有以下命令不起作用并返回一个空集:

exec('sudo crontab -l', $out);
print_r($out);

是环保的吗?还是权限?

我也尝试shell_exec() system()passthru()

另外,请注意,我已禁用 SELinux 并将 Apache 添加到 sudoers 文件中,因此不需要提示输入密码。

4

1 回答 1

1

已解决:即使我设置了错误报告,您也必须像这样重定向命令的输出:

exec('sudo crontab -l 2>&1', $out);
var_dump($out);

设置好之后,发现如下错误:

sudo: sorry, you must have a tty to run sudo

经过对该问题的研究,解决方案是编辑 sudoers 文件并注释掉:#Default requiretty。

http://www.zimbra.com/forums/installation/10553-solved-sudo-sorry-you-must-have-tty-run-sudo.html

我很抱歉,当我进一步研究这个问题时,它不再是 PHP 问题,而是更多的是 unix 系统问题。

于 2012-06-20T20:42:07.380 回答