使用 sudoers 允许非特权用户重启 apache

use*_*825 9 security sudo centos apache-httpd

我们有以 root 身份运行 apache 的生产 Centos 服务器,以允许低端口号(80 和 443)。

我们希望为非 root 用户提供一种安全的方式来重新启动 apache。

将这样的内容添加到 sudoers 文件是否有任何安全隐患...

username    ALL=NOPASSWD:/usr/bin/service apache2 reload
Run Code Online (Sandbox Code Playgroud)

具体来说,我想知道用户是否有任何方法可以提升他们的权限,或者以某种方式以 root 身份运行其他程序。

Rui*_*iro 12

假设您希望允许属于 users2 组的用户进行一些特权控制,apache而不授予他们 root 权限。

添加 /etc/sudoers

%users2 keep ALL=NOPASSWD: /sbin/service httpd,/etc/init.d/httpd,/usr/sbin/apache2ctl
Run Code Online (Sandbox Code Playgroud)

如果您只想让它们重新启动apache,它将是:

%users2 ALL=NOPASSWD: /sbin/service httpd restart,/etc/init.d/httpd restart,/usr/sbin/apache2ctl restart
Run Code Online (Sandbox Code Playgroud)

用户将能够看到允许他们使用哪些命令sudo

sudo -l
Run Code Online (Sandbox Code Playgroud)

并且要重新启动 Apache,他们必须准确地拼出允许运行它的命令,例如:

sudo /sbin/service httpd restart
Run Code Online (Sandbox Code Playgroud)

出于安全原因,建议在 sudoers 文件中定义命令的完整路径。