『无欲则无求』Linux权限管理 — 54、文件特殊权限

本文详细介绍了Linux系统中文件的特殊权限:SetUID、SetGID和Sticky BIT。SetUID允许执行文件时以文件所有者的权限运行,常用于如`passwd`命令确保安全修改密码。SetGID可让执行者在执行期间获得文件属组身份,有助于控制文件权限。Sticky BIT则限制用户仅能删除自己在特定目录中创建的文件。文章还提供了设置和检测这些权限的方法,并给出了相关安全建议。
摘要由CSDN通过智能技术生成

1、文件特殊权限说明

文件特殊权限:SetUIDSetGIDSticky BIT

这三个文件权限不是太安全,是Linux系统应对特殊情况所准备的权限,给Linux系统的一些特殊命令提供的。不推荐用户手动来设置,尤其是SetUID。这三个选项了解一下就好。

我们之前说过umask值的时候,如下:

[root@localhost ~]# umask
0022

可以看到umask值是一个4位数,后三位是我们之间讲过的基本权限(读写执行),第一位我们之前空过去了,如果忘记了,可以查看https://blog.csdn.net/Liuyuelinjiayou/article/details/107057581

现在来说一下,第一位就是定义SetUID,SetGID,Sticky BIT,这三个特殊权限的。

还有一点,我们之前说过,普通用户是可以修改自己的密码的,但是我们查看下面两个文件,/etc/passwd文件和/etc/shadow文件。
在这里插入图片描述
我们知道/etc/passwd文件存放着用户的信息,/etc/shadow文件中存放着用户的密码。但是我们可以看到/etc/shadow文件的权限是000,也就是说普通用户对这个文件是没有任何操作权限的,不能看也不能打开,也不能写。

但是我们知道密码的修改,最终是要写入/etc/shadow文件中的。那用户对/etc/shadow文件没有任何权限,那怎么是把密码最终写入到/etc/shadow文件中呢。

这个奥秘就是passwd命令中,我们查看一下passwd命令。
在这里插入图片描述
可以看到所有者权限中,有一个标识为小s的权限,我们之前说的基本权限,读写执行分别为rwx。这个小s权限标识,就是表示该文件有SetUID特殊权限。

  • 为什么要给passwd命令设置SetUID特殊权限?
    /usr/bin/passwd命令拥有特殊权限SetUID,也就是在属主的权限位的执行权限上是小s。可以这样来理解它:当一个具有执行权限的文件设置SetUID权限后,用户执行这个文件时将以文件所有者的身份执行
    /usr/bin/passwd命令具有SetUID权限,所有者为root(Linux中的命令默认所有者都是root)
    也就是说当普通用户使用passwd命令,更改自己密码的时候,实际是在用passwd命令所有者root的身份在执行passwd命令,root当然可以将密码写入/etc/shadow文件(不要忘记root这个用户什么事都可以干),所以普通用户也可以修改/etc/shadow文件,命令执行完成后该身份也随之消失。
    总结:passwd命令有SetUID权限,为的就是普通用户修改自己密码的时候,执行passwd命令能够修改/etc/shadow文件。
    在这里插入图片描述
    如果取消SetUID权限,则普通用户就不能修改自己的密码了。

    小s权限标识在所有者位的时候,特殊权限位SetUID
    小s权限标识在所属组位的时候,特殊权限位SetGID
    小t权限标识在其他人位的时候,特殊权限位Sticky BIT

2、设置SetUID

  1. 只有可以执行的二进制程序(自己写的脚本也可以,只要是执行文件就行)才能设定SUID权限。

    如果给非执行文件赋值SetUID,如下:

    #给abc文件赋值SetUID权限
    [root@localhost ~]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值