Linux学习之——文件特殊权限(一)

本文介绍了Linux中的文件特殊权限,特别是SetUID。SetUID允许普通用户以文件所有者的权限执行程序,如`passwd`命令更改密码。滥用这类权限可能带来严重的安全风险。通过`chmod`命令可以为文件添加或移除SUID权限,如`chmod 4755 abc`赋予文件SUID。了解并谨慎使用这些权限对于系统安全至关重要。

文件特殊权限包括:

* SetUID
* SetGID
* Sticky BIT

事实上,这三种,尤其是前两种权限都是特别不安全的权限。它们存在的意义就是系统需要借助它们来完成一些特殊的功能。如果用户乱用这些权限,把它们附加在一些不该附加的文件或命令上, 有可能造成很严重的安全后果。所以,特殊权限少修改!

SetUID

这里写图片描述
例如,我们对abc文件赋予755权限,执行
chmod 755 abc,这时abc这个文件就有了执行权限。也就是abc可以设置SUID权限了。这时,执行命令
chmod 4755 abc,就能够为abc赋予SUID权限了。如下图
这里写图片描述
赋予了SUID之后的abc文件,就变成了下面的样子
这里写图片描述

如果我们为一个没有执行权限的文件bcd(644)来赋予SUID,执行命令
chmod 4644 bcd
得出的结果就如下所示
这里写图片描述
可以看到,之前小写的s变成了大写的S,注意大S权限是不能正常使用的,s权限就相当于S权限加执行权限。

那么,SUID权限究竟是什么呢?举个简单的例子,/etc/shadow目录下存放着系统中 的密码,这个文件的权限是000,如下图

这里写图片描述
但是,我们知道一个用户若是执行passwd命令是可以更改自己的密码的,那么更改密码时的权限是怎么来的呢?就是来自于SUID权限,我们可以看passwd这个命令的权限,如下图
这里写图片描述
当一个普通用户在执行这个命令的时候,他的身份就会变成root,从而可以更改自己的密码。

那么,如何理解上面说的这三个权限呢?很简单,只需要认为,如果给所有者(U)加上s权限,就是SUID,如果给所属组(G)加上s权限,就是SGID,如果给其他人(O)加上s权限,就是SBIT.

因此,为文件赋予s权限,也可以写成
chmod u+s 文件名
这里写图片描述
这里写图片描述
最危险的一条命令:
chmod 4755 /bin/vi
一旦将vi赋予了SUID权限,它就有权去更改所有文件,包括shadow,这样会使服务器陷入危险当中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值