SUID、SGID、SBIT、特殊属性、默认权限
进程以何种方式,访问文件,取决于这个进程所运行的用户身份是否拥有对应的权限。
一、SUID
当我们为某个命令设定了 suid ,所有的普通用户使用该命令,都会以该命令的“属主”身份,执行该命令。(只能由root用户设定)
命令:
chmod u+s
或 chmod 4755
例如:所有普通用户对 /etc/shadow 都没有权限,当我们为 cat 命令设定 suid,普通用户就可以借助root用户身份去查看该目录。
[root@10 ~]# ll /etc/shadow
----------. 1 root root 749 3月 16 20:55 /etc/shadow
[root@10 ~]# which cat # 用which查看cat的绝对路径
/usr/bin/cat
[root@10 ~]# chmod u+s /usr/bin/cat
[root@10 ~]# ll /usr/bin/cat
-rwsr-xr-x. 1 root root 54160 10月 31 2018 /usr/bin/cat
二、SGID
表现形式:在文件的属组权限上显示一个数字s(执行权限),S大写(无执行权限)
当我们为某个命令设定 SGID ,所有的普通用户使用该命令,都会以改命令的“属组”身份执行该命令。
命令:
chmod g+s
或 chmod 2755
对于目录:将目录设置为sgid后,如果在该目录下创建文件,都将与该目录的所属组保持一致。
延伸:chmod +x 表示所有权限都加x(执行权限)
三、SBIT 粘滞位
只针对于目录
所有普通用户就算对该目录拥有w权限,也只能删除自己的文件,不能删除其他人的文件。(root用户除外)
命令:
chmod o+t
或 chmod 1777
四、特殊属性
命令:
chattr 只有root用户可以使用,用来修改文件系统的权限属性,建立凌驾于rwx基础权限之上的授权。
选项:
+ 增加权限
- 减少权限
= 等于某个权限
a 让文件或目录仅可以追加内容
i 不得任意变更文件或目录
例如:
[root@10 ~]# chattr +a /mnt/file #增加该文件仅可以追加内容,不能覆盖或删除
[root@10 ~]# lsattr /mnt/file #查看权限属性
要点:如果想删除特殊属性,需要使用root身份,先取消属性(用chattr -a),然后删除
五、默认权限(UMASK)
1.默认系统规定的权限,目录 777,文件 666,UMASK表示要减去的权限。
例如,UMASK设置为 0022
则:
目录:777-022 = 755
文件:666-022 = 644
2.默认创建普通用户的家目录的权限位700,因为在 /etc/login.defs 中,UMASK设定的是077,我们可以对其进行修改。
/home:777-077 = 700
3.当root用户创建文件时,权限默认为644;当普通用户创建文件时,权限默认为664。
原因:在/etc/profile 中利用if条件语句对其UMASK的值进行了不同的输出,分别为022和002。
root用户:666 - 022 = 644
普通用户:666 - 002 = 664
拓展:
对于文件权限,UMASK的不同对其有不同的影响。
UMASK为偶数时,文件权限无影响
UMASK为奇数时,文件权限奇数位+1
网友评论