我需要通过PHP的exec
函数从命令行运行cPanel脚本(其他cPanel选项不可行)。命令大致是:
uapi --user=[user] Email suspend_incoming email=[user]%40[domain].[tld]
我收到以下错误:
setuids失败:尝试将setuid作为普通用户使用RUID ***
这反过来让我意识到PHP运行的用户不有权执行该命令,这导致我this thread。 然而就像你不应该像777那样公开CHMOD文件我不想在命令行使用sudo
或者{{1}时盲目地为这个用户启用所有命令脚本。
在exec
使用uapi
编辑sudo
时,如何仅允许此用户执行sudoers
命令(也包含多个特定命令)文件?
答案 0 :(得分:-1)
您可以通过sudoers
文件的条目为用户授予以root身份执行命令的权限(假设www-data
是PHP进程所有者用户):
www-data ALL=(root) NOPASSWD: /path/to/uapi
通过命令uapi
获取which uapi
文件的路径。您应该仔细考虑此操作的安全隐患。
This UNIX stackexchange question对sudo条目语法有一个很好的详细解释。