chmod 是 Linux/Unix 系统中用来修改文件或目录权限的命令。它通过三种权限(读、写、执行)来设置文件的访问权限,可以用符号方式或数字方式来表示。
1. 基本概念
-
r: 读权限 (Read)
-
w: 写权限 (Write)
-
x: 执行权限 (Execute)
2. 文件权限模式
Linux 系统中每个文件都有三个用户类别:
-
u: 用户 (User) – 文件的所有者
-
g: 用户组 (Group) – 文件所属的用户组
-
o: 其他用户 (Other) – 除文件所有者和组外的其他用户
3. 使用符号方式设置权限
chmod [who][operator][permissions] [file]
-
who: 指定用户类别,u= 用户,g= 组,o= 其他用户,a= 所有用户(默认) -
operator:+增加权限,-删除权限,=设置权限 -
permissions: 权限可以是r、w或x
示例:
-
给文件
file.txt增加用户的写权限:chmod u+w file.txt -
移除文件
file.txt对其他用户的执行权限:chmod o-x file.txt -
设置文件
file.txt的权限为:所有人都可以读写执行:chmod a+rwx file.txt
4. 使用数字方式设置权限
权限用一个三位数字来表示,每一位分别表示用户、组和其他用户的权限。数字是根据权限的不同组合来计算的:
-
r = 4
-
w = 2
-
x = 1
数字的加法方式:
-
7 (4 + 2 + 1) = 读、写、执行权限
-
6 (4 + 2) = 读、写权限
-
5 (4 + 1) = 读、执行权限
-
4 = 只读权限
-
3 (2 + 1) = 写、执行权限
-
2 = 只写权限
-
1 = 只执行权限
-
0 = 无权限
示例:
-
设置文件
file.txt的权限为:用户可读写执行,组和其他用户只能读取:chmod 744 file.txt解释:用户
7(rwx),组4(r–),其他用户4(r–) -
设置文件
file.txt的权限为:所有人都可以读写执行:chmod 777 file.txt
5. 递归修改目录权限
要递归地修改目录及其中所有文件的权限,可以使用 -R 选项:
chmod -R 755 /path/to/directory
这将为目录及其下所有文件和子目录设置权限。
6. 查看文件权限
使用 ls -l 命令查看文件或目录的权限:
ls -l file.txt
输出示例:
-rwxr-xr-x 1 user group 4096 Apr 26 12:00 file.txt
权限部分的解释:
-
-:表示文件类型(这里是普通文件) -
rwx:用户(所有者)权限(可读、可写、可执行) -
r-x:组权限(可读、不可写、可执行) -
r-x:其他用户权限(可读、不可写、可执行)
