服务器未授予不同账户为完成各自承担任务所需的最小权限,未实现管理员账户的权限分离。 | 建议对管理用户进行权限分离,仅授予所需最小权限,建立三个管理员用户,系统管理员只能对系统进行维护、安全管理员只能进行处理配置和安全设置、安全审计员只能维护审计信息等。 |
解决方案
在 CentOS 系统中,您可以通过创建不同的用户组和用户,并为这些用户分配最小权限来实现权限分离。以下是一个示例,展示如何创建三个不同的管理员用户,并为他们分配特定的权限:
-
创建用户组: 首先,创建三个用户组:
sysadmin
、secadmin
和auditadmin
。sudo groupadd sysadmin sudo groupadd secadmin sudo groupadd auditadmin
-
创建用户并分配到相应的组: 创建三个用户,并将他们添加到相应的组中。
sudo useradd -G sysadmin sysadmin_user sudo useradd -G secadmin secadmin_user sudo useradd -G auditadmin auditadmin_user
-
设置用户密码: 为每个用户设置密码。
sudo passwd sysadmin_user sudo passwd secadmin_user sudo passwd auditadmin_user
-
配置 sudo 权限: 使用
visudo
命令编辑/etc/sudoers
文件,为每个组分配特定的权限。sudo visudo
在
visudo
编辑器中,添加以下内容:# 系统管理员组 %sysadmin ALL=(ALL) NOPASSWD: /usr/bin/yum, /usr/bin/systemctl, /usr/bin/journalctl # 安全管理员组 %secadmin ALL=(ALL) NOPASSWD: /usr/bin/firewall-cmd, /usr/sbin/iptables, /usr/bin/semanage, /usr/bin/setsebool # 安全审计员组 %auditadmin ALL=(ALL) NOPASSWD: /usr/bin/auditctl, /usr/sbin/ausearch, /usr/sbin/aureport
以上配置示例中:
sysadmin
组的用户可以使用yum
、systemctl
和journalctl
命令。secadmin
组的用户可以使用firewall-cmd
、iptables
、semanage
和setsebool
命令。auditadmin
组的用户可以使用auditctl
、ausearch
和aureport
命令。
-
验证配置: 切换到每个用户并验证他们的权限。
su - sysadmin_user sudo yum update sudo systemctl status sudo journalctl -xe su - secadmin_user sudo firewall-cmd --state sudo iptables -L sudo semanage boolean -l su - auditadmin_user sudo auditctl -s sudo ausearch -m avc sudo aureport -au
通过以上步骤,您可以在 CentOS 系统中实现管理员账户的权限分离,并确保每个管理员用户仅拥有完成其任务所需的最小权限。