有的朋友一听Linux系统文件还有特殊权限,那头就要爆炸了,那还是接着看看/tmp目录和/usr/bin/passwd文件,怎么回事啊!!!看见没有啊!
不是应该只有rwx 吗?还有其他的特殊权限( s 跟t )啊?啊.....头又开始昏了~
不急,等等阅读完这篇文章后你就应该知道了怎么回事了!!!
Set UID
当 s 这个标志出现在文件拥有者的x 权限上时,例如刚刚提到的/usr/bin/passwd 这个文件的权限
状态:『-rwsr-xr-x』,此时就被称为Set UID,简称为SUID 的特殊权限。
Suid的功能总结一下!!
执行者对于程序需要x执行权限。
本权限只在执行程序运行时候有效。
Suid权限对二进制程序有效。
执行者见具有该程序(owner)的权限。
平常我们的密码都只存在/etc/shadow这个文件中,我们看看这个shadow的文件权限!!
看了这个shadow的权限发现基本无人拥有这个文件的权限,因此就只能root来强行写入了,等等,既然只能root账户才能修改,意味着使用passwd来修改登入的密码,那普通用户使用passwd修改的密码,那怎么存在/etc/shadow里呢?
回忆一下suid的功能。
对于普通用户来说对于/etc/bin/passwd的可执行文件具有x的权限。
Passwd的拥有者是root。
所以suid的作用就是普通用户在执行passwd的时候,就回短暂的获取root的
权限,因此/etc/shadow就可以被普通用户来执行的passwd来修改!!
如下图:
Set GID
SGID 对二进制程序有用;
程序执行者对于该程序来说,需具备x 的权限;
执行者在执行的过程中将会获得该程序群组的支持!
S在组权限上,因此类似suid一样,当使用locate的命令的时候,因此,我使用普通账户执行locate时候,普通账户就会短暂的获取slocate群组的支持,因此就能去读取mlocate.db了。
借鉴一下suid就可以了。
Sticky Bit
这个sbit只针对目录了!!
当用户对目录具有w和x权限的时候,就有写入的权限时。
当用户在改目录下建立文件或者目录仅自己和root才有权力删除!!
当甲这个用户于A 目录是具有群组或其他人的身份,并且拥有该目录w 的权限, 这表示『甲用户对该目录内任何人建立的目录或文件均可进行"删除/更名/搬移" 等动作。』但是,如果将A 目录加上了SBIT 的权限项目时, 则甲只能够针对自己建立的文件或目录进行删除/更名/移动等动作,而无法删除他人的文件。
用自己的语言就是说,当普通用户拥有这个目录的可写权限的时候,不能删除别人的文件,只能自己删除自己的文件或者root删除你的文件!!
实例:
对于tmp来说已经开到最大权限了!!!因此即使lzc普通的账户对/tmp都有生杀大权!!!!
我用了lzc的账户居然不能删除lzc66账户的目录。
所以说sbit这个权限在开发的时候是最好用的!!!
最后喜欢我文章的朋友请加圈子关注我们,私信关键词:加群。
识,提升大家的网络安全技能一直是我们的初衷和愿景,让我们共同成为守护信息世界的"SaFeMAN"。
还有可以关注我们微信公众号,在公众号上输入安界网,就可以关注到我们。