作为IT工程师,我可以为您提供一套完整的CentOS系统用户权限限制方案,以防止非授权用户修改系统配置。
# 创建普通用户
sudo useradd -m -s /bin/bash username
sudo passwd username
# 将用户加入必要组(如users组)
sudo usermod -aG users username
# 禁用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
# 系统配置文件目录
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
# 保护关键文件不被修改
sudo chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/sudoers
# 使用visudo安全编辑sudoers文件
sudo visudo
# 示例:允许特定用户执行特定命令
username ALL=(ALL) /usr/bin/systemctl status *, /usr/bin/yum check-update
# 检查SELinux状态
sestatus
# 如果未启用,启用SELinux
sudo sed -i 's/SELINUX=disabled/SELINUX=enforcing/' /etc/selinux/config
sudo reboot
# 安装ACL工具
sudo yum install -y acl
# 设置特定目录的访问权限
sudo setfacl -R -m u:username:r-x /path/to/directory
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
创建定期检查脚本:
#!/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
# 限制用户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
这些措施将显著提高CentOS系统的安全性,限制非授权用户对系统配置的更改。根据您的具体需求,可能需要调整某些设置。