3.2 文件权限管理
3.2 Linux文件权限管理
一、Linux 权限模型概述
Linux 采用多用户权限管理机制,通过权限控制实现系统资源隔离与安全管理。
文件和目录的权限主要分为三类对象:
- 所有者(User)
- 所属组(Group)
- 其他用户(Other)
每类对象拥有不同的访问权限。
二、查看文件权限
使用 ls -l 查看文件权限:
1 | |
示例输出:
1 | |
权限字段解析
权限字段共 10 个字符:
1 | |
结构如下:
1 | |
文件类型
| 标识 | 类型 |
|---|---|
| - | 普通文件 |
| d | 目录 |
| l | 软链接 |
| c | 字符设备 |
| b | 块设备 |
权限含义
| 权限 | 含义 |
|---|---|
| r | Read(读取) |
| w | Write(写入) |
| x | Execute(执行) |
示例解析
普通文件
1 | |
含义:
1 | |
目录
1 | |
含义:
1 | |
目录权限中的 x 表示允许进入目录:
1 | |
如果目录没有执行权限,即使拥有读取权限,也无法访问目录中的文件。
三、chmod 权限管理
chmod 用于修改文件或目录权限。
3.1 符号模式
用户对象
| 符号 | 含义 |
|---|---|
| u | User(所有者) |
| g | Group(所属组) |
| o | Other(其他用户) |
| a | All(所有用户) |
操作符
| 符号 | 含义 |
|---|---|
| + | 添加权限 |
| - | 删除权限 |
| = | 覆盖原权限 |
权限符号
| 符号 | 含义 |
|---|---|
| r | 读 |
| w | 写 |
| x | 执行 |
示例
为所有者增加执行权限:
1 | |
移除组写权限:
1 | |
设置其他用户只读:
1 | |
设置精确权限:
1 | |
为所有用户增加执行权限:
1 | |
3.2 数字模式
Linux 权限采用二进制位计算:
| 权限 | 数值 |
|---|---|
| r | 4 |
| w | 2 |
| x | 1 |
权限值为三者之和。
权限对应关系
| 权限 | 数字 |
|---|---|
| — | 0 |
| –x | 1 |
| -w- | 2 |
| -wx | 3 |
| r– | 4 |
| r-x | 5 |
| rw- | 6 |
| rwx | 7 |
常见示例
755
1 | |
对应:
1 | |
含义:
1 | |
644
1 | |
对应:
1 | |
含义:
1 | |
600
1 | |
对应:
1 | |
仅所有者可访问。
700
1 | |
对应:
1 | |
仅所有者拥有全部权限。
常见权限组合
| 权限值 | 权限表示 | 适用场景 |
|---|---|---|
| 644 | rw-r–r– | 普通文件 |
| 755 | rwxr-xr-x | 目录、脚本 |
| 600 | rw——- | 私钥、敏感文件 |
| 700 | rwx—— | 私有目录 |
| 777 | rwxrwxrwx | 完全开放(不推荐) |
3.3 递归修改权限
递归修改目录:
1 | |
目录与文件分别设置权限
目录:
1 | |
普通文件:
1 | |
这种方式更符合实际生产环境规范。
四、所有者与所属组管理
4.1 chown
用于修改文件所有者和所属组。
修改所有者
1 | |
修改所有者和所属组
1 | |
仅修改所属组
1 | |
递归修改
1 | |
4.2 chgrp
仅修改所属组。
修改文件组:
1 | |
递归修改:
1 | |
五、特殊权限
Linux 提供三种特殊权限机制:
- SUID
- SGID
- Sticky Bit
5.1 SUID
SUID(Set User ID)允许程序以文件所有者身份运行。
查看示例:
1 | |
可能看到:
1 | |
其中:
1 | |
表示已设置 SUID。
设置 SUID
符号方式:
1 | |
数字方式:
1 | |
SUID 权限值
1 | |
例如:
1 | |
5.2 SGID
SGID(Set Group ID)允许程序以所属组身份运行。
目录上的 SGID 更常见。
设置:
1 | |
目录 SGID 作用
当用户在目录中创建文件时:
1 | |
适用于团队共享目录。
SGID 权限值
1 | |
示例:
1 | |
5.3 Sticky Bit
Sticky Bit 常用于公共目录。
典型目录:
1 | |
查看:
1 | |
通常显示:
1 | |
末尾的:
1 | |
即 Sticky Bit。
Sticky Bit 作用
目录中的文件只能由以下用户删除:
- 文件所有者
- 目录所有者
- root
其他用户无法删除他人的文件。
设置 Sticky Bit
符号方式:
1 | |
数字方式:
1 | |
Sticky Bit 权限值
1 | |
示例:
1 | |
六、权限验证命令
查看权限:
1 | |
查看目录权限:
1 | |
查看文件所有者:
1 | |
查看当前用户:
1 | |
查看用户信息:
1 | |
七、权限管理最佳实践
普通文件
推荐:
1 | |
1 | |
脚本文件
推荐:
1 | |
1 | |
私钥文件
推荐:
1 | |
1 | |
例如:
1 | |
私有目录
推荐:
1 | |
1 | |
避免使用 777
虽然:
1 | |
能够快速解决权限问题。
但同时意味着:
1 | |
生产环境应尽量避免使用。
八、常用命令汇总
| 命令 | 作用 |
|---|---|
| ls -l | 查看文件权限 |
| ls -ld | 查看目录权限 |
| chmod | 修改权限 |
| chmod -R | 递归修改权限 |
| chown | 修改所有者 |
| chgrp | 修改所属组 |
| find -exec chmod | 批量修改权限 |
| stat | 查看详细属性 |
| whoami | 查看当前用户 |
| id | 查看用户信息 |
3.2 文件权限管理
https://blog.sh462li.top/2026/05/27/3.2 文件权限管理/