具有 root 权限的用户无法重新启动服务

具有 root 权限的用户无法重新启动服务

我希望用户能够重新启动 php5-fpm 服务。在 visudo 中,我有以下内容:

username ALL=NOPASSWD: /etc/init.d/php5-fpm

当我su告诉用户并运行时sudo /etc/init.d/php5-fpm stop,什么都没有发生。没有反馈,服务仍在运行。

我需要做什么才能username控制该服务?运行 Ubuntu 13.10。

编辑:看着auth.log我明白了

sudo: username : TTY=pts/1 ; PWD=/var/log ; USER=root ; COMMAND=/etc/init.d/php5-fpm stop

答案1

正如 rootslash 的评论所暗示的,我相信 PHP-FPM 二进制文件中的某些内容需要 root 权限,而该用户没有该权限(可能是打开端口?)。我决定让该用户接触一个文件,root 用户每分钟(cron)检查一次该文件,如果找到该文件,则重新启动服务,然后删除该文件。

虽然不太理想,但可以实现。

答案2

您能否按如下方式修改维苏多

username ALL=NOPASSWD: /etc/init.d/php5-fpm stop

username ALL=NOPASSWD: /etc/init.d/php5-fpm stop, /etc/init.d/php5-fpm start

答案3

您是否正在运行 SELinux 或其他安全管理器?如果是这样,即使命令以 root 身份运行,用户可能仍具有其安全标签,并且无权执行 /etc 中的文件。

您可以暂时禁用 SELinux,然后测试该命令是否开始起作用。对于 SELinux,我相信您可以使用“setenforce”命令暂时禁用它。

答案4

你试过 sudo service php5-fpm stop/start 吗?
如果有效,只需将用户 ALL: NOPASSWD: /sbin/service 添加
到 /etc/sudoers 文件

相关内容