Linux学习笔记_7_Linux用户管理_2_SetUID、SetGID、粘着位相关分析


一、SetUID

问题:为什么普通用户可以修改密码?

【操作: which passwd; ls -l /usr/bin/passwd】

1、SetUID的定义:当一个可执行程序(一般为一个命令)具有SetUID 权限,用户执行这个程序时,将以这个程序的所有者的身份执行。

2、加SetUID权限:

chmod u+s … 或: chmod 4755 … //SetUID=4

示例:

chmod u+s `which touch` && touch test && ls -l test

3、危险!

将命令设置成SetUID是一件很危险的事儿!

比如将vi设置成SetUID,则他可以编辑并保存系统中所有的文件,甚至是系统配置文件!他可以让一个用户瞬间编程超级用户,他可以使你的系统不断的重启,他可以使一个用户不需要密码就可以登录...

或者将kill设置成SetUID...

预防:

find / -perm -4000 -o -perm -2000

查找权限为4000或2000的文件,即具有SetUID,SetGID的文件

4、取消SetUID权限:

chmod u-s... 或 chmod 755...

二、SetGID

1、SetGID的定义:当一个可执行程序(一般为一个命令)具有SetGID 权限,用户执行这个程序时,将以这个程序所属组的身份执行。

2、加SetGID权限:

chmod g+s... 或 chmod 2755... //SetGID=2

【同时设置UID与GID chmod 655...】

三、粘着位

1、定义:如果一个权限为777的目录,被设置了粘着位,每个用户都可以在这个目录里面创建文件,但是只可以删除所有者是自己的文件。

2、设置粘着位:

chmod o+t... 或 chmod 1777...

3、粘着位用t来表示,权限值=1

相关内容