Linux 文件权限教程:chmod 与 chown 一次搞懂
摘要
遇到 Permission denied 是每个 Linux 用户的必修课。本教程依据 GNU coreutils 官方手册,讲解 ls -l 权限字符串的含义、rwx 与数字权限的对应关系、chmod 数字法与符号法、chown 修改所有者、umask 默认权限,以及私钥 600、网站目录 755 等常见场景。
Linux 文件权限教程:chmod 与 chown 一次搞懂
在 Linux 上执行脚本时遇到 Permission denied,几乎是每个人都会撞上的第一课。这背后就是 Linux 的文件权限机制。本教程依据 GNU coreutils 官方手册整理,讲清楚 ls -l 输出的含义,以及 chmod、chown 的用法。
一、看懂权限字符串
执行 ls -l 会看到类似输出:
开头 10 个字符就是权限信息,拆开看:
第 1 位:文件类型(
-普通文件,d目录,l软链接)第 2-4 位:**所有者(user)**权限:
rwx第 5-7 位:**所属组(group)**权限:
r-x第 8-10 位:**其他人(others)**权限:
r--
三种基本权限:
字母 | 数字 | 对文件 | 对目录 |
|---|---|---|---|
| 4 | 读取内容 | 列出文件名 |
| 2 | 修改内容 | 新建/删除文件 |
| 1 | 执行程序 | 进入目录 |
二、chmod 修改权限
数字法:每组权限是 r+w+x 的和。rwxr-xr-- = 754。
符号法:u 所有者、g 组、o 其他、a 全部,配合 + 添加、- 移除、= 设置:
递归修改目录及其下所有内容,加 -R:
三、chown 修改所有者
修改所有者通常需要 root 权限,所以要加 sudo。
四、常见场景速查
场景 | 命令 |
|---|---|
脚本无法执行 |
|
SSH 私钥报权限太开放 |
|
Web 目录给 Nginx 读 |
|
普通文件标准权限 |
|
目录标准权限 |
|
五、权限为什么会"传染"——umask
新建文件的默认权限由 umask 决定,常见值 022:文件默认 644、目录默认 755。查看与临时修改:
想永久生效,把 umask 077 写进 ~/.bashrc。
六、总结
理解权限只需要记住三层人(所有者/组/其他人)× 三种权(r/w/x),chmod 的数字法就是三组八进制数。遇到 Permission denied,先 ls -l 看一眼,再用 chmod/chown 对症下药。
