Linux 文件系统权限复习笔记

📅 2026/7/25 2:53:57 👁️ 阅读次数 📝 编程学习
Linux 文件系统权限复习笔记

一、特殊权限数字设置

除基础 rwx 权限外,Linux 还有 SUID、SGID、Sticky Bit 三大特殊权限,支持字符、四位数字两种配置方式。

1. 字符方式配置

  • SUID(属主特殊权限) 开启:chmod u+s 文件名/目录名取消:chmod u-s 文件名/目录名
  • SGID(属组特殊权限) 开启:chmod g+s 文件名/目录名取消:chmod g-s 文件名/目录名
  • Sticky Bit 粘滞位(其他用户权限) 开启:chmod o+t 目录名取消:chmod o-t 目录名

标识说明:权限位显示s/t代表原有执行权限 x;显示S/T代表无执行权限,特殊权限不生效。

2. 四位数字方式配置

命令格式:chmod 四位数字 文件名/目录名规则:第一位为特殊权限位,后三位为普通 u/g/o 基础权限

表格

特殊权限组合二进制数字
无特殊权限0000
Sticky Bit0011
SGID0102
SGID + Sticky Bit0113
SUID1004
SUID + Sticky Bit1015
SUID + SGID1106
SUID + SGID + Sticky Bit1117

示例:chmod 4755 test,4 代表开启 SUID,755 为基础权限 rwxr-xr-x。


二、ACL 访问控制列表

1. 作用

基础权限仅划分所有者、所属组、其他用户三类,权限管控粒度粗。ACL 可针对指定单个用户 / 用户组单独设置权限,实现精细化授权。 识别特征:文件 / 目录权限末尾带有+符号,代表已配置 ACL。

2. 核心命令

查看 ACL

bash

运行

getfacl 文件名/目录名
设置与管理 ACL(setfacl)

表格

参数功能
-m添加 / 修改 ACL 权限
-x删除单条指定用户 / 组的 ACL
-b清空所有 ACL 权限
-d为目录设置默认 ACL(子文件 / 目录自动继承)
-k删除目录默认 ACL
-R递归配置目录及内部文件

常用语法:

bash

运行

# 给指定用户设置权限 setfacl -m u:用户名:权限 目标文件/目录 # 给指定用户组设置权限 setfacl -m g:组名:权限 目标文件/目录 # 删除单个用户 ACL setfacl -x u:用户名 目标 # 清空全部 ACL setfacl -b 目标

3. mask 说明

mask 是 ACL 的权限上限,限制除文件所有者、other 之外,所有 ACL 用户 / 组的最大可用权限。

4. 实操案例

需求:目录/project归属 QQgroup 组,额外给用户 pt 分配 r-x 权限

bash

运行

# 创建组、用户并配置归属 groupadd QQgroup useradd zhangsan useradd lisi gpasswd -M zhangsan,lisi QQgroup chown root:QQgroup /project chmod 770 /project # 配置 ACL 权限 useradd pt setfacl -m u:pt:r-x /project

三、权限掩码 umask

1. 作用

umask 用于控制新建文件、目录的默认权限

2. 权限计算规则

实际默认权限 = 理论最大权限 - umask 值

  • 普通文件:理论最大权限0666(系统默认文件无执行权限)
  • 目录:理论最大权限0777(目录必须拥有执行权限才可进入)

3. 基础操作

bash

运行

# 查看当前 umask 值 umask # 临时修改(仅当前终端生效) umask 掩码值 # 永久修改(所有用户) vim /etc/profile # 文件末尾添加:umask 掩码值 source /etc/profile # 永久修改(仅当前用户) vim ~/.bashrc # 文件末尾添加:umask 掩码值 source ~/.bashrc

4. 随堂练习计算

  1. umask = 077
  • 普通文件:666 - 077 = 600 → 权限:-rw-------
110 110 110 (文件初始 0666) & 111 000 000 (取反后的 umask) -------------------------------- 110 000 000
  • 目录:777 - 077 = 700 → 权限:drwx------
111 111 111 (目录初始 0777) & 111 000 000 (取反后的 umask) -------------------------------- 111 000 000
  1. umask = 033
  • 普通文件:666 - 033 = 644 → 权限:-rw-r--r--
110 110 110 (文件初始 0666) & 111 100 100 (取反后的 umask) -------------------------------- 110 100 100
  • 目录:777 - 033 = 744 → 权限:drwxr--r--
111 111 111 (目录初始 0777) & 111 100 100 (取反后的 umask) -------------------------------- 111 100 100

运算本质

umask 是权限屏蔽码,Linux 权限计算依靠二进制按位取反 + 按位与不是十进制数学减法


四、核心知识点速记

  1. ACL 权限:用于对单独用户 / 组精细化授权;查权限用getfacl,配权限用setfacl -m,清权限用setfacl -b
  2. umask 掩码:文件基准 666、目录基准 777,通过减法计算默认权限;区分临时修改、全局永久修改、个人永久修改三种方式。