Linux特殊权限day12
2019-08-08 本文已影响0人
静如止水yw
1.特殊权限(suid\sgid\sbit)
2.权限属性(chatter)
3.进程掩码(umask)
一、特殊权限
1.特殊权限——suid
- suid——set uid
当s权限位于可执行命令所有者的位置时,其他用户执行时将具有所有者的权限。
就是指当普通用户的文件保存在/etc/passwd,而密码保存在etc/shadow中,由于
普通用户对这两个权限是没有w权限的,但是普通用户却能修改自己的密码?这就
是suid给的passwd这个命令的特殊权限,也就是在属主的权限位的执行权限上是
s。就是指当一个具有执行权限的文件设置 SetUID 权限后,用户在执行这个文件
时将以文件所有者的身份来执行。当普通用户使用passwd更改自己的密码时,实
际上是在用root的身份在执行passwd命令,当命令执行完成后,该身份也将消
失。
suid授权方法:4000权限字符s(S),属主权限位上的x位上设置
[root@wyw ~]# ll /etc/passwd
-rw-r--r--. 1 root root 1021 Aug 2 15:21 /etc/passwd
[root@wyw ~]# ll /etc/shadow
----------. 1 root root 649 Aug 2 15:21 /etc/shadow
[root@wyw ~]# touch /opt/test.txt #在/opt/目录下建一个test.txt的文件
[root@wyw ~]# ll /opt/test.txt #查看/opt/test.txt的权限
-rw-r--r--. 1 root root 0 Aug 8 15:00 /opt/test.txt
[root@wyw ~]# chmod 4755 /usr/bin/vim #给vim命令加上s权限
[root@wyw ~]# ll /usr/bin/vim
-rwsr-xr-x. 1 root root 2294216 Jun 28 21:59 /usr/bin/vim
# 此时其他用户就可以使用vim往/opt/test.txt里写内容了
[root@wyw ~]# useradd danmai
[root@wyw ~]# su - danmai
[danmai@wyw ~]$ echo "123" >> test.txt
[danmai@wyw ~]$ cat test.txt
123
- suid的作用:
1)可以让普通用户对可执行的二进制文件,临时拥有二进制文件的所属主权限
2)如果设置的二进制文件没有执行权限,那么suid的权限显示就是S
3)特殊权限suid仅对二进制可执行程序有效,其他文件或目录则无效
2.特殊权限——sgid
set gid——sgid
如果将目录设置为sgid后,在该目录下创建文件时,都将与该目录的所属组保持
一致:
sgid授权方法:2000权限子符s(S),取决于属组位置上的x
#1.建立测试目录
[root@wyw ~]# cd /tmp/
[root@wyw tmp]# mkdir file
[root@wyw tmp]# ll /tmp/file/ -d
drwxr-xr-x. 2 root root 6 Aug 8 15:27 /tmp/file/
#2.给测试目录赋予sgid权限,检查sgid是否生效
[root@wyw tmp]# chmod 2755 file
[root@wyw tmp]# ll /tmp/file/ -d
drwxr-sr-x. 2 root root 6 Aug 8 15:27 /tmp/file/
#切换成普通用户danmai,并进入该目录
[root@wyw ~]# su - danmai
[danmai@wyw ~]$ cd /tmp/file
[danmai@wyw file]$
#普通哦用户创建测试文件,检查问价的信息
[root@wyw file]# touch file.txt
[root@wyw file]# ll
-rw-rw-r--. 1 root root 0 Aug 8 15:51 file.txt
*sgid作用:
1)针对用户组权限位修改,用户创建的目录或文件所属组合盖目录的所属组一致
2)当某个目录设置了sgid后,在该目录中新建的文件不在是创建该文件的默认所属组
3)使用sgid可以使得多个用户之间共享一个目录的所有文件变得简单
3.特殊权限——sbit
- sticky粘滞位目前只对目录有效
[root@wyw ~]# ll /tmp/ -d
drwxrwxrwt. 8 root root 105 Aug 8 16:05 /tmp/
- sticky授权方法,1000 权限字符t(T),其他用户位的x位上设置
-
sticky作用
1)让多个用户都具有写权限的目录,并让每个用户只能删自己的文件。
2)特殊sticky目录表现在others的x位,用小t表示,如果没有执行权限是T
3)一个目录即使它的权限为"777"如果是设置了粘滞位,除了目录的属主和"root"用户有权限删除,除此之外其他用户都不允许删除该目录。
image.png
二、权限属性——chattr
chatrr 只有 root 用户可以使用,用来修改文件系统的权限属性,建立凌驾于 rwx 基础权限之上的授权。
chatrr 命令格式:[root@wyw ~]# chattr [+-=] [选项] 文件或目录名
#选项: + 增加权限 -减少权限 =等于某个权限
# a:让文件或目录仅可追加内容
# i:不得任意更动文件或目录
# 任何用户都不能创建用户,需要给/etc/passwd添加什么属性
# a权限 无法写入和删除文件,但可以追加数据,适合/etc/passwd这样的文件
[root@wyw ~]# chattr +i /etc/passwd
[root@wyw ~]# lsattr /etc/passwd
----i----------- /etc/passwd
[root@wyw ~]# chattr -i /etc/passwd
[root@wyw ~]# lsattr /etc/passwd
---------------- /etc/passwd
# i权限, 无法写入,无法删除,适合不需要更改的重要文件加锁
三、进程掩码——umask
umask是用来控制默认创建文件或目录的权限
umask设定为022,表示要减去的权限
目录 777 -022 =755
文件 666 -022 =644
umask 设定为奇数 偶数 对文件和目录有什么影响?
文件: 如果umask出现了奇数, 要在奇数位+1
目录: 对目录毫无影响
设定umask
umask number 临时 (当前bash窗口有效,会随着bash的关闭一 起结束)
vim /etc/profile /etc/login.defs # 如果修改则都为永久.
- umask涉及哪些配置文件
umask涉及到的相关文件/etc/bashrc /etc/profile ~/.bashrc ~/.bash_profile
shell (vim,touch) --umask--> 会影响创建的新文件或目录权限
vsftpd服务如果修改--umask--> 会影响ftp服务中新创建文件或创建目录权限
useradd如果修改umask--> 会影响用户HOME家目录权限
# 查看当前用户的umask权限
[root@wyw ~]# umask
0022
[root@wyw ~]# touch cafe0022
[root@wyw ~]# mkdir dir0022
[root@wyw ~]# ll -d cafe0022 dir0022/
-rw-r--r--. 1 root root 0 Aug 8 16:29 cafe0022
drwxr-xr-x. 2 root root 6 Aug 8 16:29 dir0022/
#修改shell umask值
[root@wyw ~]# umask 002
[root@wyw ~]# mkdir dir002
[root@wyw ~]# touch cafe002
[root@wyw ~]# ll dir002 cafe002 -d
-rw-rw-r--. 1 root root 0 Aug 8 16:32 cafe002
drwxrwxr-x. 2 root root 6 Aug 8 16:32 dir002
[root@wyw ~]#
[root@wyw ~]# umask 002
[root@wyw ~]# mkdir dir002
[root@wyw ~]# touch cafe002
[root@wyw ~]# ll dir002 cafe002 -d
-rw-rw-r--. 1 root root 0 Aug 8 16:32 cafe002
drwxrwxr-x. 2 root root 6 Aug 8 16:32 dir002
通过umask决定新建用户HOME目录的权限
[root@wyw ~]# vim /etc/login.defs
UMASK 022
[root@wyw ~]# useradd cofe
[root@wyw ~]# ll -d /home/cofe/
drwxr-xr-x. 2 cofe cofe 62 Aug 8 16:37 /home/cofe/
[root@wyw ~]# vim /etc/login.defs
UMASK 000
[root@wyw ~]# useradd sa
[root@wyw ~]# ll -d /home/sa/
drwxrwxrwx. 2 sa sa 62 Aug 8 16:39 /home/sa/