十六、用户权限管理之普通权限与特殊权限
今日内容:
一、用户权限管理之基本权限rwx管理
1、设置
2、权限的作用(文件、目录)
二、特殊权限
1>SUID
2>SGID
3>SBIT
附加
1、hash算法:
一串内容-----hash算法----->hsah值
hash值:
1>传入的内容与算法相同,hash值一定相同,反之,hash值与传入内容相同,则算法一定相同;
2>hash值不可逆推,即反推算
3>hash值的长度取决于采用的算法,与传入的内容无关
用途:
1、密码加密
2、校验文件的完整性
常见:
MD5
sha512
测试用法:md5sum 1.txt,修改内容后再执行以下:
[root@peng ~]# md5sum 1.txt
d41d8cd98f00b204e9800998ecf8427e 1.txt
[root@peng ~]# echo 123 > 1.txt
[root@peng ~]# cat 1.txt
123
[root@peng ~]# md5sum 1.txt
ba1f2511fc30423bdbb183fe33f3dd0f 1.txt
2、umask
linux中的 umask 函数主要用于:在创建新文件或目录时 屏蔽掉新文件或目录不应有的访问允许权限。文件的访问允许权限共有9种,分别是:r w x r w x r w x(它们分别代表:用户读 用户写 用户执行 组读 组写 组执行 其它读 其它写 其它执行)。
其实这个函数的作用,就是设置允许当前进程创建文件或者目录最大可操作的权限,比如这里设置为0,它的意思就是0取反再创建文件时权限相与,也就是:(~0) & mode 等于八进制的值0777 & mode了,这样就是给后面的代码调用函数mkdir给出最大的权限,避免了创建目录或文件的权限不确定性
PS:
1>目录初始权限减umask为目录默认权限
即:777-022=755
2>文件初始权限减umask为文件默认权限
即:666-022=644
#减去022是为了保证目录或文件不被其他用户危险执行,保证安全性。
一、普通基本权限rwx管理
1、chmod权限设置方式
1>加减法方式(在原来权限基础上增减)
属主:rwx 属组rx 其他rw
则:chmod u+rwx,g+rx,o+rw a.txt
2>赋值方式(重新指定权限)
则:u=rwx,g=rx,o=rw a,txt
若减为0则:u=-,g=-,o=-
3>数字方式(重新指定权限)
或chmod 756 a.txt
4>-R 递归修改 #对目录下的所有文件及目录进行修改
chmod -R a/
chmod a+r #a即所有用户
chown #设置文件或目录的属主属组权限
chown root.egon 1.txt
chown Ken.mail /var/spool/mail/Ken
2、权限的作用(文件、目录) 1>针对文件:
r:4 #读,读文件的内容
w:2 #写,修改文件内容
x:1 #执行,把文件当成一个命令/程序运行
2>针对目录:
r:4 #读,可浏览该目录下的目录名和子文件名
w:2 #写,创建、删除、移动、文件
x:1 #执行,可进入该目录,操作目录下的内容
PS:不切换用户,以普通用户身份查看文件
su - egon -c 'cat 1.txt'
**二、特殊权限
特殊权限总结:
SUID:
#主要是对一些命令或二进制文件,以该二进制文件的属主权限来执行该文件,以passwd命令为例。
SGID:
#主要是针对目录进行授权,共享目录。
SBIT:
#粘滞位,即便是该目录拥有w权限,但是除了root用户可以删除,其他用户只能对自己的文件进行删除、移动操作(除非解除粘滞位)
r:读
w:写
x:执行
SUID: 4000
SGID: 2000
SBIT: 1000
1、SUID 属主权限位,针对属主 执行文件时用户将获得该文件属主(主人)的权限。 仅对二进制可执行文件有效,会在属主权限位的执行权限上写s,如:
1>若属主位上有执行权限,则是小s:
-rwsr-xr-x 1 root root 27856 Aug 9 2019 /bin/passwd
2>若属主位上无执行权限,则是大s:
-rwSr-xr-x 1 root root 27856 Aug 9 2019 /bin/passwd
#s即SUID权限,以此命令主人的身份来运行命令,只是运行命令时转换身份;前提能运行此命令。
授权方式:
加:
• chmod u+s egon
• chmod 4755 egon #4即代表s
减:
• chmod u-s egon
• chmod 0755 egon ##4即代表s
总结:
1>让普通用户对可执行的二进制文件,临时拥有二进制文件的属主权限
2>如果设置的二进制文件没有执行权限,那么suid的权限显示就是S
3>特殊权限suid仅对二进制可执行程序有效,其他文件或目录则无效
注意:suid极其危险,比如让vim、rm等命令拥有该权限!
2、SGID 属组权限位,针对属组
1>对于普通文件: 与SUID类似,执行该文件时会获得文件所属组的权限;
1>若属组位上有执行权限,则是小s:
-rwxr-Sr-x 1 root root 27856 Aug 9 2019 /bin/passwd
2>若属组位上无执行权限,则是大s:
-rwxr-Sr-x 1 root root 27856 Aug 9 2019 /bin/passwd
2>对于目录作用就非常大了: 若对目录有wx权限,用户就可在该目录下创建文件,若再加上SGID修饰,则用户在此目录下建立的文件,都将属于这个目录所属的组;
作用:
1>针对用户组权限位修改,用户创建的目录或文件所属组和该目录的所属一致。
2>当某个目录设置了SGID后,在该目录中新建的文件不再是创建该文件的默认所属组。
3>使用SGID可以使多个用户之间共享一个目录的所有文件变得简单。
3>SBIT 阻止非文件的所有者删除文件,只对目录有效 举例:
[root@localhost ~]# ls -dl /tmp/
drwxrwxrwt. 13 root root 4096 8์ 11 17:09 /tmp/
[root@localhost ~]# chmod o+t /test/ 或 chmod 1755 /test
#权限中最后一位t表示该目录被设置了SBIT权限,即只有自己和root有权删除,主要作用与一个共享的文件夹。
授权方式
• chmod 1755 /opt
• chmod o+t/opt
#若其他用户有x权限,则小t
#若其他用户无x权限,则大t
SBIT粘滞位,目前只对目录有效,作用如下:
假设普通用户对改目录拥有w和x权限,即普通用户可以在此目录中拥有写入权限:
1>若无粘滞位,那么普通用户有写权限,就可删除此目录下的所有文件,包括其他用户建立的文件
2>若被赋予了粘滞位,除了root可以删除文件,普通用户就算有w权限也只能删除自己建立的文件,而不能删除其他用户建立的文件。
PS:系统中存在的/tmp目录,谁都有写入权限,因此安全成问题,常常是木马第一手跳板。
SUID权限演示