网络安全系列之四十一 在Linux中设置粘滞位sbit权限
发布日期:2021-08-28 13:15:41 浏览次数:17 分类:技术文章

本文共 1507 字,大约阅读时间需要 5 分钟。

通常情况下用户只要对某个目录具备w写入权限,便可以删除该目录中的任何文件,而不论这个文件的权限是什么。

比如我们进行下面的操作:

#创建/test目录,并赋予777权限。

[root@localhost ~]# mkdir /test

[root@localhost ~]# chmod 777 /test

#以root用户的身份在/test目录中创建文件file1,并查看其默认权限。

[root@localhost ~]# touch /test/file1

[root@localhost ~]# ll /test/file1

-rw-r--r--. 1 root root 0 12月 2 20:32 /test/file1

#以普通用户natasha的身份登录系统,可以删除/test/file1。

[natasha@localhost ~]$ rm /test/file1

rm:是否删除有写保护的普通空文件 "/test/file1"?y

通过上面的操作可以发现,虽然普通用户natasha对文件/test/file1只具备“r--”权限,但因为从/test目录获得了“rwx”权限,因而仍然可以将/test/file1删除。

在Linux系统中比较典型的例子就是“/tmp”、“/var/tmp”目录。这两个目录作为Linux系统的临时文件夹,权限为“rwxrwxrwx”,即允许任意用户、任意程序在该目录中进行创建、删除、移动文件或子目录等操作。然而试想一下,若任意一个普通用户都能够删除系统服务运行中使用的临时文件,将造成什么结果?

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

需要注意的是,粘滞位权限只能针对目录设置,对于文件无效。

设置了粘滞位权限的目录,使用ls命令查看其属性时,其他用户权限处的“x”将变为“t”。

例如,查看/tmp、/var/tmp目录本身的权限,确认存在“t”标记。

[root@localhost ~]# ll -d /tmp

drwxrwxrwt. 16 root root 4096 12月 2 17:16 /tmp

[root@localhost ~]# ll -d /var/tmp

drwxrwxrwt. 3 root root 4096 12月 2 09:46 /var/tmp

粘滞位权限都是针对其他用户(other)设置,使用chmod命令设置目录权限时,“o+t”、“o-t”权限模式可分别用于添加、移除粘滞位权限。

例如,为/test目录设置粘滞位权限。

[root@localhost ~]# chmod o+t /test

[root@localhost ~]# ll -d /test

drwxrwxrwt. 2 root root 4096 12月 2 20:39 /test

此时普通用户natasha便无法删除/test/file1文件了。

[natasha@localhost ~]$ rm /test/file1

rm:是否删除有写保护的普通空文件 "/test/file1"?y

rm: 无法删除"/test/file1": 不允许的操作

粘滞位权限在生产环境中也被广泛应用,当需要为用户提供一个开放目录而又不希望造成管理混乱时,通过为目录设置粘滞位权限便可以解决问题。

转载地址:https://blog.csdn.net/weixin_33961829/article/details/85077137 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Linux ps命令
下一篇:八皇后问题 C#版本算法 回溯法

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月03日 12时02分37秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章