807 字
约 2 分钟
9
S15-B03 · 权限与用户:rwx 到底管什么

适用读者:遇到 Permission denied 只会 chmod 777 的人。
前置:S15-B02。
实测环境:Ubuntu 24.04(2026-11-05)。
覆盖旧文:1333(45) 1308(27) 1302(20) 1305(20) 1325(22) + 4 张用户类 = 134 点。
覆盖扩展:E-S15-003(目录 r/w/x 的真实含义)。
上一篇:S15-B02 · 文件与目录:增删改查与查找
下一篇:S15-B04 · 进程、端口与内存。


1. 一句话结论

文件与目录的 rwx 含义不同:文件的 x 是"能执行",目录的 x 是"能进入";目录的 w 是"能增删条目",跟"能改文件内容"无关。


2. 实测:目录权限的三种状态

mkdir d1 d2 d3; echo x > d1/a.txt
chmod 444 d1          # r--r--r--
ls d1                 # → a.txt      ← 能列名(r 生效)
chmod 555 d1          # r-xr-xr-x
cd d1                 # → ok         ← 能进入(x 生效)
权限 文件上的含义 目录上的含义
r 读内容 列目录条目(ls)
w 改内容 增删/重命名条目
x 执行 进入目录(cd)/访问其中文件

只有 r 没有 x 的目录:能 ls 看到名字,但读不了文件内容(因为无法"进入")。


3. 权限模型与最小权限

位 归属
属主(u) 文件的 owner
组(g) owner 所在组
其他(o) 其他人

常用安全取值:

场景 建议
普通文件 644
可执行/脚本 755
私钥 600
目录 755

"为什么私钥必须 600":ssh 会拒绝权限过宽的私钥(bad permissions)。


4. 属主与用户操作

操作 命令
改属主 chown user:group file
改权限 chmod 644 f / chmod +x f
创建用户 useradd -m -s /bin/bash u
设密码 passwd u
切换 su - u / sudo -u u cmd
删除用户 userdel -r u(-r 删家目录)
用户组 groupadd / usermod -aG g u

sudo 的本质:以另一个用户(默认 root)身份执行——所以 sudo 后的权限位按 root 算。


5. 五个误区

误区 真相
"目录的 w 能改文件内容" 只能增删条目
"chmod 777 最省事" 安全风险
"chown 能改任意文件属主" 需 root
"sudo 改的是环境变量" 改的是执行身份
"su 与 sudo 一样" su 切换用户(要密码),sudo 提权执行单条

6. 自检

  1. 目录的 r/w/x 各管什么?
  2. 只有 r 没有 x 的目录能做什么、不能做什么?
  3. 私钥为什么必须 600?
  4. su 与 sudo 的差别?
  5. userdel -r 的 -r 做什么?

7. 下一篇

S15-B04 · 进程、端口与内存

权限讲完,下一篇讲"谁在跑、占了多少":ps/ss/top 的组合用法。


本篇属于系列《S15 · Linux 与运维》。旧文来源:9 张权限/用户类卡;扩展点 E-S15-003。目录权限实验为 Ubuntu 24.04 实测。

S15-B03 · 权限与用户:rwx 到底管什么
https://www.clxhxhhr.top/posts/5391/
作者
clxstart
发布于
2024-12-31
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。