Linux - sticky bit

在Linux下使用命令 ll 就可以查看一个文件/目录的详细信息,包括它的权限,我们都知道权限是rwx表示,r-可读,w-可写,x-可执行。但今天在我的文件中发现了一个t表示的权限:

d 表明这个文件类型是普通文件,rwx已经解释过,那这个other位置上的 t 到底是什么呢?!原来在这个位置上的 x 或者 - 去哪里了?!在网上搜索了一番后,得到这个t其实是所谓的粘滞位(sticky bit)


·Sticky bit:(粘着位)可以理解为防删除位,是Linux下文件或目录权限的一个旗标,当我们没有给一个目录设置sticky bit时,任何对该目录具有写权限的用户都可以随意删除或移动这里边的文件,当然,也可以添加文件,这样就使这里边的文件变得不安全。如果我们不希望该目录下的文件被其他用户改动,就可以对这个目录设置sticky bit,这样设置以后只有root或者owner用户才可以删除/移动这个目录下的文件,从而也增加了这些文件的安全性。注意:一定是目录,如果对文件设置粘滞位是不起作用的,会被Linux的内核忽略掉。实际应用中,粘滞位一般用于/tmp目录,以防普通用户删除或移动其他用户的文件。(上面那个图就是在我的/tmp目录下查看的)


·知道了什么是粘滞位,我们再回到上述第二个问题中,x 或 - 去哪了。。。。
系统是有这样一个规定的:如果这个位置上之前是 x ,那么这些特殊标志显示为小写字母(s,s,t);否则就显示为大写字母(S,S,T)。这样一来,我们也能明白该位置上原来应该是什么权限了。


·通常情况下,我们可以通过命令“ chmod  o+t   文件目录 ” 来设置粘滞位。但应该注意的是,上面已经讲过对文件设置粘滞位是不起作用的,所以这里必须是对你这个文件的上级目录设置粘滞位才能保证这个文件的安全性。例如有1.txt文件存在于/File目录下,我不想使这个文件被其他用户删除或移动,我可以对这个目录(即File)设置粘滞位



同样的,我们也可以用八进制模式设置权限:


对上述内容总结一下:通过chmod命令可以对一个目录设置sticky bit,当然,是对于other位置的执行位设置的(x 变 t),设置后用户可以在该目录下创建文件,当然也可以删除自己创建的文件(前提是用户具有可写可执行权限,如果具有可执行权限,设置sticky bit后 x 变 t;否则,x 变 T),但不能删除其他用户的文件。




·在以前旧的系统中,如果一个程序文件一旦设置了粘滞位,那么 该程序在运行终止的时候它的所有指令将被保存到系统的交换分区当中,再次运行是可以更快的调入系统。不过现在的操作系统痛已经不再使用这种功能了,但这并不代表这一功能已经完全被废弃,当一个目录设置为粘滞位的时候,它将发挥特殊的作用,即当一个目录被设置为粘滞位的时,则该目录下的文件只能被:root用户、owner用户以及该文件的所有者删除,也就是说,即便该目录时任何人都可以写,但也只有文件的属主才能删除文件。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值