【Linux课程学习】:对于权限的理解(粘滞位)

?一.linux权限的概念:

1.用户:

在用户匹配过程中,系统会依次进行匹配,首先是文件或目录的拥有者,然后是所属组,最后是其他用户。

也就是说,用户要么是拥有者,要么是所属组成员,要么是其他用户。

例如,如果拥有者没有某个权限,而所属组有该权限,拥有者仍然无法获得该权限。

由于文件或目录的1.拥有者、2.所属组和3.其他用户这三类用户的设置不同,不同的用户可能拥有不同的权限。

注意:上述用户权限规则适用于普通用户,超级用户root可以无视所有权限限制。

下图展示了文件或目录的拥有者和所属组:

【Linux课程学习】:对于权限的理解(粘滞位)2.文件/目录属性:

我们可以通过更改文件或目录的拥有者、所属组和其他用户的权限来调整其权限。

【Linux课程学习】:对于权限的理解(粘滞位)文件或目录有三种基本权限:读取权限(r)、写入权限(w)和执行权限(x)。每个权限类别(拥有者、所属组、其他用户)各有三个权限,共九个权限位,用“-”表示没有该权限。

例如:

不考虑最前面的字母。

1.test.cpp文件的权限是:前三个字母(rw-)表示拥有者有读取和写入权限,但没有执行权限。

2.中间三个字母(r–)表示所属组只有读取权限,没有写入和执行权限。

3.后三个字母(r–)表示其他用户也只有读取权限。

?二.更改权限:1.更改rwx权限:chmod:

功能:设置文件的访问权限。

格式:chmod [参数] 权限 文件名。

常用选项:

●-R 递归修改目录及其文件的权限。

注意:只有文件的拥有者和超级用户root可以更改权限。


参数包括:+-=

u:代表拥有者。

g:代表所属组。

o:代表其他用户。

a:代表所有用户。

例如:

【Linux课程学习】:对于权限的理解(粘滞位)为拥有者添加执行权限。

也可以使用三个八进制数来表示权限:

r:100(十进制:4),w:010(2),x:001(1)。

rw:110(6),rx:101(5),wx:011(3)。

rwx(7)。

操作说明:

chmod 三个八进制数 文件名称

【Linux课程学习】:对于权限的理解(粘滞位) 二.改变文件的拥有者,所属组:1.更改拥有者:

chown 新的拥有者 文件名称

2.更改所属组: chgrp 新的所属组 文件名称

-R 递归修改文件所属组

【Linux课程学习】:对于权限的理解(粘滞位)?三.对于umask的理解:新建文件的默认权限是0666(rw-rw-rw-)。

新建目录的默认权限是0777(rwxrwxrwx)。

【Linux课程学习】:对于权限的理解(粘滞位)然而,新建文件或目录的实际权限与此不同,这是因为最终权限是由初始权限与umask值的逻辑与(&)运算决定的。

超级用户的umask默认值是0022,普通用户的umask默认值是0002。

因此,超级用户新建的目录权限为0777 & (~0022) = 0755。

新建文件的权限为0666 & (~0022) = 0644。

?四.粘滞位的理解:chmod -t

首先需要理解,删除目录或文件的权限取决于你是否拥有其上一级目录的写入权限,而不是文件本身的写入权限。


由于某些原因,我们可能需要创建一个共享目录,所有用户都具有rwx权限(如下图)。然而,在这种设置下,虽然其他用户没有写入权限,但他们可以删除你在share目录下新建的文件。因为删除share目录下的文件取决于你在share目录是否有写入权限,而在共享目录中,所有人都可以删除别人的文件。

【Linux课程学习】:对于权限的理解(粘滞位)在这种情况下,我们引入了粘滞位。

为目录添加粘滞位后,即使你对该目录有写入权限,只要文件不是你创建的,你就无法删除该文件。

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享