我正在尝试在Ubuntu服务器上运行PHP中非特权用户拥有的shell脚本。权限问题使得exec()
运行它不切实际,因为正在运行它的www-data
。我已经google了一下,发现了对suExec的varius引用(这对于解决这么小的问题似乎太麻烦了),设置suid位,并且在Stackoverflow上有一个有趣的方法,涉及Python服务器监听发送的命令通过PHP。
无论如何,在所有这些解决方案中,我倾向于设置suid位,尝试它并且它不起作用:chmod u+s script.sh
,我的Apache日志仍然显示权限错误,所以我知道脚本未作为其所有者运行,而是作为www-data
运行。
我需要做些什么来实现这个目标?是否有更简单的解决方案来解决这个问题?
答案 0 :(得分:4)
查看sudo的手册页:sudo -u your_other_user
将允许您以其他用户身份执行命令。
还可以使用man sudoers查找用户可以使用sudo执行命令的选项。