Linux chmod命令 – 改变文件或目录权限
在Linux系统中,每个文件和目录都有自己的权限属性,这些属性包括读、写、执行等权限。通常情况下,只有文件的所有者和管理员可以设置文件权限,而普通用户只能管理自己文件的权限。为了更好地控制文件的安全性,我们需要使用Linux系统中的chmod
命令来修改文件或目录的权限属性。
语法格式
chmod
命令的语法格式如下:
chmod [选项] 模式 文件名
其中,选项包括:
-R
:递归操作,指定目录下的所有子文件/目录都进行权限设定-v
:查看执行过程详细信息-c
:改变文件权限成功后再输出成功信息--help
:显示帮助信息--no-preserve-root
:不特殊对待根目录,可以递归操作--preserve-root
:禁止对根目录进行递归操作--reference
:使用指定参考文件的权限--version
:显示版本信息
模式分为两种表达方式:
-
通过
字母表达式
表示权限:字符意义:
u
:所有者(User)g
:所属组(Group)o
:其他人(Others)a
:所有人(All)
操作符号:
+
:添加权限-
:去除权限=
:赋予权限
权限符号:
r
:读权限w
:写权限x
:执行权限
示例:
$ chmod u+rwx,go-rwx test.txt # 给文件所有者添加读写执行权限,其他人全部去掉权限
-
通过
数字表达式
表示权限:数字表达式是将每个权限值分别转换成二进制数,然后将三个二进制数串成一串,再将这个二进制数转换成八进制数。其中第一个二进制数代表所有者的权限,第二个二进制数代表所属组的权限,第三个二进制数代表其他人的权限。
权限符号与数字之间的对应关系:
r
:4w
:2x
:1
示例:
$ chmod 777 test.txt # 给文件所有人添加读写执行权限
图解-总结
首先我们来看这段表达式有几位组成?
10位
文件类型 | 用户 | 用户组 | 其他 |
---|---|---|---|
- 普通文件 | rwx | rwx | rwx |
d 目录 | |||
l 链接文件 |
r
全称 read 读取
w
全称 write 写入
x
全称 execute 执行
-
表示用户没有当前位置的权限
权限数字表达式
数字表达式rwx 421的特点是
每次除以2
即:4除以2等于2,2除以2等于1
每个角色最多拥有3个权限也就是
rwx
每个角色最少拥有0个权限也就是
---
下面是数字表达式rwx 421及其对应数字的表格:
rwx表达式 | 对应数字 |
---|---|
— (无权限) | 0 |
–x (可执行) | 1 |
-w- (可写) | 2 |
-wx (可写、可执行) | 3 |
r-- (可读) | 4 |
r-x (可读、可执行) | 5 |
rw- (可读、可写) | 6 |
rwx (可读、可写、可执行) | 7 |
rwx表达式 | 对应数字 | 权限说明 |
---|---|---|
r-- — --- | 400 | 只读取 |
r-- — --x | 401 | 读取和执行 |
r-- — -w- | 402 | 读取和写入 |
r-- — -wx | 403 | 读取、写入和执行 |
r-- — r– | 404 | 只读取 |
r-- — r-x | 405 | 读取和执行 |
r-- — rw- | 406 | 读取、写入 |
r-- — rwx | 407 | 读取、写入和执行 |
r-- -w- — | 440 | 读取和写入 |
r-- -w- --x | 441 | 读取、写入和执行 |
r-- -w- -wx | 443 | 读取、写入和执行 |
实操演示
假设我们要给test.txt
文件添加读取、写入和执行的权限,可以使用以下命令:
$ chmod u+rwx test.txt
我们还可以使用字母表达式来设置权限,比如将所有者和所属组的读取、写入和执行权限都去掉,其他人没有变化:
$ chmod ug-rwx test.txt
我们可以使用数字表达式来设置权限,比如将所有者、所属组和其他人的读取、写入和执行权限都添加上:
$ chmod 777 test.txt
chmod
命令 – 改变文件或目录权限之间的区别
Linux系统中的chmod
命令不仅可以修改文件的权限,也可以修改目录的权限。在对目录进行权限修改时,建议使用-R
参数进行递归操作,以便将权限修改应用到目录本身以及目录下的所有子目录/文件。
此外,chmod
命令还可以通过字母表达式和数字表达式两种方式来设置文件或目录的权限。字母表达式更直观易懂,适合初学者使用;而数字表达式更加灵活和精确,适合专业人士使用。
最后,在使用chmod
命令修改文件或目录的权限时,需要注意权限的数字表示方式,以确保权限修改的正确性和稳定性。