在这里,我们先由一个问题引出这个概念,每个普通用户为什么可以更改密码?当我们ls -l /etc/passwd  /etc/shadow查看这两个文件的权限时候,我们可以发现只有root才对这两个文件有写权限,根据前面的配置文件我们知道,密码是保存在shadow文件中的,那么我们是怎样实现这个目的的?其实这就是今天我的笔记,我们查看ls -l /usr/bin/passwd 权限为中有一个s位。

这里引出一个概念SETuid,即常说的S位

SetUID=4

其意思为:当一个可执行程序具有SetUID权限,用户执行这个程序时,将以这个程序所有者的身份执行

授予setuid权限  必须是可执行文件,如果不是可执行的则为大写S

范例:
1.将touch命令授予setUID
   touch 默认是755
   切换到普通用户   创建一个文件  查看其所有者为普通用户
   当我们授予SETuid 权限  我们再做同样的操作  查看其所有者为root 
   因为是通过root用户创建的  所以其所有者为root

授予方法:chmod u+s 或者4755
去掉权限:chmod u-s 或者755
2.当vi命令被授予setUID

当vi授予setuid权限,相当于给黑客留了一个后门,可以用这个命令编辑任何文件

3.查找setuid程序:
find / -perm -4000 -o -perm -2000
查找 0777 权限的文件也类似写

说到这里组也有setGID

SetGID=2

授予权限 chmod g+s 或者2755   同时授予UID和GID 可以用6755

还有一个特殊的权限:粘着位=1   用t代表

系统里缺省只有一个文件夹具有粘着位 tmp文件夹
查看其权限 有一个t  
如果一个权限为777目录具有粘着位,每个用户都可以在这个目录下创建文件,但是只能删除自己是所有者的文件

授予方法:
chmod o+t 或者 chmod 1777
取消方法  o-t 或者0777

 

linux用户管理(二):关于S/s位

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.