Linux 文件权限入门:chmod 与数字权限详解
【摘要】 本文介绍 Linux 文件权限的底层逻辑:三组对象与三种操作、数字权限的计算原理、常用权限组合及目录权限的特殊性。
前言
在 Linux 服务器上部署应用时,"权限不够"是新手最常遇到的报错之一。理解 chmod 和数字权限,能让你快速定位权限问题,而不是盲目地 chmod 777 了事。本文用 5 分钟讲清楚文件权限的底层逻辑。
权限的三组对象
Linux 把每个文件的访问者分成三类:
- u(user):文件所有者
- g(group):文件所属组内的用户
- o(others):其他所有人
每类对象对文件拥有三种操作权限:
- r(read,读):可查看文件内容 / 列出目录内容
- w(write,写):可修改文件 / 在目录中增删文件
- x(execute,执行):可运行文件 / 可进入目录
用 ls -l 查看时,第一列的 10 个字符就是权限信息:
-rwxr-xr-- 1 evia dev 1024 Oct 27 10:00 deploy.sh
拆开看:-(普通文件)rwx(所有者可读写执行)r-x(组可读可执行)r--(其他人只读)。
数字权限的原理
chmod 755 deploy.sh 里的 755 怎么来的?把 r/w/x 映射成二进制位:
| 权限 | 二进制 | 十进制 |
|---|---|---|
| r– | 100 | 4 |
| -w- | 010 | 2 |
| –x | 001 | 1 |
三组权限各用一个 0-7 的数字表示,拼起来就是三位数:
- 7 = 4+2+1 → rwx(读写执行)
- 5 = 4+0+1 → r-x(读执行)
- 0 = 0+0+0 → —(无权限)
所以 755 = 所有者 rwx、组 r-x、其他人 r-x,正是脚本文件的常见权限。
常用权限组合
| 数字 | 含义 | 典型场景 |
|---|---|---|
| 755 | rwxr-xr-x | 可执行脚本、目录 |
| 644 | rw-r–r– | 普通配置文件 |
| 600 | rw------- | 私钥、敏感文件 |
| 750 | rwxr-x— | 组内可用,外部不可见 |
安全原则:能用 644 就别用 755,能用 600 就别用 644。私钥文件若权限过宽,SSH 会直接拒绝使用。
符号方式
除了数字,也可以用字母直观修改:
chmod u+x script.sh # 给所有者加执行权限
chmod g-w config.yml # 去掉组的写权限
chmod o=r file.txt # 其他人设为只读
chmod a+r notice.txt # 所有人加读权限
符号方式适合只改某一类权限、不想重算数字的场景。
目录权限的特殊性
目录的 x 权限含义不是"执行",而是"进入"( traverse)。没有 x 权限,即使有 r 权限也只能看到文件名列表,无法 cd 进去或读取文件内容。
一个常见陷阱:把目录设成 644(rw-r–r–),结果 cd 失败——因为缺少 x 权限。目录通常需要 755 或 750。
小结
- 权限 = 三组对象 × 三种操作,用
ls -l查看 - 数字权限是 r=4、w=2、x=1 的累加,三位数分别对应 u/g/o
- 最小权限原则:给够用的最低权限,避免 777
- 目录的 x 是"进入"权限,别漏掉
掌握这些,日常运维中的权限问题就能快速解决了。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)