文件特殊权限包括:
* 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,这样会使服务器陷入危险当中
本文介绍了Linux中的文件特殊权限,特别是SetUID。SetUID允许普通用户以文件所有者的权限执行程序,如`passwd`命令更改密码。滥用这类权限可能带来严重的安全风险。通过`chmod`命令可以为文件添加或移除SUID权限,如`chmod 4755 abc`赋予文件SUID。了解并谨慎使用这些权限对于系统安全至关重要。
1373

被折叠的 条评论
为什么被折叠?



