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