首页
学习
活动
专区
工具
TVP
发布

文件特殊权限-Sticky BIT

Sticky的中文翻译表示黏着的意思,BIT表示位的意思,所以呢!Sticky BIT也被成为黏着位权限。

SBIT黏着位的作用:

※ 黏着位目前只对目录有效

※ 普通用户对该目录拥有w和x权限,即普通用户可以在此目录拥有写入权限

※ 如果没有黏着位,普通用户拥有w权限,所以可以删除此目录下所有文件,也包括其他用户建立的文件。一旦赋予了SBIT权限,除了root可以删除所有文件,普通用户就算拥有w权限,也只能删除自己建立的文件,但是不能删除其他用户建立的文件。

前面说过,SUID只能针对可执行的文件或者程序赋予权限,用4表示分配的权限;SGID除了可执行文件或者程序外,还可以针对目录赋予权限,用2表示分配的权限。SBIT只能针对目录赋予权限,用1表示分配的权限。所以!虽然可以使用chmod 7755这样的权限分配,但是没有意义,因为针对的操作对象不同。一般来说,一个文件或者说可执行文件是不会赋予7这样的权限,根据实际的需要合理的分配这三类权限当中的其中一个。

图一

SBIT最常见的举例是/tmp这个临时目录,可以看到这里的权限是1777。如果权限是777,表示任何的普通用户都可以在这个目录下创建、删除、复制、剪切等操作。这就带来一个问题,如果A普通用户在/tmp目录下创建了afile文件,当B普通用户登录的时候,就可以删除afile这个文件。等到A用户登录的时候,发现自己创建的文件消失了,可能会带来管理上的混乱。当拥有目录的权限是1777,A普通用户能删除afile这个自己创建的文件,不能删除其他用户的文件,但是能查看、修改、复制。

SUID、SGID、SBIT这些特殊权限对root超级用户无效,只针对普通用户。

------------------------------------------------

以下是具体的例子:

su - stu //切换普通用户stu

touch /tmp/stu-file //建立文件stu-file

su - stu1 //切换普通用户stu1

cd /tmp

rm -rf stu-file //删除stu-file文件

最终结果是无法删除其他用户创建的文件。

我们知道能不能删除目录下的文件,主要看是否对这个目录拥有w权限。通过图一可以知道,普通用户都是有w权限的,按理说应该是可以删除这个目录下的所有文件的。但是由于SBIT权限的存在,普通用户stu只能删除自己创建的文件stu-file,其他普通用户比如stu1是没有权限删除的。

------------------------------------------------

赋予SBIT:

chmod 1777 目录名

chmod o+t 目录名

取消SBIT:

chmod 777 目录名

chmod o-t 目录名

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190818A05BTS00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券