CentOS文件系统权限管理指南
CentOS作为Linux发行版,其文件系统权限管理基于“用户-组-其他”三元模型,结合传统权限位、ACL(访问控制列表)和特殊权限位,实现对文件/目录的精细化访问控制。以下是具体管理方法:
文件/目录的权限分为三类,每类包含读(r)、写(w)、**执行(x)**三种权限:
权限可通过符号表示法(如u+rwx表示给所有者添加读写执行权限)或数字表示法(如755对应rwxr-xr-x)设置。
ls -l命令可显示文件/目录的权限、所有者、所属组等信息(如-rwxr-xr-- 1 user group 1024 Jan 1 10:00 file.txt);chmod命令用于更改权限,例如:
chmod 755 file.txt(所有者7=rwx,组5=r-x,其他5=r-x);chmod u+x,g-w file.txt(给所有者添加执行权限,给组移除写权限);chown命令修改所有者(如chown user file.txt),chgrp命令修改所属组(如chgrp group file.txt),也可合并使用chown user:group file.txt。传统权限位无法满足复杂场景(如多用户/组的细粒度权限),ACL通过setfacl(设置权限)和getfacl(查看权限)命令实现:
sudo yum install acl(CentOS默认仓库包含);setfacl -m u:user1:rwx /path/to/dir(给user1添加读写执行权限)、setfacl -m g:group1:r-x /path/to/dir(给group1添加读执行权限);setfacl -d -m g:group1:rwx /path/to/dir(新创建的文件/目录自动继承group1的读写执行权限)。特殊权限位用于扩展权限功能,包括:
/usr/bin/passwd允许普通用户修改密码);设置方法:chmod u+s file(数字表示为4,如chmod 4755 file);chmod g+s dir(数字表示为2,如chmod 2770 dir);/tmp目录);设置方法:chmod +t dir(数字表示为1,如chmod 1777 /tmp)。仅赋予用户/组完成任务所需的最低权限,避免过度授权(如脚本文件无需给其他用户写权限,设置为644即可;目录无需给其他用户执行权限,设置为750即可)。
将需要共享资源的用户加入同一组,通过组权限控制访问(如创建devgroup组,将开发人员加入该组,设置项目目录的组权限为rwx)。
umask定义文件/目录创建时的默认权限掩码(如umask 022表示文件默认权限为644(666-022),目录默认权限为755(777-022))。查看当前umask:umask;设置umask:umask 027(文件640,目录750)。
通过ls -l或getfacl定期检查文件/目录权限,及时清理不必要的权限(如移除普通用户对系统关键目录的执行权限)。
SELinux(Security-Enhanced Linux)是CentOS的强制访问控制(MAC)模块,默认开启(Enforcing模式),可能限制某些权限操作。若需临时关闭:setenforce 0;永久关闭:修改/etc/selinux/config文件中的SELINUX=disabled(不推荐,会影响系统安全性)。如需调整SELinux策略,可使用semanage命令(如semanage port -a -t http_port_t -p tcp 8080允许8080端口用于HTTP服务)。