编辑sudoers文件以仅允许特定命令

时间:2018-06-15 22:17:46

标签: php linux console sudoers

我需要通过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命令(也包含多个特定命令)文件?

1 个答案:

答案 0 :(得分:-1)

您可以通过sudoers文件的条目为用户授予以root身份执行命令的权限(假设www-data是PHP进程所有者用户):

www-data  ALL=(root) NOPASSWD: /path/to/uapi

通过命令uapi获取which uapi文件的路径。您应该仔细考虑此操作的安全隐患。

This UNIX stackexchange question对sudo条目语法有一个很好的详细解释。