• 技术文章 >运维 >linux运维

    linux s是什么权限

    青灯夜游青灯夜游2022-07-19 18:24:15原创105

    在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用在二进制文件时:

    由于进程有用户/组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

    两个常量的值是:

    octdec
    S_ISUID40002048
    S_ISGID20001024

    即分别是第12位和第11位的掩码。

    如何使用?

    我们可以通过字符模式设置s权限:chmod a+s filename,也可以使用绝对模式进行设置:

    设置一个文件运行时具备文件拥有者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帐号拥有者,无声无息地在系统中开扇后门,供日后进出使用。

    相关推荐:《Linux视频教程

    以上就是linux s是什么权限的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:linux
    上一篇:linux中cat怎么看最后几行 下一篇:linux怎么删除文件某几行
    20期PHP线上班

    相关文章推荐

    精选22门好课,价值3725元,开通VIP免费学习!• linux中runlevel的s代表什么• linux怎么查看80端口被哪个进程占用• linux中cp -l是什么意思• linux中usleep和sleep有什么区别• linux无法打开终端怎么办• linux中pip命令找不到怎么办
    1/1

    PHP中文网