第十五章 特殊权限
一.特殊权限:
1.suid(4000)
SetUID(suid):会在属主权限位的执行权限上写个s
如果该属主权限位上有执行权限,则:s
如果该属主权限位上没有执行权限,则:S
授权方式:
chmod u+s filename
chmod 4755 filename
SetUID总结:
1.让普通用户对可执行的二进制文件,临时拥有二进制文件的属主权限
2.如果设置的二进制文件没有执行权限,那么suid的权限显示就是S
3.特殊权限suid仅对二进制可执行程序有效,其他文件或目录则无效
注意:suid极其危险,不信可以尝试对vim或者rm命令进行设定suid
2.sgid(2000)
[root@rlb ~]# ll /bin/write
-rwxr-sr-x. 1 root tty 19624 Oct 31 2018 /bin/write
如果该属组权限位上有执行权限,则:s
如果该属组权限位上没有执行权限,则:S
[root@db04 ~]# chmod 2755 /tmp/test/
[root@db04 ~]# chmod g+s /tmp/test/
SetGID的作用
1.针对用户组权限位修改,用户创建的目录或文件所属组和该目录的所属组一致。
2.当某个目录设置了sgid后,在该目录中新建的文件不在是创建该文件的默认所属组
3.使用sgid可以使得多个用户之间共享一个目录的所有文件变得简单。
3.sbit
粘滞位:
[root@rlb ~]# ll -d /tmp/
drwxrwxrwt. 8 root root 105 Jul 2 10:15 /tmp/
如果该其他用户权限位上有执行权限,则:t
如果该其它用户权限位上没有执行权限,则:T
授权方式:
[root@db04 ~]# chmod 1755 /opt
[root@db04 ~]# chmod o+t /opt
sticky(SI TI KI)粘滞,目前只对目录有效,作用如下:
普通用户对该目录拥有w和x权限,即普通用户可以在此目录中拥有写入权限,如果没有粘滞位,那么普通用户拥有w权限,就可以删除此目录下的所有文件,包括其他用户建立的文件。但是一旦被赋予了粘滞位,除了root可以删除所有文件,普通用户就算有w权限也只能删除自己建立的文件,而不能删除其他用户建立的文件。
系统中存在的/tmp目录是经典的粘滞位目录,谁都有写权限,因此安全成问题,常常是木马第一手跳板。
特殊权限总结:
1.SUID
主要是对命令,或者二进制文件,以该二进制文件的属主权限来执行该文件 命令:passwd
2.SGID
主要是针对目录进行授权,共享目录
3.SBIT
粘滞位,即便是该目录拥有w权限,但是除了root用户,其他用户只能对自己的文件进行删除、移动操作
一个普通用户:zls 属于 rlb这个组
一个文件权限:rwxrw-r-x root.rlb filename1
r:读 4
w:写 2
x:执行 1
suid:4000
sgid:2000
t:1000
二.rlb权限属性chattr概述:凌驾于r w x suid sgid t 之上的权限
lsattr:
查看特殊权限
chattr:
设置特殊权限
i:锁定文件,不能编辑,不能修改,不能删除,不能移动,可以执行
a:仅可以追加文件,不能编辑,不能删除,不能移动,可以执行
三.rlb进程掩码umask
[root@rlb ~]# umask
0022
目录:0777-0022=0755
0777-0023=0754
文件:0666-0022=0644
umask=0024
目录:0777-0024=0753
文件:0666-0024=0642
umask=0023
目录:0777-0023=0754
文件:0666-0023=064(3+1)
umask=051
目录:0777-0051=0726
文件:0666-0051=06(1+1)(5+1)
[root@rlb ~]# umask 0775
[root@rlb ~]# mkdir zls8
0002
[root@rlb ~]# touch oldboy8
0-1-11
0002
[root@rlb ~]# umask 0657
[root@rlb ~]# mkdir zls9
0120
[root@rlb ~]# touch oldboy9
0020
0666
0657
0020
umask影响范围:
777-077=700
umask命令 – 设定权限掩码
umask命令可用来设定权限掩码。权限掩码是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。
语法格式:umask [参数] [权限掩码]
常用参数:
-S 以文字的方式来表示权限掩码
-p 输出的权限掩码可直接作为指令来执行
参考实例
使用指令”umask”查看当前权限掩码:
[root@rlb ~]# umask
使组用户的写权限,其他用户的读、写和执行权限都被取消:
[root@rlb ~]# umask u=, g=w, o=rwx
与该功能相关的rlb命令:
expand命令 – 转换为空白字符
gitview命令 – 查看文件内容
mkdir命令 – 创建目录
cmp命令 – 比较两个文件是否有差异
objdump命令 – 查看目标文件构成的gcc工具
whereis命令 – 显示命令及相关文件的路径
nmcli命令 – 网络管理命令行工具
dd命令 – 拷贝文件及转换
diffstat命令 – 显示统计数字
mattrib命令 – 更改或显示MS-DOS文件的属性
邮件安装
yum install -y sendmail
systemctl start sendmail
yum install -y postfix
systemctl start postfix