Linux中的粘滞位

本文内容:

一、前言

二、粘滞位的概念

三、粘滞位的作用

四、粘滞位的简单分析

五、粘滞位的设置

前言

    最近在学习Linux的过程中发现了一个问题,用户A与用户B同属一个组,且一个文件对该组成员具有可写和可执行的权限,但是用A创建的文件,B却无法删除。原来是该文件位置的上层目录的权限是drwxrwxrwt
    我们都直到,Linux下每一个文件或目录都有自己的访问权限,访问权限决定了该用户能否访问这个文件或目录以及以怎样的权限进行访问。我们所熟知的一个文件或目录有读、写、可执行。在我们创建一个文件后,系统会自动的根据每个用户所设置的默认权限对该文件赋予权限。当然,我们也可以手动的修改文件的权限。
     但是,我前面提到的t权限又是怎么一会事呢?

粘滞位的概念

    粘滞位(Sticky bit),或粘着位,是Unix文件系统的一个旗标。
    普通文件的Sticky位会被Linux内核忽略,目录的Sticky位表示这个文件只能被owner和root删除。

粘滞位的作用

    粘滞位最常见的用法就是在目录上设置粘滞位,如此一来,只有目录内文件的owner或root才能删除或移动该文件。
    如果不为目录设置粘滞位,那么,任何具有该目录文件写和执行权限的用户都可以移动和删除目录内文件。
    在实际应用中,粘滞位一般用于/tmp目录,以防止普通用户移动或删除其他用户的文件。

粘滞位的简单分析

   现在,我们来进行这样的操作,切换到root,创建一个tmp文件夹,将它的权限改为777,然后在tmp下再创建一个文件test.txt,接下来,切换回普通用户,尝试着删除test.txt文件,竟然成功了!!!
   我们可以看到,test.txt文件的拥有者和所属组都是root超级用户,而且它的文件权限为rw-r--r--,但是,普通用户居然可以随意删除它,这是怎么一会事呢?

      从上图的验证,我们可以看到,即使test.txt文件对普通用户的权限设置为r--,但是/tmp的rwx权限使得普通用户也可以很容易的删除test.txt文件。
   在Linux系统中的/tmp、/var/tmp目录,这两个文件夹是Linux系统的临时文件夹,权限为rwxrwxrwx(777),即允许任意用户,任意程序对该目录下文件读、写、执行以及创建子目录,移动删除文件等操作。但是,试想一下,任意一个用户都能够删除系统运行服务中使用的临时文件,将造成什么结果?
   粘滞位就是针对这种情况设置的。
   当目录被设置了粘滞位权限后,即使一个用户对该目录有写权限,但是不能随意改动其他用户的文件数据。只有该文件的owner和root才有修改该文件的权限。因此,设置了粘滞位后,正好可以保持一种动态的平衡,允许个用户在目录中读,写,但不能随意改动删除不属于该用户的文件。

粘滞位的设置

    知道了粘滞位的概念、作用,我们也要明白粘滞位是如何设置的,
粘滞位的权限都是针对其他用户(other)设置的,使用chmod命令设置文件权限时,
chmod o+t 命令设置粘滞位,而chmod o-t 命令删除粘滞位权限。

chmod o-t 命令删除粘滞位权限,这时切换到普通用户下,也可以删除test.txt文件了。

             好了,粘滞位就介绍到这里了,还有什么没有讲到的问题,欢迎大家补充!!!




















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章