一、开篇:改个配置就被拒,不是玄学
Linux 的权限,本质上就是一张门禁卡------你手里这张卡,哪盏灯亮、哪盏灯灭,决定了你能进门看、能动手改、还是压根连门都摸不着。
今天用「门禁卡 + 红黄绿三色灯」这套比喻,把 rwx、ls -l、chmod 一次性讲透。看完你再看权限,就像看自家小区门禁一样自然。
二、核心比喻:文件是一间房,权限是门禁卡上的三盏灯
1. 先把模型立住:文件是房,你手里有张门禁卡
- 每个文件 / 目录 = 一间房(或柜子)。普通文件是储物柜,目录是带门的房间。
- 你手里有一张门禁卡,卡上有三盏灯:🔴红、🟡黄、🟢绿,各管一种能力。
- 服务器上有三拨人 ,每人刷的卡不一样:
- 房主(owner):这间房的业主,卡权限最高
- 同部门(group):和业主同组的同事,刷部门卡
- 访客(others):既不是业主也不在同组,刷访客临时卡
2. 三盏灯分别管什么:rwx 的真身
| 灯 | 权限位 | 对「文件(柜子)」 | 对「目录(房间)」 |
|---|---|---|---|
| 🔴 红灯 = r(read) | 能进门看 | 能读文件内容(cat) | 能列目录里有什么(ls) |
| 🟡 黄灯 = w(write) | 能动手改 | 能改、能删文件内容 | 能在目录里增删文件(哪怕文件不是你的) |
| 🟢 绿灯 = x(execute) | 能跑 / 穿过 | 文件能被执行(脚本/程序跑起来) | 能 cd 进这个目录(把门当通道穿过) |
⚠️ 关键认知:对目录来说,x 比 w 更基础。没 x 灯,你连门都进不去,里面 w 灯亮着也白搭------就像房间门禁坏了,你在门外就算有「改造权」也进不去改东西。
一句话记住:🔴看、🟡改、🟢跑(或穿门)。rwx 就是门禁卡上这三盏灯的开关。
三、实战:先学会「看懂」权限------给 ls -l 解码
1. 拆解 ls -l:一张门禁卡的读法
权限的第一关,是能看懂 。随便 ls -l 一行:
bash
$ ls -ld /opt/app
drwxr-xr-- 2 deploy deploy 4096 Jul 19 10:00 /opt/app
把 drwxr-xr-- 拆开,就像读一张门禁卡:
text
d rwx r-x r--
│ │││ │││ │││
│ └┬┘ └┬┘ └┬┘
│ 红黄绿 黄-绿 -── ← 三拨人各自的灯
│ (房主)(同组)(访客)
└ 类型:d=目录(房间),-=普通文件(柜子)
翻译成门禁卡语言:
- d → 这是一间「房间」(目录),不是柜子
- rwx(房主 deploy 的卡)→ 业主三盏灯全亮:能进、能改、能跑
- r-x(同组同事的卡)→ 能看、能进,但不能改(黄灯灭)
- r--(访客的卡)→ 只能隔着门看里面有什么,进不去也改不了
2. 字符对回门禁灯:一眼速查表
| 字符 | 门禁灯 | 含义(文件 / 目录) |
|---|---|---|
r |
🔴 红灯亮 | 可读 / 可列目录 |
w |
🟡 黄灯亮 | 可写可删 / 可增删目录内文件 |
x |
🟢 绿灯亮 | 可执行 / 可 cd 进入 |
- |
灯灭 | 该项能力:无 |
看权限就像看门禁灯------哪盏灭,哪件事你就做不了。开头的 E212 和 Permission denied,本质就是你的卡上,对应那盏灯没亮。
四、实战:改权限就是「调灯」------chmod 数字法
1. 数字法:把亮着的灯分值加起来
看懂了,下一步是改 。改权限的命令叫 chmod,你可以理解为「去门禁后台调灯的开关」。
最常用的是数字法,规则特别好记:每盏灯有个分值------
text
r(红/读)= 4
w(黄/改)= 2
x(绿/跑)= 1
把某人卡上亮着的灯分值加起来,就是他的权限数字。三拨人(房主/同组/访客)各算各的,拼成三位数字。
2. 高频组合与实操命令
用门禁卡视角拆解几个高频组合:
| 数字 | 灯的开关 | 房主卡 | 同组卡 | 访客卡 | 典型场景 |
|---|---|---|---|---|---|
| 755 | rwxr-xr-x | 全亮(7) | 看+进(5) | 看+进(5) | 程序/脚本:自己随便改,别人只能用 |
| 644 | rw-r--r-- | 看+改(6) | 只看(4) | 只看(4) | 普通配置文件:你能改,别人只读 |
| 700 | rwx------ | 全亮(7) | 全灭(0) | 全灭(0) | 私钥/家目录:只有你自己能动 |
| 600 | rw------- | 看+改(6) | 全灭 | 全灭 | .ssh/id_rsa 私钥标准权限 |
实操命令(直接能背):
bash
01 数字法
# 给部署脚本加「绿灯」,让自己和同组能跑,访客不能
chmod 755 deploy.sh
# 配置文件:自己能改,别人只读
chmod 644 nginx.conf
# 家目录锁死,只有自己进得去(防别人翻你东西)
chmod 700 ~/
02 符号法:更精准,不易手滑
# 只想给房主自己加绿灯,用符号法更精准(u=房主,+x=加绿灯)
chmod u+x run.sh
# g-w 关掉同组的黄灯,o-r 关掉访客的红灯
chmod g-w,o-r secret.txt
💡 符号法口诀:
u房主g同组o访客a所有人;+开灯-关灯=直接设成。比数字法更不容易手滑改错人。
五、进阶:换房主、借老板卡、新建房的默认灯
基础三盏灯会看了会调了,再补几块「绕不开」的:
1. 换房主------chown
门禁卡是跟人绑定的。文件原本属于 A,要转给 B,就是换业主:
bash
chown deploy:deploy /opt/app # 业主和组一起换成 deploy
注意:换业主这事儿,只有「老板(root)」能干,普通业主没这权限。
2. 借老板的万能卡------sudo
你自己的卡灯不够,但老板(root)有张万能卡,啥灯都亮。临时借一下就是 sudo:
bash
sudo vim /etc/nginx/nginx.conf # 借 root 的卡,才能改系统级配置
比喻:你刷自己的卡进不去机房,找老板借了张万能卡,办完事还回去------平时别乱借,万能卡啥都能删。
3. 新建房间的默认灯------umask
你新开一间房(建文件/目录),系统不会把所有灯都给你点亮,而是按 umask 默认「关掉几盏」:
bash
umask # 通常 022:新建文件默认 644,新建目录默认 755
umask 077 # 更狠:新建的东西只有自己能动(700/600)
比喻:小区交房时默认访客灯是灭的,你想开放再自己调。
4. 三盏灯之外的「特殊灯」(一句话带过)
- SUID(文件上):谁运行它,就暂时借到业主的万能卡------像「代老板刷卡」,危险,少见
- SGID(目录上):进这间房新建的东西,自动归房主的同组------共享办公室
- Sticky Bit (如
/tmp):大家都能进能放,但只能删自己放的------公共更衣柜,防误删别人外套
这块不用背细节,记住「门禁卡还有几盏隐藏灯」就够,遇到再查。
六、总结:一句话 + 落地清单
1. 一句话记忆
Linux 权限就是门禁卡上的红黄绿三盏灯------🔴看、🟡改、🟢跑,房主/同组/访客三拨人各有各的卡,ls -l 读灯、chmod 调灯、sudo 借万能卡。
2. 落地清单(建议直接背)
- 看权限先拆
ls -l第一位类型 + 后九位「房主/同组/访客」三组的灯 - 记死分值:r=4 w=2 x=1,三组拼成三位数字(755 / 644 / 700)
- 目录的 🟢x 比 🟡w 更基础------进不去门,有改权也白搭
- 私钥/家目录一律
700,配置文件644,脚本755 - 自己的卡灯不够就用
sudo借 root 万能卡,但别拿它当日常卡乱用
下次再撞上 Permission denied,别急------先看一眼你的门禁卡,哪盏灯没亮,调亮它就行。🐾