linux权限核心是“谁、能干什么、对什么”,rwx对文件和目录作用不同:文件上r读、w写、x执行;目录上r列内容、w增删改、x进入;chmod用符号法或数字法修改权限。

Linux 权限看起来一堆 rwx 字母,其实核心就三点:谁、能干什么、对什么。搞懂这个,权限管理就没那么神秘了。
rwx 到底代表什么?
rwx 是三种操作权限的缩写,但它们对文件和目录的作用完全不同,这是最容易混淆的地方。
对于一个普通文件:
- r (read): 能打开并查看文件里的内容。没有 r 权限,连 cat、more 这些命令都用不了。
- w (write): 能修改文件里的内容,比如用 vim 编辑后保存。注意,这不等于能删除文件!删文件是另一个概念。
- x (execute): 能把这个文件当作程序来运行。比如一个 shell 脚本,必须有 x 权限才能 ./script.sh 执行它。
对于一个目录(文件夹):
- r (read): 能列出这个目录里包含哪些文件和子目录,也就是能用 ls 命令看里面有什么。
- w (write): 能在这个目录里创建、删除或重命名文件。这个权限很关键,拥有 w 权限就能删掉里面的文件,哪怕你对那个文件本身没有任何权限。
- x (execute): 能进入这个目录,也就是能用 cd 命令切换到它里面。没有 x 权限,即使你知道路径也进不去。
chmod:如何修改这些权限?
chmod 命令就是用来改变文件或目录权限的工具,主要有两种方式:符号法和数字法。
1. 符号法(更直观)
这种方法直接用字母表示要修改的对象和权限。基本格式是:chmod [谁][怎么改][改什么权限] 文件名。
- 谁 (Who): u 代表所有者 (user),g 代表所属组 (group),o 代表其他人 (others),a 代表所有人 (all)。
- 怎么改 (operator): + 表示增加权限,- 表示去掉权限,= 表示精确设置为某个权限。
- 例子:
-
chmod u+x script.sh: 给文件所有者加上执行 (x) 权限。 -
chmod g-w,o-rwx config.txt: 去掉所属组的写 (w) 权限,并去掉其他人的所有 (rwx) 权限。 -
chmod a=r file.txt: 让所有人(所有者、组、其他人)的权限都精确等于只读 (r)。
-
2. 数字法(更高效)
这种方法用一个三位数来代表全部权限,每个数字是 r、w、x 对应数值的总和(r=4, w=2, x=1)。
- 第一位数字:代表所有者的权限 (u)。
- 第二位数字:代表所属组的权限 (g)。
- 第三位数字:代表其他人的权限 (o)。
- 计算方法: 把需要的权限数值加起来。比如,想要 rwx 就是 4+2+1=7;想要 rw- 就是 4+2+0=6;想要 r-x 就是 4+0+1=5。
- 常见组合:
-
chmod 755 dir/: 所有者有 rwx (7),组有 r-x (5),其他人有 r-x (5)。这是目录的常用权限。 -
chmod 644 file.txt: 所有者有 rw- (6),组有 r– (4),其他人有 r– (4)。这是文件的常用权限。
-
权限字符串第一段的完整解读
当你用 ls -l 查看时,会看到类似 -rw-r--r-- 或 drwxr-xr-x 的字符串。这一串字符可以分成四部分来看:
- 第一个字符: 表示文件类型。
-代表普通文件,d代表目录,l代表链接等。 - 第2-4个字符: 代表所有者的权限。比如
rw-表示有读、写,无执行。 - 第5-7个字符: 代表所属组的权限。比如
r-x表示有读、执行,无写。 - 第8-10个字符: 代表其他人的权限。比如
r--表示只有读权限。
所以,-rw-r--r-- 拆开就是:普通文件,所有者可读可写,所属组可读,其他人可读。
基本上就这些。