插件窝 干货文章 如何设置CentOS系统以限制用户对关键系统文件的访问权限

如何设置CentOS系统以限制用户对关键系统文件的访问权限

文件 etc passwd 权限 673    来源:    2025-04-15

CentOS系统关键文件访问权限限制方案

作为IT工程师,我将为您提供一套完整的CentOS系统关键文件保护方案,通过多层次的权限控制来限制非特权用户对系统关键文件的访问。

1. 文件系统权限基础设置

关键目录权限设置

# 系统二进制文件目录
chmod -R 750 /bin /sbin /usr/bin /usr/sbin
chown -R root:root /bin /sbin /usr/bin /usr/sbin

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

# 内核文件
chmod 600 /boot/vmlinuz-*

敏感文件特殊权限

# 密码文件
chmod 600 /etc/passwd
chmod 600 /etc/shadow
chmod 600 /etc/group
chmod 600 /etc/gshadow

# sudoers文件
chmod 440 /etc/sudoers

# SSH相关文件
chmod 600 /etc/ssh/sshd_config
chmod 600 /etc/ssh/ssh_host_*_key

2. 使用ACL进行精细控制

对于需要更精细控制的场景,可以使用ACL(访问控制列表):

# 安装ACL工具
yum install -y acl

# 为特定用户/组设置权限
setfacl -m u:username:r-- /etc/sudoers
setfacl -m g:developers:r-x /usr/bin/

3. SELinux强化安全

CentOS默认启用SELinux,可提供额外的安全层:

# 检查SELinux状态
sestatus

# 设置SELinux为强制模式
setenforce 1

# 永久设置为强制模式
sed -i 's/SELINUX=permissive/SELINUX=enforcing/g' /etc/selinux/config

# 为关键文件设置SELinux上下文
chcon -t etc_t /etc/passwd
chcon -t shadow_t /etc/shadow

4. 使用chattr设置不可变属性

防止文件被修改或删除:

# 设置不可变属性
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow

# 查看属性
lsattr /etc/passwd

# 取消不可变属性(需要时)
chattr -i /etc/passwd

5. 用户和组管理策略

# 限制普通用户切换到root
usermod -s /sbin/nologin username

# 创建受限shell用户
useradd -s /bin/rbash restricteduser

# 限制用户组权限
groupadd restricted
usermod -aG restricted username

6. 定期审计与监控

# 安装审计工具
yum install -y audit

# 启用审计服务
systemctl enable --now auditd

# 监控关键文件访问
auditctl -w /etc/passwd -p wa -k passwd_changes
auditctl -w /etc/shadow -p wa -k shadow_changes

# 查看审计日志
ausearch -k passwd_changes

7. 使用sudo替代su

# 安装sudo
yum install -y sudo

# 配置sudoers(使用visudo命令)
visudo

# 示例规则:允许特定用户执行特定命令
username ALL=(root) /usr/bin/systemctl restart httpd, /usr/bin/vi /etc/httpd/conf/httpd.conf

8. 关键配置文件备份

# 创建备份目录
mkdir /root/backups

# 备份关键文件
cp -a /etc/passwd /root/backups/passwd.bak
cp -a /etc/shadow /root/backups/shadow.bak
cp -a /etc/group /root/backups/group.bak

# 设置备份文件权限
chmod 600 /root/backups/*

通过以上多层次的安全措施,您可以有效限制非特权用户对CentOS系统关键文件的访问权限,同时保持系统的可用性和可维护性。建议在实施前在测试环境中验证这些变更,并确保有恢复方案。