Linux文件权限和访问模式

2025-11-19 09:50:25

1、使用 ls -l 命令可以查看与文件权限相关的信息:

ls -l

第一列就包含了文件或目录的权限。

第一列的字符可以分为三组,每一组有三个,每个字符都代表不同的权限,分别为读取(r)、写入(w)和执行(x):

1、第一组字符(2-4)表示文件所有者的权限,-rwxr-xr-- 表示所有者拥有读取(r)、写入(w)和执行(x)的权限。

2、第二组字符(5-7)表示文件所属用户组的权限,-rwxr-xr-- 表示该组拥有读取(r)和执行(x)的权限,但没有写入权限。

3、第三组字符(8-10)表示所有其他用户的权限,rwxr-xr-- 表示其他用户只能读取(r)文件。

Linux文件权限和访问模式

2、文件权限是Linux系统的第一道安全防线,基本的权限有读取(r)、写入(w)和执行(x):

1、读取:用户能够读取文件信息,查看文件内容。

2、写入:用户可以编辑文件,可以向文件写入内容,也可以删除文件内容。

3、执行:用户可以将文件作为程序来运行。

3、目录的访问模式和文件类似,但是稍有不同:

1、读取:用户可以查看目录中的文件

2、写入:用户可以在当前目录中删除文件或创建文件

3、执行:执行权限赋予用户遍历目录的权利,例如执行 cd 和 ls 命令。

4、可以使用 chmod (change mode) 命令来改变文件或目录的访问权限,权限可以使用符号或数字来表示。

使用符号表示权限

+:为文件或目录增加权限

 -:删除文件或目录的权限

=:设置指定的权限

Linux文件权限和访问模式

5、除了符号,也可以使用八进制数字来指定具体权限,如下表所示:

0:没有任何权限                                                :---

1:执行权限                                                      :--x

2:写入权限                                                      :-w-

3:执行权限和写入权限:1 (执行) + 2 (写入) = 3  :-wx

4:读取权限                                                      :r--

5:读取和执行权限:4 (读取) + 1 (执行) = 5        :r-x

6:读取和写入权限:4 (读取) + 2 (写入) = 6        :rw-

7:所有权限: 4 (读取) + 2 (写入) + 1 (执行) = 7   :rwx

Linux文件权限和访问模式

6、在Linux中,每添加一个新用户,就会为它分配一个用户ID和群组ID,上面提到的文件权限也是基于用户和群组来分配的。有两个命令可以改变文件的所有者或群组:

chown:chown 命令是"change owner"的缩写,用来改变文件的所有者。

chgrp:chgrp 命令是"change group"的缩写,用来改变文件所在的群组。

chown 命令用来更改文件所有者,其语法如下:

chown user filelist

这里user 可以是用户名或用户ID

chgrp 命令用来改变文件所属群组,其语法为:

chgrp group filelist

group可以是群组名或群组ID

Linux文件权限和访问模式

7、在Linux中,一些程序需要特殊权限才能完成用户指定的操作。例如,用户的密码保存在 /etc/shadow 文件中,出于安全考虑,一般用户没有读取和写入的权限。但是当我们使用 passwd 命令来更改密码时,需要对 /etc/shadow 文件有写入权限。这就意味着,passwd 程序必须要给我们一些特殊权限,才可以向 /etc/shadow 文件写入内容。Linux 通过给程序设置SUID(Set User ID)和SGID(Set Group ID)位来赋予普通用户特殊权限。当我们运行一个带有SUID位的程序时,就会继承该程序所有者的权限;如果程序不带SUID位,则会根据程序使用者的权限来运行。SGID也是一样。一般情况下程序会根据你的组权限来运行,但是给程序设置SGID后,就会根据程序所在组的组权限运行。如果程序设置了SUID位,就会在表示文件所有者可执行权限的位置上出现's'字母;同样,如果设置了SGID,就会在表示文件群组可执行权限的位置上出现's'字母。

Linux文件权限和访问模式

8、上面第一列第四个字符不是'x'或'-',而是's',说明 /usr/bin/passwd 文件设置了SUID位,这时普通用户会以root用户的权限来执行passwd程序。注意:小写字母's'说明文件所有者有执行权限(x),大写字母'S'说明程序所有者没有执行权限(x)。如果在表示群组权限的位置上出现SGID位,那么也仅有三类用户可以删除该目录下的文件:目录所有者、文件所有者、超级用户 root。

为一个目录设置SUID和SGID位可以使用下面的命令:

chmod ug+s dirname

dirname是要设置的目录名

Linux文件权限和访问模式

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢