以不同的(非root)用户身份从PHP运行shell脚本

我试图在Ubuntu服务器上运行PHP中的非特权用户拥有的shell脚本。 权限问题使得用exec()运行它是不切实际的,因为它是运行它的www-data 。 我search了一下,find了对suExec的varius引用(这似乎太麻烦得到这样一个小问题的工作),设置suid位,并在这里涉及Python服务器的Stackoverflow一个有趣的方法侦听发送的命令由PHP。

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

我需要做些什么来实现这个目标,是否有一个更简单的解决scheme?

看看sudo的手册页: sudo -u your_other_user会让你像其他用户那样执行命令。

还可以使用man sudoers来查找哪些用户可以使用sudo执行什么命令。