2. chmod 命令
chmod(Change Mode)是 Linux/Unix 系统中用于修改 文件或文件夹权限 的命令,通过调整权限位来控制用户对文件的访问级别(读、写、执行)。其核心作用是 管理文件系统的安全性。
Linux 中每个文件/文件夹的权限分为三类用户:
- 用户(User):文件拥有者(属主)。
- 所属组(Group):文件所属的用户组(属组)。
- 其他用户(Others):既非拥有者也不在所属组的用户。
每种用户可分配以下权限:
r(读):查看文件内容 / 列出文件夹内容。w(写):修改文件 / 在文件夹中创建/删除文件。x(执行):运行文件(如python或shell脚本) 或 进入文件夹(如 cd)。
每个用户的权限用一个二进制的位(1bit)表示。如果该位置 0 则表示没有权限,置 1 则表示有权限。如下图所示:

如:hello.py 文件的权限如下:
weimingze@mzstudio:~$ ls -l hello.py
-rw-rw-r-- 1 weimingze weimingze 23 May 22 11:57 hello.py
hello.py的权限就是二进制的 110(属主)、110(属组)和100(其他),用十进制的数字表示就是6、6、4。
命令格式
chmod 权限 文件/文件夹
权限有两种表示方法:
- 使用十进制的数字,如上述
hello.py的权限就是664。 - 使用符号模式(直观),即:
[用户类别][操作符][权限]- 用户类别:
- u:所有者
- g:所属组
- o:其他用户
- a:所有用户(默认)
- 操作符:
- +:添加权限
- -:移除权限
- =:直接设置权限(覆盖原有)
- 权限:
- r:读权限
- w:写权限
- x:执行权限
- 用户类别:
示例:
weimingze@mzstudio:~$ ls -l hello.py
-rw-rw-r-- 1 weimingze weimingze 23 May 22 11:57 hello.py
weimingze@mzstudio:~$ chmod 700 hello.py # 设置属主可以读写执行,属组和其他无权限。
weimingze@mzstudio:~$ ls -l hello.py
-rwx------ 1 weimingze weimingze 23 May 22 11:57 hello.py
weimingze@mzstudio:~$ chmod 664 hello.py
weimingze@mzstudio:~$ ls -l hello.py
-rw-rw-r-- 1 weimingze weimingze 23 May 22 11:57 hello.py
weimingze@mzstudio:~$ chmod u+x hello.py # 设置属主加执行权限
weimingze@mzstudio:~$ ls -l hello.py
-rwxrw-r-- 1 weimingze weimingze 23 May 22 11:57 hello.py
weimingze@mzstudio:~$ chmod u-x hello.py # 设置属主去掉执行权限
weimingze@mzstudio:~$ ls -l hello.py
-rw-rw-r-- 1 weimingze weimingze 23 May 22 11:57 hello.py
weimingze@mzstudio:~$ chmod a+x hello.py # 设置所有用户加执行权限
weimingze@mzstudio:~$ ls -l hello.py
-rwxrwxr-x 1 weimingze weimingze 23 May 22 11:57 hello.py
weimingze@mzstudio:~$ chmod a=r hello.py # 设置所用用户只读权限
weimingze@mzstudio:~$ ls -l hello.py
-r--r--r-- 1 weimingze weimingze 23 May 22 11:57 hello.py
weimingze@mzstudio:~$ chmod a=rw,g=rw,o=r hello.py # 等同于 chmod 664 hello.py
weimingze@mzstudio:~$ ls -l hello.py
-rw-rw-r-- 1 weimingze weimingze 23 May 22 11:57 hello.py
注意: chmod 设置的权限对 root 用户无效。
练习:
- 在根文件夹内创建文件
/temp.txt。 - 修改
/temp.txt文件的权限为 666。 - 使用普通用户权限修改
/temp.txt中的内容。 - 删除
/temp.txt。