文章目录
- 前言
- 一、文件权限概述
- 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 文件权限有了更深入的了解,能够灵活运用各种权限管理命令。如果你有任何疑问或建议,欢迎在评论区留言讨论🌹