Linux权限管理通过文件权限(读r=4、写w=2、执行x=1)和身份(所有者、组、其他)控制访问,使用ls -l查看权限,chmod修改权限(如644表示rw-r–r–),chown/chgrp更改所有者与组,umask设置默认权限,特殊权限位(Setuid、Setgid、Sticky Bit)用于特定场景,核心是遵循最小权限原则保障系统安全。

Linux的权限管理机制是保障系统安全与多用户环境协作的核心功能。通过合理设置文件和目录的权限,可以有效控制用户对资源的访问。理解并掌握权限管理技巧,对系统维护和日常操作都至关重要。
理解Linux文件权限的基本结构
每个文件或目录在Linux中都有三类权限:读(r)、写(w)、执行(x),分别对应三种身份:所有者(user)、所属组(group)和其他用户(others)。
使用ls -l命令查看文件详情时,会看到类似-rw-r–r–的权限字符串:
- 第一位表示文件类型(如–为普通文件,d为目录)
- 接下来每三位一组:rw-代表所有者权限,r–代表组权限,r–代表其他用户权限
- 权限可用数字表示:r=4, w=2, x=1,例如rw-r–r–对应644
使用chmod修改文件权限
chmod命令用于更改文件或目录的访问权限,支持符号模式和数字模式两种方式。
- 数字模式示例:chmod 644 file.txt 设置所有者可读写,组和其他用户只读
- 符号模式更灵活,如chmod u+x script.sh 给所有者添加执行权限
- 批量设置目录及子内容:chmod -R 755 /path/to/dir
注意避免过度开放权限,尤其是敏感文件不要随意赋予777权限。
管理文件所有者和所属组
使用chown和chgrp可更改文件的所有者和所属组。
- 更改所有者:chown alice file.txt
- 同时更改所有者和组:chown alice:developers file.txt
- 递归修改目录下所有文件:chown -R alice:developers /home/alice/project
只有root或具有sudo权限的用户才能更改文件所有者。
设置默认权限与特殊权限位
umask用于定义新建文件的默认权限。常见值为022,表示新文件默认权限为644(即去除其他用户的写权限)。
特殊权限位在特定场景下很有用:
- Setuid:使程序以文件所有者的身份运行,如chmod u+s /usr/bin/passwd
- Setgid:目录中新创建的文件自动继承父目录的组属性
- Sticky Bit:常用于共享目录,如/tmp,确保用户只能删除自己的文件:chmod +t /shared
这些特殊权限在权限字符串中体现为s或t(如rwsr-xr-x)。
基本上就这些。掌握基础权限设置、灵活使用chmod/chown、理解umask和特殊权限,就能应对大多数Linux权限管理需求。关键是根据实际场景最小化授权,确保安全与可用性平衡。


