1. Linux文件权限深度解析
1.1 权限基础概念
在Linux系统中,每个文件和目录都有三组权限设置,分别对应三种用户身份:所有者(user)、所属组(group)和其他用户(others)。通过ls -l命令查看文件详细信息时,第一列的10个字符就代表了完整的权限信息。
第一个字符表示文件类型:
-普通文件d目录l符号链接c字符设备文件b块设备文件
后续9个字符每3个为一组,依次表示所有者、所属组和其他用户的权限。每组包含r(读)、w(写)、x(执行)三种权限,用-表示无该权限。
实际案例:
-rwxr-xr--表示这是一个普通文件,所有者有读写执行权限,所属组有读和执行权限,其他用户只有读权限。
1.2 权限修改实战
chmod命令是修改权限的核心工具,支持两种修改方式:
- 数字模式(推荐新手使用):
bash复制chmod 755 filename # 所有者rwx,组和其他用户rx
数字对应关系:
- 4 = r
- 2 = w
- 1 = x
三个数字分别对应所有者、组和其他用户的权限总和。
- 符号模式(适合精确调整):
bash复制chmod u+x,g-w,o=r filename
其中:
- u=用户,g=组,o=其他
- +添加权限,-移除权限,=设置精确权限
批量修改技巧:结合find命令批量修改目录下所有文件权限
bash复制find /path/to/dir -type f -exec chmod 644 {} \;
1.3 特殊权限详解
除了基本rwx权限外,Linux还有三个特殊权限位:
- SUID(Set User ID):以文件所有者身份执行
bash复制chmod u+s /usr/bin/passwd # 典型应用案例
- SGID(Set Group ID):以文件所属组身份执行
bash复制chmod g+s /shared/directory # 新建文件自动继承目录组
- Sticky Bit:防止用户删除他人文件
bash复制chmod +t /tmp # 典型应用场景
