Quantcast
Channel: CodeSection,代码区,Linux操作系统:Ubuntu_Centos_Debian - CodeSec
Viewing all articles
Browse latest Browse all 11063

linux中粘滞位简单理解

$
0
0

linux

每一个文件和目录都有自己的访问权限,访问权限确定了用户能否访问文件或者目录和怎样进行访问。最为我们熟知的一个文件或目录可能拥有三种权限,分别是读、写、和执行操作,在这里不做详细说明。我们创建一个文件后系统会默认地赋予所有者读和写权限。当然我们也可以自己修改它,添加自己需要的权限。

特殊权限: 但是这三种权限就足够了吗?我们现在来说说在linux下的另一个特殊权限。首先我们来看看在根目录下的一个目录tmp,可以看到tmp目录的other权限是'rwt',那么这里的t又是什么权限呢,有什么意义

粘滞位(Stickybit) ,或 粘 着位 ,是Unix文件系统权限的一个旗标。最常见的用法在目录上设置粘滞位,如此以来,只有目录内文件的所有者或者root才可以删除或移动该文件。如果不为目录设置粘滞位,任何具有该目录写和执行权限的用户都可以删除和移动其中的文件。实际应用中, 粘滞位一般用于/tmp目录,以防止普通用户删除或移动其他用户的文件。

比如我们进行下面的操作:

首先我们需要(用su 命令并输入密码)切换到root底下,

在里边创建一个tmp目录(mkdir命令)

并赋予tmp 777权限。 下来查看tmp的默认权限(ls/ll -dl tmp)


linux中粘滞位简单理解

我们可以看到此时的权限为.x,设置完之后应为.t

(也可以通过建文件看其在普通用户底下是否可以成功删除,若可以则没有粘滞位权限,若不可以则有)

(#以root用户的身份在tmp目录中创建文件ab,并查看其默认权限。

[root@localhost ~]# touch /tmp/ab.txt

#以普通用户natasha的身份登录系统,可以删除 /tmp/ab.txt 。

[natasha@localhost ~]$ rm /tmp/ab

rm:是否删除有写保护的普通空文件 "/tmp/ab"?y

通过上面的操作可以发现,虽然普通用户对文件/tmp/ab.txt只具备“r--”权限,但因为从/tmp目录获得了“rwx”权限,因而仍然可以将 /tmp/ab 删除。)


linux中粘滞位简单理解

在Linux系统中比较典型的例子就是“/tmp”、“/var/tmp”目录。 这两个目录作为Linux系统的临时文件夹,权限为“rwxrwxrwx”,即允许任意用户、任意程序在该目录中进行创建、删除、移动文件或子目录等操作 。然而试想一下,若任意一个普通用户都能够删除系统服务运行中使用的临时文件,将造成什么结果?

粘滞位 权限便是针对此种情况设置, 当目录被设置了粘滞位权限以后,即便用户对该目录有写入权限,也不能删除该目录中其他用户的文件数据,而是只有该文件的所有者和root用户才有权将其删除 。 设置了粘滞位之后,正好可以保持一种动态的平衡:允许各用户在目录中任意写入、删除数据,但是禁止随意删除其他用户的数据 。

(需要注意的是,粘滞位权限只能针对目录设置,对于文件无效 )

以下我们进行粘滞位的设置

粘滞位权限都是针对其他用户(other)设置, 使用chmod命令设置目录权限时,“o+t”、“o-t”权限模式可分别用于添加、移除粘滞位权限。


linux中粘滞位简单理解

我们可以看到此时的权限为已经由.x变为.t

此时如果你在tmp目录底下创建一个文件ab.txt,切换到普通用户环境底下,再一次进行删除,我们发现此时已经无法删除该文件。


linux中粘滞位简单理解

说明我们已经设置成功了

关于粘滞位的取消命令(chmod o-t tmp),取消完成之后就和初始状态一样,我们便不做过多解释。

(最新写博客时越来越没想法了,感觉好像进入冬眠状态了,大家说我该怎么办呢?)


Viewing all articles
Browse latest Browse all 11063

Trending Articles