从PHP运行shell脚本作为不同(非root)用户

时间:2010-06-30 12:45:29

标签: php linux permissions exec

我正在尝试在Ubuntu服务器上运行PHP中非特权用户拥有的shell脚本。权限问题使得exec()运行它不切实际,因为正在运行它的www-data。我已经google了一下,发现了对suExec的varius引用(这对于解决这么小的问题似乎太麻烦了),设置suid位,并且在Stackoverflow上有一个有趣的方法,涉及Python服务器监听发送的命令通过PHP。

无论如何,在所有这些解决方案中,我倾向于设置suid位,尝试它并且它不起作用:chmod u+s script.sh,我的Apache日志仍然显示权限错误,所以我知道脚本未作为其所有者运行,而是作为www-data运行。

我需要做些什么来实现这个目标?是否有更简单的解决方案来解决这个问题?

1 个答案:

答案 0 :(得分:4)

查看sudo的手册页:sudo -u your_other_user将允许您以其他用户身份执行命令。

还可以使用man sudoers查找用户可以使用sudo执行命令的选项。