s是什么权限,在Linux中有何重要性
Admin 2022-08-17 群英技术资讯 436 次浏览
在linux中,s指的是“强制位权限”,位于user或group权限组的第三位置。如果在user权限组中设置了s位,则当文件被执行时,该文件是以文件所有者UID而不是用户UID执行程序;如果在group权限组中设置了s位,当文件被执行时,该文件是以文件所有者GID而不是用户GID执行程序。s权限位是一个敏感的权限位,容易造成系统的安全问题。
本教程操作环境:linux7.3系统、Dell G3电脑。
在Linux系统中最常见的文件权限是w、r、x,分别对应着写、读、执行权限,但是除此之外Linux还支持另外一系列的权限设置,例如s权限、t权限。下面就介绍一下s权限的具体含义。
s权限
s,表示set UID或set GID。位于user或group权限组的第三位置。如果在user权限组中设置了s位,则当文件被执行时,该文件是以文件所有者UID而不是用户UID 执行程序。如果在group权限组中设置了s位,当文件被执行时,该文件是以文件所有者GID而不是用户GID执行程序。s权限位是一个敏感的权限位,容易造成系统的安全问题。请在设置时小心,并注意系统中已有的SUID或SGID文件和目录。
s权限包含S_ISUID、S_ISGID两个常量在内,叫做强制位权限
;
S_ISUID只能应用于二进制可执行文件*;
S_ISGID可应用于二进制可执行文件*和目录;
*shell脚本不可以,因为shell脚本并不是二进制文件.
S_ISUID、S_ISGID用在二进制文件时:
如果S_ISUID为真,则把此进程的有效用户ID设置为此文件拥有者的用户ID.
如果S_ISGID为真,则把此进程的有效用户组ID设置为此文件的组ID.
由于进程有用户/组ID影响文件访问权限,于是就相当于临时拥有文件所有者的身份. 典型的文件是passwd. 如果一般用户执行该文件, 则在执行过程中, 该文件可以获得root权限, 从而可以更改用户的密码.
S_ISGID用在目录时:
当前用户执行chdir切换至该目录后,用户进程的有效用户组ID(effective group)将会设置为该目录的用户组.若用户在此目录下具备w权限,则用户进程所创建的新文件的用户组ID与该目录用户组ID相同.
ls -al /usr/bin/passwd -rwsr-xr-x 1 pythontab pythontab 32988 2018-03-16 14:25 /usr/bin/passwd
两个常量的值是:
oct | dec | |
S_ISUID | 4000 | 2048 |
S_ISGID | 2000 | 1024 |
即分别是第12位和第11位的掩码。
如何使用?
我们可以通过字符模式设置s权限:chmod a+s filename
,也可以使用绝对模式进行设置:
设置suid:将相应的权限位之前的那一位设置为4;
设置guid:将相应的权限位之前的那一位设置为2;
两者都置位:将相应的权限位之前的那一位设置为4+2=6.
设置一个文件运行时具备文件拥有者UID的身份:
chmod 4755 test
设置一个文件运行时具备文件拥有者GID的身份:
chmod 2755 test
设置一个文件运行时以上两者兼备的身份:
chmod 6755 test
注意:在设置s权限时文件属主、属组必须先设置相应的x权限,否则s权限并不能正真生效(c h m o d命令不进行必要的完整性检查,即使不设置x权限就设置s权限,chmod也不会报错,当我们ls -l时看到rwS,大写S说明s权限未生效)
总结
可执行的文件搭配这个权限,便能得到特权,任意存取该文件的所有者能使用的全部系统资源。请注意具备SUID权限的文件,黑客经常利用这种权限,以SUID配上root帐号拥有者,无声无息地在系统中开扇后门,供日后进出使用。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
自centOS7后,新增了一个管理服务的命令——systemctl,通过这个命令可以非常方便的管理系统上的服务。
感兴趣的小伙伴可以看看以下相关内容,希望小编所整理的资料能帮助到你解决问题。
这篇文章主要介绍了浅谈为什么磁盘慢会导致Linux负载飙升,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
linux查看防火墙状态的方法:1、iptables防火墙,查看防火墙状态,代码为【service iptables status】;2、firewall防火墙,代码为【firewall-cmd --state】。
IP的表示方式我们知道ipv4地址是由32位构成的,我们通常将32位划分为四等分,每一份之间用.隔开,并且每一份用我们熟悉的十进制表示,如下就是一个ip地址8.210.247.5IP...
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008