【整理归纳】Linux中的粘滞位

来源:互联网 发布:广电网络运维工作总结 编辑:程序博客网 时间:2024/06/13 09:49

什么是粘滞位(sticky)?

简单来说,就是给你的目录打了个标签。系统看到目录后面带有这个标签,就不会让其他用户随意删除这个目录了。目录的sticky位表示这个目录里的文件只能被owner和root删除 。

[panda@panda Desktop]$ ll -d /tmpdrwxrwxrwt. 32 root root 4096 Apr  1 10:00 /tmp[panda@panda Desktop]$ ll -d /var/tmpdrwxrwxrwt. 3 root root 4096 Mar 23 17:54 /var/tmp

如上所示的drwxrwxrwt中的‘t’就是所谓的粘滞位;

 注: 粘滞位权限只能针对⽬录设置,对于⽂件⽆效。 即使设置了粘滞位,只要该用户具有写权限,就可以在该目录下创建文件;

为什么需要粘滞位?

Linux下有一个用于存放临时文件的目录 /temp,每一个用户产生的临时文件都存放在 /temp目录下面,而且每个用户都对于这些文件具有写权限,为了防止用户对于除自己外的其他用户的文件进行删除操作,所以产生了粘滞位。

试想⼀下,若任意⼀个普通⽤户都能够删除系统服务运⾏中使⽤的临时⽂件,将造成什么结果?

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

怎么使用粘滞位

粘滞位权限都是针对其他⽤户设置的 ,我们使⽤chmod命令设置⽬录权限。chmod o+t 文件夹名、 chmod o-t 文件夹名,可分别⽤于添加、移除粘滞位权限。
  例如,为test1⽬录设置粘滞位权限。

[panda@panda gjw]$ ll -d test1drwxrwxr-x. 2 panda panda 4096 Apr  1 10:11 test1[panda@panda gjw]$ sudo chmod o+t test1[sudo] password for panda: [panda@panda gjw]$ ll -d test1drwxrwxr-t. 2 panda panda 4096 Apr  1 10:11 test1