PHP:运行shell_exec或系统作为sudo?

时间:2011-03-13 23:07:34

标签: php linux apache

我需要从我的PHP Web应用程序调用一些命令,这些命令只能以sudo运行。

http://php.net/manual/en/function.shell-exec.php(在评论中)说我可以做到以下几点:

system('echo <password> | sudo -u root -S <command>');

它不起作用。我正在尝试groupadduseradd等建议吗?

2 个答案:

答案 0 :(得分:0)

据推测,只有当用户php运行为(apache,nobody或其他东西,具体取决于apache配置)时,才能使用sudo而不使用该命令的密码。这是不太可能的,因为它会打开宽阔,打哈欠的安全漏洞。

答案 1 :(得分:0)

要将用户添加到sudo列表并让它不提示输入某个程序的密码...编辑/ etc / sudoers文件:

Cmnd_Alias BUNDLE = /usr/bin/bundle

deploy  ALL=(ALL) NOPASSWD:BUNDLE

其中deploy是用户名,/ usr / bin / bundle是我想要在没有密码的情况下访问的程序的路径。