系统相关
首页 > 系统相关> > Linux文件特殊权限

Linux文件特殊权限

作者:互联网

文件的权限除了rwx即读、写、执行的权限还有其他特殊的权限

SUID

Set UID,当s的标志出现在文件拥有者的x位置上时,就拥有SUID的权限,具体来说功能如下

我们可以由如下的例子,对于linux系统/usr/bin/passwd这个文件记录所有账号的密码,只有root可以读写入这个文件

image-20211024202829753

但对于我的普通用户astraym也可以通过passwd指令来修改自己的密码

image-20211024203228846

但是如果用cat指令去读取密码就不能读取

image-20211024220620847

这是因为cat指令没有被设置SUID的权限

image-20211024220820122

用一张示意图来说明SUID执行的过程

图 SUID程序执行过程

如果我们想要让astraym能够读取/etc/passwd文件的内容,只需要让root用户用chmod指令给与其SUID的权限即可

SGID

即Set GID,当s的标志出现在用户组的x位置上时,就拥有SUID的权限。与SUID不同的是,SGID可以针对目录或者文件来设置,对文件来说SGID有如下的功能,这个时候SGID的用法和SUDI非常相似。

除了二进制程序之外,SGID也能作用于目录,当一个目录被设置了SGID的权限之后

SBIT

即Sticky Bit目前只针对目录有效,对于文件没有效果,SBIT的作用是:

简单来说,当SBIT位标记的时候,除了所有者和root能够删除该目录的文件

举个例子,linux的/tmp本身的权限是[drwxrwxrwt],权限信息的最后一位t表面该目录被设置了SBIT权限。我们在这里新建一个名为test的文件并将权限设置为777,然后尝试删除该文件。

image-20211025002344707

可以看到我们没法删除/tmp下的test文件

设置SUID/SGID/SBIT权限

以数字类型设置权限

SUID/SGID/SBID权限对应的数字分别为

SUID->4
SGID->2
SBIT->1

#设置一个权限为'-rwxr-xr-x'的文件test的SUID权限,在原先的755前加上4即可,其他同理
chmod 4755 test;

一般情况下,s或者t会代替x这个权限。但是当这个文件或者目录本身没有x权限,添加SUID、SGID、SBIT之后会显示为大写的S或T:

image-20211025003056548

这种情况是需要非常注意的,当文件的拥有者都无法执行该文件时,拥有SUID的用户当然也没法执行。

以符号类型设置权限

chmod u+s test #为test文件加上SUID权限
chmod g+s test #为test目录加上SGID权限
chmod o+t test #为test目录加上SBIT权限
chmod g+s,o+t test #为test目录加上SGID和SBIT权限

标签:文件,SUID,Linux,test,SGID,权限,目录
来源: https://www.cnblogs.com/AstrayM/p/15456536.html