Linux文件权限管理:chmod修改权限 与 chown修改所有者
1、chmod 命令
chmod(Change Mode)用于修改文件或目录的权限,控制“谁能做什么”。
1.1、涉及的概念
3+1种用户角色
| 角色 | 符号 | 描述 |
|---|---|---|
| 所有者 | u | 文件的创建者或指定用户 |
| 所属组 | g | 文件关联的用户组 |
| 其他用户 | o | 系统中除所有者和所属组外的用户 |
| 所有用户 | a | 上述三者的合集(u+g+o) |
3种权限
| 权限 | 符号 | 对文件的作用 | 对目录的作用 |
|---|---|---|---|
| 读 | r | 查看文件内容 | 列出目录下的文件和子目录 |
| 写 | w | 修改文件内容 | 创建、删除、重命名目录内的文件 |
| 执行 | x | 运行可执行文件 | 进入目录(如 cd dir) |
1.2、基本语法
支持两种配置模式:符号模式(直观易读,灵活增减权限)和八进制模式(高效快捷,快速设置权限 )。
1.2.1、符号模式
chmod [选项] 权限模式 文件名/目录名
选项:
-R 选项,递归修改目录下所有文件和子目录。
权限模式:
+增加权限:如给所有者添加写权限u+w-移除权限:如给其他用户移除执行权限o-x=精确设置权限:如将所属组权限设为读+执行g=rx
示例:
- 给文件
data.txt的所有者添加写权限:chmod u+w data.txt - 给目录
project的所有用户添加执行权限:chmod a+x project - 将文件
script.sh的所属组权限设为读+写,其他用户仅读:chmod g=rw,o=r script.sh
1.2.2、八进制模式
chmod [选项] 八进制权限 文件名/目录名
权限模式:
每个用户的权限组合可转换为三位八进制数。
读r=4、写w=2、执行x=1,累加起来就是这个用户角色的权限。
- 所有者权限:读+写+执行 = 4+2+1 →
7 - 所属组权限:读+执行 = 4+1 →
5 - 其他用户权限:读 = 4 →
4 - 组合后的权限:
754(对应u=rwx,g=rx,o=r)。
示例:
- 设置目录
public的权限为755(所有者可读写执行,其他用户可读执行):chmod 755 public - 递归修改目录
app及其所有子文件/目录的权限为644(文件可读可写,目录可读):chmod -R 644 app
1.3、注意
-
目录的执行权限:若目录无执行权限(
x),用户无法进入目录(如cd dir会报错),但仍可通过绝对路径访问目录内的文件(需文件本身有读权限)。 -
文件的执行权限:只有给文件添加
x权限后,才能通过./file运行脚本或二进制文件。 -
文件权限建议:
普通文件建议设置为644(所有者可读写,其他用户可读)
可执行文件设置为755 -
目录权限建议:
公共目录建议设置为755(所有者可读写执行,其他用户可读执行)
私人目录设置为700(仅所有者可操作)。 -
避免使用
777:
该权限允许所有用户读写执行,存在极大安全风险,仅在临时测试时使用。
2、chown 命令
chown(Change Owner)用于更改文件或目录的所有者和所属组,控制“谁拥有文件”。
2.1、基本语法
chown [选项] 新所有者:新所属组 文件名/目录名
-R 选项,递归修改目录下所有文件和子目录
- 仅修改所有者:
chown new_user file.txt - 同时修改所有者和所属组:
chown new_user:new_group dir/ - 仅修改所属组:
chown :new_group file
3、查看当前所有者和权限
通过 ls -l 命令查看文件、目录的详细信息。
示例:
查看code目录的详细信息。

-
drwxr-xr-x:d,代表这是个目录rwx,所有者的权限是“读、写、执行”r-x:所属组的权限是“读、执行”r-x:其他用户的权限是“读、执行”
-
ly:ly:- 冒号前
ly:用户名 - 冒号后
ly:所属组
- 冒号前
