28.01.2026
理解Linux文件权限及其管理方法
Linux系统安全和多用户架构的一个关键基础是其文件权限模型。与Windows不同,Linux严格执行系统中每个文件和目录的所有权和访问控制。掌握文件权限不仅关乎安全——它对于管理服务器、部署软件、运行脚本和自动化任务至关重要。
Linux文件权限模型
Linux中的每个文件和目录都有三种类型的访问权限,分配给三种类型的用户:
| 用户类别 | 描述 |
|---|---|
| 所有者 | 拥有文件的用户 |
| 组 | 文件组中的用户 |
| 其他 | 系统中的所有其他用户 |
每个类别可以被赋予三种类型的权限:
| 权限 | 符号 | 含义 |
|---|---|---|
| 读取 | r | 查看文件内容 / 列出目录 |
| 写入 | w | 修改文件或目录 |
| 执行 | x | 运行文件或访问目录 |
使用ls -l查看权限
使用ls -l命令显示文件权限:
ls -l myscript.sh
输出:
-rwxr-xr-- 1 alice devs 2048 Jan 25 10:00 myscript.sh
细分:
- – → 常规文件
- rwx → 所有者(读取/写入/执行)
- r-x → 组(读取/执行)
- r– → 其他(只读)
使用chmod更改权限
📌 符号模式:
chmod u+x myscript.sh # Add execute to user chmod g-w myscript.sh # Remove write from group chmod o=r myscript.sh # Set read-only for others
📌 数字模式:
chmod 755 myscript.sh # rwx for owner, rx for group, rx for others
| 八进制 | 含义 |
|---|---|
| 7 | rwx |
| 6 | rw- |
| 5 | r-x |
| 4 | r– |
| 0 | — |
示例:
chmod 644 file.txt # owner: rw-, group: r--, others: r-- chmod 700 script.sh # owner: rwx, group/others: ---
使用chown和chgrp管理所有权
更改文件所有者:
chown alice file.txt
更改组:
chgrp devs file.txt
同时更改:
chown bob:admins file.txt
使用-R递归应用更改:
chown -R www-data:www-data /var/www/
特殊权限位
Linux支持三种特殊模式,修改默认行为:
1. SUID(设置用户ID)
- 适用于可执行文件
- 以所有者的权限运行,而不是调用者的
chmod u+s /usr/bin/passwd
🔍 ls -l输出:-rwsr-xr-x
用例:/usr/bin/passwd必须以root身份运行以更新/etc/shadow。
SGID(设置组ID) s
- 在文件上:以文件的组权限运行
- 在目录上:新文件继承该组
chmod g+s /opt/project
🔍 ls -l输出:drwxr-sr-x
在共享开发文件夹中非常有用。
粘滞位 t
- 在目录上:只有所有者可以删除/重命名他们的文件
- 在/tmp中常见,以保护用户文件
chmod +t /shared/folder
ls -ld /tmpdrwxrwxrwt 10 root root 4096 Jan 28 12:00 /tmp
理解umask
umask设置新文件/目录的默认权限:
检查当前值:umask
常见值:0022
| 文件 | 默认权限 | 使用umask 0022 |
|---|---|---|
| 文件 | 666 → 644 | rw-r–r– |
| 目录 | 777 → 755 | rwxr-xr-x |
设置临时umask:
umask 0077 # Files: 600, Dirs: 700
递归权限修复
分别设置文件夹和文件权限:
find /my/project -type d -exec chmod 755 {} ; find /my/project -type f -exec chmod 644 {} ;
结论
Linux文件权限为安全、多用户环境和自动化提供了细粒度的访问控制。理解如何查看、改变和执行权限使您能够自信地管理服务器、保护数据并安全地协作。
无论您是在部署Web应用程序、管理云服务器还是构建Shell脚本——熟悉chmod、chown、umask和特殊权限位是必不可少的。
