参考:
Linux chmod 命令 | 菜鸟教程 (runoob.com)
Linux chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令
Linux/Unix 的文件调用权限分为三级 :
- 文件所有者(Owner Users)
- 用户组(Group)
- 其它用户(Other Users)
先使用 ls -l 查看所有文件信息ls -l #长格式(long format)列出当前目录下的文件和目录的详细信息
#以下为 ls -l 显示的内容
drwxr-xr-x 4 root root 4096 2月 10 2021 speech-dispatcher
drwxr-xr-x 4 root root 4096 6月 12 10:53 ssh
drwxr-xr-x 4 root root 4096 6月 12 10:59 ssl
-rw-r--r-- 1 root root 20 1月 4 2022 subgid
-rw-r--r-- 1 root root 0 2月 10 2021 subgid-
-rw-r--r-- 1 root root 20 1月 4 2022 subuid
-rw-r--r-- 1 root root 0 2月 10 2021 subuid-
-r--r----- 1 root root 755 2月 3 2020 sudoers
drwxr-xr-x 2 root root 4096 11月 10 2023 sudoers.d
-rw-r--r-- 1 root root 2351 2月 14 2020 sysctl.conf
drwxr-xr-x 2 root root 4096 6月 12 11:16 sysctl.d
drwxr-xr-x 5 root root 4096 3月 16 2023 systemd
drwxr-xr-x 2 root root 4096 11月 10 2023 terminfo
drwxr-xr-x 2 root root 4096 1月 4 2022 thermald
权限:前10个字符表示权限。
- 第一位表示文件类型:
d
表示目录,-
表示普通文件,l
表示软链接(符号链接),还有其他特殊类型但这里未展示。- 接下来的9个字符分为3组,每组3个字符,分别表示所有者(Owner)、所属组(Group)、其他人(Others)的权限。
r
(Read, 读):允许读取文件内容或列出目录内容。w
(Write, 写):允许修改文件内容或在目录中创建/删除文件。x
(Execute, 执行):允许执行文件(如果是脚本或程序)或进入目录。-
表示相应权限被禁止。硬链接数:接下来的数字表示该文件的硬链接数量。对于目录,这通常是其直接子项(文件和目录)的数量。
所有者:文件或目录的所有者的用户名。
所属组:文件或目录所属的用户组名。
文件大小:以字节为单位表示的文件大小,或对于目录而言,并非严格意义上目录本身的大小,而是目录条目的计数单位。
最后修改日期和时间:文件或目录最后一次被修改的时间。
文件名:文件或目录的名称。
一、八进制数字表示法
1.1 对于文件
数字含义:Read Write Executive 1表示有权限,0表示无权限,八进制计数
- 第一位:User
- 第二位:Group
- 第三位:Other
chmod 777 myfile.txt
1.2 对于目录
语法:chmod [option] [num] my_directory
option:
- -c : 若该文件权限确实已经更改,才显示其更改动作
- -f : 若该文件权限无法被更改也不要显示错误讯息
- -v : 显示权限变更的详细资料
- -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
- --help : 显示辅助说明
- --version : 显示版本
二、符号表示法
who | 用户类型 | 说明 |
---|---|---|
u | user | 文件所有者 |
g | group | 文件所有者所在组 |
o | others | 所有其他用户 |
a | all | 所有用户, 相当于 ugo |
Operator | 说明 |
---|---|
+ | 为指定的用户类型增加权限 |
- | 去除指定用户类型的权限 |
= | 设置指定用户权限的设置,即将用户类型的所有权限重新设置 |
mode | 名字 | 说明 |
---|---|---|
r | 读 | 设置为可读权限 |
w | 写 | 设置为可写权限 |
x | 执行权限 | 设置为可执行权限 |
X | 特殊执行权限 | 只有当文件为目录文件,或者其他类型的用户有可执行权限时,才将文件权限设置可执行 |
s | setuid/gid | 当文件被执行时,根据who参数指定的用户类型设置文件的setuid或者setgid权限 |
t | 粘贴位 | 设置粘贴位,只有超级用户可以设置该位,只有文件所有者u可以使用该位 |
格式: chmod [who][operator][mode] [file]
chmod u+w myfile.txt #给文件所有者增加写权限
chmod u-x,g+r myfile.txt #从文件所有者移除执行权限,并给组用户添加读权限
chmod a=rw myfile.txt #设置所有用户都有读写权限
chmod +x myfile.txt #没有指定用户,默认给所有用户添加执行权限