CentOS/Red Hat:Sudo允许组管理员中的人运行所有命令

时间:2020-01-09 10:41:59  来源:igfitidea点击:

如何在CentOS或者Red Hat Enterprise Linux下设置sudo,以允许admin组的所有成员运行所有命令?

/etc/sudoers文件允许特定用户或者组以root用户身份运行各种命令,而无需root密码。
这对于将角色和权限委派给其他用户而不共享root密码很有用。
必须使用visudo命令编辑此文件。
以root用户身份登录并执行:

# visudo

追加以下行:

## Allows people in group admin to run all commands
%admin  ALL=(ALL)       ALL

保存并关闭文件。
最后,添加一个名为admin的组:

# groupadd admin

将名为Hyman(现有用户)的用户添加到组admin:

# usermod -a -G admin Hyman

验证组成员身份:

# id Hyman

输出示例:

uid=5001(Hyman) gid=5001(Hyman) groups=5001(Hyman),10(admin)

以用户Hyman身份登录并以根类型运行任何命令:

$ sudo /etc/init.d/httpd restart

要获得root shell,请执行:

$ sudo -s

当提示您输入密码时,输入插孔密码。

如何跟踪管理员组中的所有用户?

sudo可以将成功尝试和失败尝试(以及错误)记录到syslog(默认值为/var/log/secure),日志文件或者同时记录到syslog。
默认情况下,sudo将通过syslog进行记录,但这可以在配置时或者通过sudoers文件进行更改。

# tail -f /var/log/secure
# grep something /var/log/secure

请注意,sudo通常只会记录它明确运行的命令。
如果用户运行诸如sudo su或者sudo sh之类的命令,则从该shell运行的后续命令将不会被记录,并且sudos访问控制也不会影响它们。