文件的特殊权限知多少?

        上一节内容我们对文件的读、写、执行权限有了一定的了解,并且掌握了如何通过命令赋予用户、组相应的权限,那么这一节标题大家看到可能会产生疑惑,文件的特殊权限又是什么呢?是否也可以通过命令赋予文件的特殊权限呢?

        因为在如今日益复杂的生产环境中,单纯的rwx权限已经无法满足我们的工作需求了,还需要一些特殊权限去使得我们的工作变得更加便捷且灵活,因此便有了特殊权限。

知识前导:文件的特殊权限

        1.SUID:SUID是一种对二进制程序进行设置的特殊权限,能够让二进制程序的执行者临时拥有所有者的权限。

        2.SGID:SGID可以让程序执行者获得文件所属组的权限。

        3.SBIT:当对目录设置了SBIT粘滞位后,该文件只能被文件的所有者执行删除操作了。

        相信各位读者看到关于特殊权限的解释之后,还是一脸懵,这些都是什么,我刚开始学习的时候也是跟大家一样的“囧”样,后来通过不断的实验慢慢理解了文件的特殊权限。

1)SUID

        例如所有的用户都可以执行passwd命令,将密码保存在/etc/shadow文件中。但是我们查看/etc/passwd文件的权限时,可以发现权限集为---。那么用户为什么可以自己修改密码并将密码存入影子文件呢?下面我们可以结合以下图片进行分析,因为/bin/passwd文件被赋予了SUID的权限,使得用户临时拥有该文件的所有权限,因此就可以将修改的密码写入shadow中。

        

2)SGID:

        例如现在需要在一个部门内共享一个文件目录,让部门内所有人员都可以看到这个读取此目录的内容,同时此部门内所有人员在此目录创建的文件都属于该目录的所属组,而不属于自己的私有组,那么这个时候用到的就是SGID的功能。

        如下图所示,我们给设置了777权限,确保普通用户可以向其中写入文件,并为该目录设置了SGID特殊权限位。

        

        如下图所示,切换到普通用户zhsan,并在新建的文件写入“i love linux”,然后查看改文件的所属组,可以看到是属于root组而不是自己的私有组(zhsan)。

        

3)SBIT

        可以看到,/tmp的SBIT特殊权限已经默认存在,其他用户字段的权限为“rwt”。然后在创建了test文件的基础上,切换成普通用户,并删除,可以看到是无法删除的,这是因为粘滞位的保护作用。

        

下面让我们通过一道例题来加深理解:

 要求:创建以下共享目录

  • /home./tools的组的所有权是admins
  • 此目录能被admins组的成员读取,写入和访问,除root外其他用户没有这些权限
  • 在此目录下创建的文件,其组的所有权自动设置为admins组

 第一步:首先我们创建目录/home/tools,并且创建用户组admins

        ​​​​​​​

第二步:设置/home/tools的权限 

         ​​​​​​​​​​​​​​​​​​​​​

第三步:使在此目录下创建的文件夹其所属组都是admins

        我们可以看到还没有设置前,在这个目录下创建的文件是属于私有组的。

        

        然后我们在此目录下设置SGID特殊权限

        

在这里给大家说句抱歉,因为我第一步忘记将目录/home/tools的所属组改为admins了,然后再第三步补上了,大家一定要注意看哈,本期的内容到这里就结束啦!!谢谢

 

 

 

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值