🏷️ 标签:Linux 文件权限 chmod chown 权限管理 运维入门 📝 适用人群:Linux 初学者、运维、后端开发、计算机专业实训、面试复习 💡 文章亮点:零基础吃透 Linux 文件权限,包含权限原理、rwx 含义、字符 / 数字权限、所有者所属组、chmod、chown、特殊权限、默认权限 umask,内容全面可直接发布 CSDN
一、前言
Linux 和 Windows 最大区别之一就是 严格的文件权限管理。
在 Linux 中,一切皆文件 ,普通文件、目录、脚本、硬件设备、进程配置都有权限控制。 权限决定:谁能读、谁能写、谁能执行。
如果不懂权限:
- 程序运行提示权限不足
- 网站无法访问文件
- 数据库目录报错
- 多人服务器文件泄露
本文带你从零彻底吃透 Linux 文件权限,全覆盖无死角。
二、Linux 权限基本概念
2.1 权限针对三类用户
Linux 把文件访问者分为 3 种身份:
- 所有者(user /u):文件创建者、拥有者
- 所属组(group /g):同组所有用户
- 其他用户(other /o):既不是所有者、也不在所属组的其他所有人
任何一个文件权限,都是分别给 u、g、o 三类人设置。
2.2 三种基础权限
每一类用户都有三种权限:
| 权限 | 字符 | 作用(文件) | 作用(目录) |
|---|---|---|---|
| 读 | r | 查看文件内容 | 列出目录里的文件 |
| 写 | w | 修改、编辑文件 | 在目录中新建 / 删除 / 改名文件 |
| 执行 | x | 运行脚本、程序 | 进入目录、切换到目录 |
重点记忆:
- 文件 r:看内容
- 目录 r:看列表
- 文件 x:能运行
- 目录 x:能进入
三、查看文件权限
执行:
ls -l
示例输出:
-rwxr--r-- 1 root root 128 6月 10 test.sh
权限字段拆解
第一位:文件类型
-普通文件d目录l软链接b/c设备文件
后面 9 位分为 3 组:
rwx r-- r--
u g o
- 前 3 位:所有者 u 权限
- 中间 3 位:所属组 g 权限
- 后 3 位:其他用户 o 权限
四、字符权限与数字权限(核心)
4.1 字符权限表示
rwx r-x ---
4.2 数字权限(八进制)
权限对应数值:
- r = 4
- w = 2
- x = 1
每一组权限求和:
示例:
- rwx = 4+2+1 = 7
- r-x = 4+0+1 = 5
- r-- = 4+0+0 = 4
- --- = 0
4.3 常见权限对照表
| 字符权限 | 数字权限 | 说明 |
|---|---|---|
| rwxrwxrwx | 777 | 所有人完全控制(慎用) |
| rwxr-xr-x | 755 | 所有者可读写执行,其他人只读执行 |
| rw-r--r-- | 644 | 普通文件最常用 |
| rwx------ | 700 | 仅自己可访问,安全私密 |
| rw------- | 600 | 私密配置文件 |
企业默认规范:
- 普通文件:644
- 目录 / 脚本:755
- 私密配置:600 / 700
五、修改权限 chmod 命令
5.1 字符方式修改
# 给所有者增加执行权限
chmod u+x test.sh
# 取消组写权限
chmod g-w test.sh
# 其他用户增加读权限
chmod o+r test.sh
# 所有用户加执行
chmod a+x test.sh
5.2 数字方式修改(最常用)
chmod 755 test.sh
chmod 644 config.txt
chmod 700 私密目录
5.3 递归修改目录所有文件
chmod -R 755 /home/www
六、修改所有者和所属组 chown
6.1 修改文件所有者
chown user1 test.txt
6.2 修改所属组
chgrp group1 test.txt
6.3 同时改所有者 + 所属组
chown user1:group1 test.txt
6.4 递归修改目录所有文件
chown -R user1:group1 /home/www
七、文件所有者、所属组 是谁?
- 谁创建文件,谁就是所有者
- 默认所属组是当前用户初始组
- root 可以修改任何文件权限
- 普通用户不能把文件转给别人
八、目录权限特殊说明
目录权限和文件不一样,重点:
- r :可以
ls列出目录内容 - w:可以在目录下新建、删除、改名文件
- x :可以
cd进入目录
常见误区: 目录有 w 权限,就能删除里面的文件,哪怕文件本身没有写权限。
九、Linux 特殊权限(进阶)
除了 rwx,还有三个特殊权限:
9.1 SUID 临时继承所有者权限
- 作用:普通用户执行时临时拥有文件所有者权限
- 数字:4xxx
- 例如:
passwd命令
9.2 SGID 继承目录所属组
- 作用:目录下新建文件自动继承目录所属组
- 数字:2xxx
9.3 粘滞位 SBIT
- 作用:目录内文件只能自己删自己
- 典型:
/tmp临时目录 - 数字:1xxx
十、默认权限与 umask
10.1 什么是 umask
新建文件 / 目录时,默认权限由 umask 控制。
默认:
- 普通文件初始最大权限:666
- 目录初始最大权限:777
减去 umask 得到最终权限。
10.2 查看 umask
umask
10.3 示例
umask 为 022
- 文件:666 - 022 = 644
- 目录:777 - 022 = 755
正是企业最常用默认权限。
十一、常见权限故障排查
- 程序提示 Permission denied
- 检查文件是否有 x 执行权限
- 网页无法访问文件
- 给目录 755、文件 644
- 无法进入目录
- 缺少 x 权限
- 能看文件内容但不能删除
- 文件本身无 w,但上级目录有 w 仍可删除
十二、权限最佳实践(生产规范)
- 普通文件统一 644
- 目录、脚本统一 755
- 配置、密码文件设 600
- 禁止随意给 777 权限(安全隐患)
- 网站目录归属
www用户 - 多用
chown -R统一授权
十三、总结
- Linux 权限分三类用户:所有者 u、所属组 g、其他 o
- 基础权限:r 读、w 写、x 执行
- 权限有 字符表示、数字八进制表示
chmod修改权限,chown修改归属- 目录 rwx 含义和文件不同
- 理解 755、644、700 常用权限
- 特殊权限:SUID、SGID、粘滞位
- umask 控制新建文件默认权限
掌握本文,彻底搞定 Linux 文件权限,日常运维、部署项目、面试完全够用。
版权声明
本文为原创 Linux 文件权限超详细教程,CSDN 首发,内容全面适合学习、实训、作业、面试复习,禁止未经授权转载抄袭。