CentOS文件权限安全设置的核心原则与实践
在CentOS系统中,文件权限是保障系统安全与数据完整性的基石。合理的权限设置需遵循“最小权限原则”(仅赋予完成任务所需的最低权限),并结合特殊权限、访问控制列表(ACL)及定期审计,构建多层次的安全防护体系。
基础权限分为所有者(owner)、所属组(group)、其他用户(others)三类,每类包含读(r)、写(w)、**执行(x)**三种权限。通过chmod(修改权限)、chown(修改所有者)、chgrp(修改所属组)命令实现:
755、644),其中每一位对应所有者、组、其他用户的权限(4=读、2=写、1=执行)。例如:
755(所有者可读/写/执行,组和其他用户可读/执行),既保证所有者完全控制,又限制其他用户的修改权限;644(所有者可读/写,组和其他用户仅可读),防止未授权修改。u(所有者)、g(组)、o(其他)、a(所有)配合+(添加)、-(移除)、=(设置)调整权限。例如:
chmod u+x script.sh(给所有者添加执行权限);chmod go-w file.txt(移除组和其他用户的写权限)。chown同时修改所有者和组(如chown user:group file.txt),chgrp仅修改组(如chgrp dev_team project/)。对于目录,添加-R参数递归修改子文件和子目录的权限(如chown -R admin:web_users /var/www/html)。特殊权限(SUID、SGID、Sticky Bit)用于满足特定场景的安全需求,需谨慎使用:
4xxx(如chmod u+s /usr/bin/passwd),使普通用户执行该文件时临时获得所有者权限。常用于系统命令(如passwd),允许用户修改自己的密码(需访问/etc/shadow,仅root可写)。注意:仅对二进制程序有效,避免对脚本文件设置SUID(易引发安全漏洞)。2xxx,分为两种场景:
chmod g+s /usr/bin/wall,允许普通用户发送系统消息给所有用户);chmod g+s /var/www/projects,团队协作时,成员创建的文件均属于项目组,无需频繁修改组权限)。1xxx(如chmod +t /tmp),作用于目录,确保仅文件所有者、目录所有者或root可删除/重命名目录中的文件。常用于公共目录(如/tmp),防止用户误删他人文件。传统权限无法满足复杂场景(如多个用户/组的不同权限需求),需使用ACL(Access Control List)实现更精细的控制:
acl选项(查看/etc/fstab,确认挂载参数包含acl,如/dev/sda1 / ext4 defaults,acl 0 1)。setfacl命令添加权限条目。例如:
devuser1添加对/var/www/html/project的读写权限:setfacl -m u:devuser1:rw /var/www/html/project;dev_team添加对/data的读执行权限:setfacl -m g:dev_team:r-x /data。getfacl /path/to/file查看当前ACL条目;使用setfacl -x u:username /path/to/file删除指定用户的ACL,或setfacl -b /path/to/file删除所有ACL(恢复默认权限)。避免直接使用root账户进行日常操作,通过sudo(Superuser Do)让普通用户执行需要root权限的命令,同时限制其权限范围:
visudo命令(安全编辑,防止语法错误)修改/etc/sudoers。例如:
admin执行所有命令(需输入自己的密码):admin ALL=(ALL) ALL;dev_team组的用户执行/usr/bin/systemctl restart apache2和/usr/bin/rsync(无需输入密码):%dev_team ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart apache2, /usr/bin/rsync;test修改root密码:test ALL=(ALL) ALL, !/usr/bin/passwd root。ALL=(ALL)(完全root权限)。权限设置后需定期检查,及时发现并修复过度授权或异常权限:
ls -l查看文件/目录的权限、所有者和组(如ls -l /etc/passwd);使用getfacl查看ACL详情。/etc/passwd、/etc/shadow、/etc/sudoers),确保其权限正确(如/etc/shadow应为640,所有者为root,所属组为shadow)。chattr +i命令锁定不可修改的文件(如chattr +i /etc/passwd /etc/shadow /etc/group),防止非授权用户修改(需root权限才能解锁:chattr -i /etc/passwd)。/var/log/secure日志,监控sudo使用记录(如grep sudo /var/log/secure),及时发现异常操作(如用户频繁尝试passwd root)。通过以上措施,可构建“最小权限+精准控制+定期审计”的文件权限安全体系,有效降低CentOS系统因权限问题导致的安全风险。