Linux中的粘滞位
来源:互联网 发布:淘宝开店店铺简介 编辑:程序博客网 时间:2024/06/04 19:27
本文内容:
一、前言
二、粘滞位的概念
三、粘滞位的作用
四、粘滞位的简单分析
五、粘滞位的设置
前言
最近在学习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文件了。
好了,粘滞位就介绍到这里了,还有什么没有讲到的问题,欢迎大家补充!!!
0 0
- Linux中的粘滞位
- Linux中的粘滞位
- Linux中的粘滞位
- Linux中的粘滞位
- Linux系统中的粘滞位
- linux中的粘滞位
- Linux中的粘滞位
- Linux中的粘滞位
- Linux中的粘滞位的作用
- 【整理归纳】Linux中的粘滞位
- linux中的粘滞位(Sticky bit)
- Linux中的find指令以及粘滞位 小结
- Linux--9:Linux中的TTY
- 【Linux】Linux开发中的常用命令
- Linux-(17)Linux中的shell
- 【linux】linux命令行中的符号
- Linux 中的 IPSec 协议
- Linux 使用中的技巧
- android不用context弹dialog
- 「2016山东省队集训」 LYK loves jumping
- jQuery隔行变色鼠标划过高亮度显示
- 机器人自主移动的秘密:实际应用中,SLAM究竟是如何实现的?(二)SLAM与路径规划有什么关系?(三)
- 布局
- Linux中的粘滞位
- Java设计模式三
- Telnet与SSH两大协议的区别
- 「2016山东省队集训」 Play with array
- 程序设计实训报告 项目2.2
- 算法导论 第八章 线性时间排序
- 使用eclipse远程hive时出现的错误大汇总
- 孙宇教授解读:美国国家机器人计划2.0——无处不在的协作机器人
- shell 脚本各种执行方式(source ./*.sh, . ./*.sh, ./*.sh)的区别