插件窝 干货文章 如何配置CentOS系统以限制用户对系统配置的更改

如何配置CentOS系统以限制用户对系统配置的更改

sudo etc 用户 权限 922    来源:    2025-04-15

CentOS系统用户权限限制配置指南

作为IT工程师,我可以为您提供一套完整的CentOS系统用户权限限制方案,以防止非授权用户修改系统配置。

1. 用户账户管理

创建受限用户

# 创建普通用户
sudo useradd -m -s /bin/bash username
sudo passwd username

# 将用户加入必要组(如users组)
sudo usermod -aG users username

限制root访问

# 禁用root SSH登录
sudo sed -i 's/^PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl restart sshd

# 限制su命令使用(仅允许wheel组成员使用su)
sudo sed -i 's/^# auth.*required.*pam_wheel.so use_uid/auth required pam_wheel.so use_uid/' /etc/pam.d/su

2. 文件系统权限控制

关键目录权限设置

# 系统配置文件目录
sudo chmod -R 750 /etc
sudo chown -R root:root /etc

# 系统二进制目录
sudo chmod -R 755 /bin /sbin /usr/bin /usr/sbin
sudo chown -R root:root /bin /sbin /usr/bin /usr/sbin

# 日志目录
sudo chmod -R 750 /var/log
sudo chown -R root:root /var/log

使用chattr设置不可变属性

# 保护关键文件不被修改
sudo chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/sudoers

3. Sudo权限控制

配置sudoers文件

# 使用visudo安全编辑sudoers文件
sudo visudo

# 示例:允许特定用户执行特定命令
username ALL=(ALL) /usr/bin/systemctl status *, /usr/bin/yum check-update

4. SELinux配置

# 检查SELinux状态
sestatus

# 如果未启用,启用SELinux
sudo sed -i 's/SELINUX=disabled/SELINUX=enforcing/' /etc/selinux/config
sudo reboot

5. 文件访问控制列表(ACL)

# 安装ACL工具
sudo yum install -y acl

# 设置特定目录的访问权限
sudo setfacl -R -m u:username:r-x /path/to/directory

6. 审计与监控

安装并配置auditd

sudo yum install -y audit
sudo systemctl enable auditd
sudo systemctl start auditd

# 监控关键文件修改
sudo auditctl -w /etc/passwd -p wa -k passwd_changes
sudo auditctl -w /etc/shadow -p wa -k shadow_changes
sudo auditctl -w /etc/sudoers -p wa -k sudoers_changes

7. 定期检查

创建定期检查脚本:

#!/bin/bash
# 检查系统文件完整性
rpm -Va > /var/log/rpm_verify.log

# 检查SUID/SGID文件
find / -perm /4000 -o -perm /2000 -type f -exec ls -ld {} \; > /var/log/suid_sgid_files.log

# 检查未授权的用户权限
awk -F: '($3 == 0) {print}' /etc/passwd > /var/log/root_equiv_users.log

8. 其他安全措施

# 限制用户cron权限
echo "ALL" > /etc/cron.allow
echo "root" >> /etc/cron.allow
echo "username" >> /etc/cron.allow

# 限制at命令使用
echo "ALL" > /etc/at.allow
echo "root" >> /etc/at.allow
echo "username" >> /etc/at.allow

注意事项

  1. 实施这些变更前,确保您有root访问权限或另一个管理员账户
  2. 重大变更前建议先进行测试
  3. 记录所有变更以便故障排除
  4. 定期审查用户权限和系统完整性

这些措施将显著提高CentOS系统的安全性,限制非授权用户对系统配置的更改。根据您的具体需求,可能需要调整某些设置。