Linux 权限管理基础
Linux 系统通过权限机制控制用户对文件和目录的访问,确保系统安全与数据隔离,权限分为读(r)、写(w)、执行(x)三种,分别对应数值 4、2、1,每个文件或目录所有者、所属组及其他用户拥有独立的权限集,通过 chmod、chown、chgrp 等命令可灵活调整。

权限的表示与理解
文件权限以 10 位字符显示,首位表示文件类型(如 为普通文件,d 为目录),后 9 位分为三组,分别对应所有者、所属组及其他用户的权限。-rwxr-xr-- 表示所有者拥有读写执行权限,所属组拥有读和执行权限,其他用户仅拥有读权限,数字表示法中,rwx 对应 7,r-x 对应 5,r-- 对应 4,因此上述权限可简写为 755。
目录的执行权限允许用户进入目录,若无执行权限,即使拥有读权限也无法列出目录内容,特殊权限如 SUID(4)、SGID(2)、Sticky Bit(1)可进一步细化控制,SUID 可使用户以文件所有者身份执行程序,常用于 passwd 等命令。
chmod 命令:修改权限
chmod 是最常用的权限修改命令,支持符号法和数字法,符号法通过 who(u 所有者、g 所属组、o 其他用户、a 所有用户)、operator(+ 添加、- 移除、= 设置)、permission(r/w/x)组合操作,chmod u+x script.sh 为所有者添加执行权限,数字法直接通过三位数赋值,如 chmod 644 file.txt 设置所有者读写权限,所属组和其他用户只读权限。
递归修改目录权限时需加 -R 参数,但需谨慎使用,避免误操作导致权限混乱。chmod -R 755 /var/www 会递归设置目录及其内容的权限。

chown 与 chgrp:修改所有者和所属组
文件的所有者通过 chown 命令修改,语法为 chown [用户][:][组] 文件。chown user1 file.txt 将文件所有者改为 user1,chown user1:group1 file.txt 同时修改所有者和所属组。chgrp 专门用于修改所属组,如 chgrp group1 file.txt。
同样,chown 和 chgrp 也支持 -R 递归操作,但需注意系统对 /etc/passwd 和 /etc/group 中用户和组的验证,若目标用户或组不存在,命令会报错。
高级权限管理
ACL(访问控制列表)可突破传统三权限模型的限制,为指定用户或组精细授权,通过 getfacl 和 setfacl 命令管理 ACL,setfacl -m u:user1:rw file.txt 为 user1 添加读写权限,getfacl file.txt 查看当前 ACL 规则。
umask 命令控制新建文件和目录的默认权限。umask 0022 表示新建文件默认权限为 644(666-022),目录为 755(777-022),临时修改可通过 umask 值,永久修改需在 /etc/profile 或用户配置文件中设置。

实用场景与注意事项
- 安全加固:敏感文件应限制权限,如密钥文件设置
600,配置文件设置640,避免其他用户访问。 - 脚本执行:Shell 脚本需赋予执行权限,并通过
chmod +x script.sh或chmod 755 script.sh激活。 - 目录共享:多用户协作目录可通过
chmod 2775设置 SGID,确保新建文件继承目录所属组。 - 权限排查:使用
ls -l查看权限,stat filename查看详细权限信息,结合find命令批量搜索特定权限文件,如find / -type f -perm 777查找全局可写文件。
需注意,权限修改可能影响系统或服务运行,尤其是关键目录如 /root、/etc 下的文件,操作前建议备份,并通过 sudo 以管理员身份执行,避免因权限不足导致命令失败。
Linux 权限管理是系统安全的核心,熟练掌握相关命令能高效控制资源访问,平衡安全性与可用性,通过合理设置权限,既能保障数据安全,又能避免因权限过严导致的操作不便。
















