文章目录
- 前言
- 一、文件权限概述
- 1. 权限表示格式
- 2. 权限组合值
- 二、查看文件权限
- 三、修改文件所有者与所属组
- 1. 使用 chown 修改文件所有者
- 2. 使用 chgrp 修改文件所属组
- 3. 添加所有者
- 四、修改文件权限
- 1. 符号方式
- 2. 八进制方式
- 3. 实际修改
- 总结
前言
在 Linux 系统中,文件权限控制是非常重要的。每个文件都有其所有者和所属组,并且拥有一套权限来控制谁能对文件进行读取、写入和执行等操作。本文将详细介绍文件权限的组合规则,如何使用常用命令 ls -l 查看文件权限,使用 chown、chgrp 更改文件所有者和所属组,以及 chmod 命令来设置文件访问权限。

一、文件权限概述
Linux 系统中的每个文件都有三种权限设置,分别针对文件的 所有者(属主)、所属组(属组) 以及 其他用户。每种权限包括三种类型:
- r (read):读取权限,允许读取文件内容。
- w (write):写入权限,允许修改文件内容。
- x (execute):执行权限,允许执行文件(如果文件是可执行文件)。

文件权限可以通过 ls -l 命令来查看。
1. 权限表示格式
使用 ls -l 命令可以列出文件的详细信息,包括文件类型和权限。例如:

权限的格式可以分为 10 位,其中:
- 第一位表示文件类型:
-:普通文件
d:目录
l:符号链接
b:块设备
c:字符设备 - 接下来的 9 位表示文件权限,三位一组,分别表示所有者、所属组和其他用户的权限。每组三个字符依次表示 r、w、x 权限。例如,
rwxr-xr--表示:
所有者(前三位):具有读取、写入和执行权限(rwx)
所属组(中间三位):具有读取和执行权限(r-x)
其他用户(后三位):只有读取权限(r–)

2. 权限组合值
文件权限还可以用八进制数表示,其中:
- r 对应的值是 4
- w 对应的值是 2
- x 对应的值是 1
例如:
rwx权限对应的值是 4+2+1 = 7rw-权限对应的值是 4+2 = 6r-x权限对应的值是 4+1 = 5
因此,权限 rwxr-xr-- 可以用八进制表示为 0754。
二、查看文件权限
可以使用 ls -l 命令查看文件的详细权限信息。

- 第一列表示文件的类型和权限(
-rwxr-xr--) - 第二列表示硬链接数
- 第三列表示文件所有者(
user) - 第四列表示文件所属组(
group) - 第五列表示文件大小(1024 字节)
- 第六列表示文件的最后修改时间(
Sep 19 10:00) - 第七列表示文件名(
example.txt)

三、修改文件所有者与所属组
1. 使用 chown 修改文件所有者
chown 命令用于更改文件或目录的所有者,语法如下:
$ sudo chown 新所有者 文件名
例如,将 example.txt 的所有者更改为 user2:
$ sudo chown user2 example.txt
2. 使用 chgrp 修改文件所属组
chgrp 命令用于更改文件的所属组,语法如下:
$ sudo chgrp 新组 文件名
例如,将 example.txt 的所属组更改为 group2:
$ sudo chgrp group2 example.txt
3. 添加所有者
通过 sudo adduser 命令可以将添加用户:

四、修改文件权限
使用 chmod 命令可以修改文件或目录的权限,支持两种方式:符号方式和八进制方式。
1. 符号方式
符号方式中,权限由 u(所有者)、g(所属组)、o(其他用户)和 a(所有用户)进行指定,并通过 +、- 和 = 符号修改权限。
语法格式如下:
$ chmod [ugoa][+-=][rwx] 文件名
例如:
- 给所有者添加执行权限:
chmod u+x example.txt - 给所属组和其他用户删除写权限:
chmod go-w example.txt - 设置文件权限为只读:
chmod a=r example.txt
2. 八进制方式
八进制方式可以一次性为所有用户设置权限。例如:
$ chmod 754 example.txt
表示:
- 所有者有读、写、执行权限(7)
- 所属组有读和执行权限(5)
- 其他用户只有读权限(4)
3. 实际修改
新创建的shell脚本文件通常是没有执行权限的,也就是.sh后缀的文件只具备读r和写w的权限,使用./+脚本文件名即可执行

使用如下命令给所有者加上执行脚本的权限即可成功运行
chmod u+x demo.sh

总结
Linux 文件权限系统为文件提供了精细的访问控制机制。通过 ls -l 可以查看文件的权限和属性,chown 可以更改文件所有者,chgrp 可以更改文件所属组,chmod 则可以灵活地修改文件的访问权限。掌握这些基本命令,可以更好地管理 Linux 系统中的文件安全。
通过这篇文章的介绍,您应该对 Linux 文件权限有了更深入的了解,能够灵活运用各种权限管理命令。如果你有任何疑问或建议,欢迎在评论区留言讨论🌹
