• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    linux基础教程之特殊权限SUID、SGID和SBIT
    POST TIME:2021-10-16 17:57

    前言

    对于linux中文件或目录的权限,应该都知道普通的rwx权限。Linux的权限不是很细致,只有RWX三种

    1、目录的只读访问不允许使用cd进入目录,必须要有执行的权限才能进入。

    2、只有执行权限只能进入目录,不能看到目录下的内容,要想看到目录下的文件名和目录名,需要可读权限。

    3、一个文件能不能被删除,主要看该文件所在的目录对用户是否具有写权限,如果目录对用户没有写权限,则该目录下的所有文件都不能被删除,文件所有者除外

    4、目录的w位不设置,即使你拥有目录中某文件的w权限也不能写该文件

    我们先看看下面两个的权限是什么

    非常奇怪,/tmp目录和 passwd文件的权限怎么怪怪的,怎么有s和t权限呢。看了下面的内容你就明白了。

    1 SUID

    当s出现在文件拥有者的x权限上时,如我们上面看到的/usr/bin/passwd这个文件的权限时-rwsr-xr-x,此时就被称为SET UID简称SUID.SUID对于一个文件有什么限制和功能呢?

    SUID权限仅对二进制可执行文件有效

    执行者对于该文件具有x的权限

    本权限仅在执行该文件的过程中有效

    执行者将具有该文件拥有者的权限

    例如普通用户用passwd修改自己的命令,实际上最终更改的是/etc/passwd文件. 此文件时用户管理配置文件,只有root权限才能更改。

    既然是root用户才拥有此权限,为什么我们可以通过passwd命令来修改密码呢,那这就要归功于passwd设置了suid权限位了。

    此时普通用户通过执行passwd命令,临时拥有root权限,间接的修改/etc/passwd,以达到修改自己密码的权限。

    2 SGID

    当s出现在目录或文件所属群的x权限上时,此时就称为SET GID简称SGID,那SGID对文件和目录分部有哪些功能呢?

    2.1 SGID对目录

    使用者若对于此目录具有 r 与 x 的权限时,该使用者能够进入此目录

    使用者在此目录下的群组将会变成该目录的群组

    若使用者在此目录下具有 w 的权限(可以新建文件),则使用者所创建的新文件,该新文件的群组与此目录的群组相同

    2.2 SGID对文件

    SGID 对二进制可执行文件有效

    程式执行者对于该文件来说,需具备 x 的权限

    执行者在执行的过程中将会获得该文件群组的支援(用于改文件群组的权限)

    3 SBIT

    当s出现在目录其他用户的x权限上时,此时就称为Sticky Bit简称SBIT,那SBIT有哪些限制和作用呢?

    仅对目录有效,对文件无效

    当使用者在该目录下建立文件或目录时(有权限的情况下),仅自己与 root 才有权力删除新建的目录或文件

    我们知道/tmp目录是这样的权限。

    现在我们来验证下,先用root账号在tmp文件中创建一个文件test,然后用openstack(其他账号)进入该目录,删除test文件,看看发生什么情况

    我们看到这样是不能删除文件的。因为/temp目录有SBIT权限。

    4 怎么操作SUID、SBID、SBIT

    操作这些标志与操作文件权限的命令是一样的, 都是chmod. 有两种方法来操作,

    (1)符号类型改变权限

    chmod u+s testbin-- 为testbin文件加上setuid标志.

    chmod g+s testdir-- 为testdir目录加上setgid标志

    chmod o+t testdir-- 为testdir目录加上sticky标志

    (2) 数字类型改变档案权限

    采用八进制方式. 对一般文件通过三组八进制数字来置标志, 如 666, 777, 644等. 如果设置这些特殊标志, 则在这组数字之外外加一组八进制数字. 如 4666, 2777等. 这一组八进制数字三位的意义如下,

    abc

    a - setuid位, 如果该位为1, 则表示设置setuid 4---

    b - setgid位, 如果该位为1, 则表示设置setgid 2---

    c - sticky位, 如果该位为1, 则表示设置sticky 1---

    设置完这些标志后, 可以用 ls -l 来查看. 如果有这些标志, 则会在原来的执行标志位置上显示. 如

    rwsrw-r-- 表示有setuid标志

    rwxrwsrw- 表示有setgid标志

    rwxrw-rwt 表示有sticky标志

    那么原来的执行标志x到哪里去了呢? 系统是这样规定的, 如果本来在该位上有x, 则这些特殊标志显示为小写字母 (s, s, t). 否则, 显示为大写字母 (S, S, T)

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

    上一篇:linux中SUID,SGID与SBIT的奇妙用途详解
    下一篇:nexus服务器搭建的详细步骤
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信