粘滞位——文件/目录的删除和移动

粘滞位

粘滞位(Stickybit),又称粘着位,是Unix文件系统权限的一个旗标。
最常见的用法是在目录上设置粘滞位,使得只有目录内文件的所有者或者root用户才可以删除或移动该文件。

那么问题来了,对一个文件或目录的删除和移动,需要什么权限?读?写?可执行?
下面小编对此进行研究。

  1. 首先,用root创建一个权限为777的目录root_dir
    这里写图片描述
  2. 用普通用户进入该目录,并在其中创建目录dir和文件test.c,将权限均设置为000,即除root外,任何用户都不对dir和test.c具有读写可执行权限
    这里写图片描述
  3. 为避免因当前用户是文件拥有者而影响验证,我们切换到另一个普通用户hao进行删除
    这里写图片描述
  4. 删除居然成功了!当前用户不是该文件的拥有者,也不是所属组,且对该文件不具有任何权限!就删除成功了!是不是很可怕0.0

此时粘滞位的作用就体现出来了!
为了使某些重要的文件被保护起来,使得只有该文件的所有者和root才能删除它,需要在文件所属目录上设置粘滞位。
要注意的是:粘滞位只能设置在目录上!只对目录权限位的最后一位有效!即只能“chmod o±t 目录”!

下面小编再来一波操作,观众老爷们看好咯~

  1. 用root创建目录root_dir,并设置粘滞位
    这里写图片描述
  2. 开启该目录对other的w权限,使得普通用户能够在该目录中创建文件;
  3. 普通用户jing进入目录,创建权限为777的目录dir和文件test.c
    这里写图片描述
  4. 切换到另一普通用户hao,尝试删除(为了清晰的看到错误信息,增加-f选项,不进行删除确认)
    这里写图片描述
  5. 如上,即使权限为777也删除失败,再更换回文件所有者jing,尝试删除目录dir
    这里写图片描述
  6. 删除成功!下面再测试关于移动文件的权限,切换至对当前用户来说是other的用户hao,创建一个目录testDir,并将test.c移动进去
    这里写图片描述
  7. 移动失败!切换回test.c文件的拥有者jing尝试移动(移动路径仍未用户hao创建的目录testDir)
    这里写图片描述
  8. 仍然移动失败!猜测原因是当前用户对testDir目录不具有写权限,给予权限,再次尝试!
    这里写图片描述
  9. 移动成功!

此即粘滞位。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值