Linux文件特殊权限之set位权限和粘滞位权限
set位权限(suid,sgid)
set位权限有两部分组成:suid和sgid,分别对应可执行行文件属主和属组的身份
suid位权限的表现形式:s或S 也可用数字4表示
x: s -: S 若该文件之前,用户已有可执行权限,那么设置了suid位权限后,将在该文件属主的可执行权限位上,显示为s;
否则显示为S
sgid位权限的表现形式:s或S 也可用数字2表示
x: s -: S 若该文件之前,属组已有可执行权限,那么设置了sgid位权限后,将在该文件属组的可执行权限位上,显示为s;
否则显示为S
作用:设置完set权限后,任何用户在执行此可执行文件的过程中,将获得该文件属主、属组的身份。
suid权限位的设定:chmod u+s File … 或chmod 4nnn filename…
sgid权限位的设定:chmod g+s File … 或chmod 2nnn filename…
其中nnn:分别表示属主属组其他用户对该文件的权限
权限及对应的数值表示方法: r:4;w:2;x:1
1、权限u+s
实例演示:
(1)创建测试文件
[root@Liu ~]# cp /bin/cat /tmp/
[root@Liu ~]# cp /etc/fstab /tmp/
[root@Liu ~]# chmod og= /tmp/fstab
[root@Liu ~]# ll /tmp/fstab
-rw------- 1 root root 921 Mar 12 00:18 /tmp/fstab
(2)添加用户hadoop
(3)并切换至用户hadoop
(4)执行/tmp/cat命令,看是否能查看/tmp/fstab文件中的内容
很明显,权限拒绝,即hadoop无权查看/tmp/fstab文件中的内容
(5)退出hadoop用户,并以root身份为/tmp/cat设置suid权限
[root@Liu ~]# chmod u+s /tmp/cat
(6)此时,我们再切换至hadoop用户,执行/tmp/cat命令,看会出现啥样的效果
[hadoop@Liu ~]$ /tmp/cat /tmp/fstab
简直太神奇了,普通用户hadoop,居然可以查看属主和属组皆为root用户的文件了…
2、权限g+s
验证结论:设置完sgid权限后,新建文件的属主没有变化,而新建文件的属组都变成了/tmp/test/目录的属组如果该文件之前已有可执行权限,那么设置了sgid位权限后,将在该文件属组的可执行权限位上,显示为s;
下面这个结论可自己测试下
如果该文件之前没有可执行权限,那么设置了sgid位权限后,将在该文件属组的可执行权限位上,显示为S;
.粘滞位权限(sticky)
作用:设置粘滞位权限后,即便用户和对目录有写入权限,也不能删除该目录中其他用户的文件
应用场景:对于公共可写目录,用户可创建删除自己的文件,但是不能删除其他用户的文件
表现形式:sticky表示为文件其它用户执行权限位上的t或T:
x: t -: T
若之前在其它用户执行位已有执行权限,则显示为t,否则显示为T
使用,如chmod o+t filename …
chmod o-t filename …
数字1表示增加粘滞位权限;数字0表示取消粘滞位权限;
使用,如:chmod 1755 filename
3、权限o+t
总结:给文件或目录加入o+t权限后,用户可以随意创建文件和目录,但不能删除非自己创建的文件和目录
本文详细介绍了Linux系统中set位权限(suid和sgid)的概念、设置方法及其作用,通过实例演示了suid如何允许普通用户执行拥有者权限的文件。同时,文章还讲解了粘滞位权限(sticky bit)的功能,即防止普通用户删除他人在公共目录中的文件,及其启用和关闭的命令。
3523

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



