[TOC]
day19特殊权限
特殊权限介绍
## 基本权限
r:读
w:写
x:执行
## 特殊权限
0 ? 10:15:34 root@miaosen,10.0.0.100:<sub> # ll /bin/passwd
-rwsr-xr-x. 1 root root 27832 Jun 10 2014 /bin/passwd
0 ✓ 10:19:19 root@miaosen,10.0.0.100:</sub> # ll /bin/write
-rwxr-sr-x. 1 root tty 19624 Oct 31 2018 /bin/write
0 ✓ 10:19:45 root@miaosen,10.0.0.100:~ # ll /tmp/ -d
drwxrwxrwt. 10 root root 235 Apr 14 10:15 /tmp/
特殊权限1:SetUID
# 1.普通用户可不可以修改密码
可以,
# 2./etc/shadow文件的作用
存储用户密码的文件
# 3./etc/shadow文件的权限
0 ✓ 10:20:14 root@miaosen,10.0.0.100:~ # ll /etc/shadow
---------- 1 root root 1770 Apr 13 07:06 /etc/shadow
没有权限
# 4.普通用户,是否可以修改/etc/shadow文件
不可以,/etc/shadow文件,对于普通用户没有任何权限,所以不能读取,也不能写入内容
# 5.那么普通用户,为什么可以修改密码?
1)因为使用了passwd这个命令
2)passwd命令在属主权限位上,原本是x权限,变成了s权限
3)s权限在属主权限位,又叫做SetUID权限,SUID
4)作用:普通用户在使用有SUID权限的文件或命令时,会以该文件的属主身份去执行该命令
![](F:\typora\day19,特殊权限\图片\01.png)
SetUID特性
# 1.原本属主位上如果有x权限,则SetUID为s
# 栗子
0 ✓ 10:41:27 root@miaosen,10.0.0.100:/opt # ll
total 0
drwxr-xr-x 2 root root 6 Apr 14 10:41 123
0 ✓ 10:41:28 root@miaosen,10.0.0.100:/opt # chmod u+s 123
0 ✓ 10:41:36 root@miaosen,10.0.0.100:/opt # ll
total 0
drwsr-xr-x 2 root root 6 Apr 14 10:41 123
# 1.原本属主位上如果有x权限,则SetUID为S
# 栗子
0 ✓ 10:42:40 root@miaosen,10.0.0.100:/opt # ll
total 0
drwsr-xr-x 2 root root 6 Apr 14 10:41 123
dr----x--x 2 root root 6 Apr 14 10:42 321
0 ✓ 10:42:41 root@miaosen,10.0.0.100:/opt # chmod u+s 321
0 ✓ 10:42:54 root@miaosen,10.0.0.100:/opt # ll
total 0
drwsr-xr-x 2 root root 6 Apr 14 10:41 123
dr-S--x--x 2 root root 6 Apr 14 10:42 321
# 3.授权方式
- chmod u+s 文件名
- chmod 4xxx 文件名
# 4.SetUID权限的数字是4000
# 栗子
0 ✓ 10:44:38 root@miaosen,10.0.0.100:/opt # mkdir -m 4000 sj
0 ✓ 10:44:45 root@miaosen,10.0.0.100:/opt # ll
total 0
d--S------ 2 root root 6 Apr 14 10:44 sj
特殊权限2:SetGID
0 ✓ 10:39:16 root@miaosen,10.0.0.100:<sub> # ll /bin/write
-rwxr-sr-x. 1 root tty 19624 Oct 31 2018 /bin/write
# 创建一个目录
0 ✓ 10:46:27 root@miaosen,10.0.0.100:/tmp # mkdir /tmp/test
# 赋予sgid权限
0 ✓ 10:46:31 root@miaosen,10.0.0.100:/tmp # chmod g+s test
0 ✓ 10:47:19 root@miaosen,10.0.0.100:/tmp # ll
total 0
drwxr-sr-x 2 root root 6 Apr 14 10:46 test
# 查看目录权限
0 ✓ 10:47:20 root@miaosen,10.0.0.100:/tmp # ll /tmp/test/ -d
drwxr-sr-x 2 root root 6 Apr 14 10:46 /tmp/test
# 使用root用户创建文件
0 ✓ 10:48:11 root@miaosen,10.0.0.100:/tmp # touch test/root.txt
0 ✓ 10:49:42 root@miaosen,10.0.0.100:/tmp # ll test/root.txt
-rw-r--r-- 1 root root 0 Apr 14 10:49 test/root.txt
# 切换用户
0 ✓ 10:51:04 root@miaosen,10.0.0.100:/tmp # su - qwe
# 创建文件
[qwe@miaosen </sub>]$ touch /tmp/test/qwe.txt
touch: cannot touch ‘/tmp/test/qwe.txt’: Permission denied # 没有权限
# 赋予目录777权限
0 ✓ 10:55:03 root@miaosen,10.0.0.100:<sub> # chmod 777 /tmp/test/
# 查看目录权限
0 ✓ 10:55:12 root@miaosen,10.0.0.100:</sub> # ll -d /tmp/test/
drwxrwsrwx 2 root root 22 Apr 14 10:49 /tmp/test/
# 切换至普通用户
0 ✓ 10:51:04 root@miaosen,10.0.0.100:/tmp # su - qwe
# 创建文件
[qwe@miaosen <sub>]$ touch /tmp/test/qwe.txt
# 查看权限
[qwe@miaosen </sub>]$ ll /tmp/test/qwe.txt
-rw-r--r-- 1 qwe root 0 Apr 14 10:56 /tmp/test/qwe.txt
# 讲test目录属主和属组改为oldboy
0 ✓ 11:01:22 root@miaosen,10.0.0.100:<sub> # chown oldboy.oldboy /tmp/test
# 查看权限
0 ✓ 11:02:30 root@miaosen,10.0.0.100:</sub> # ll /tmp/test/ -d
drwxrwsrwx 2 oldboy oldboy 37 Apr 14 10:56 /tmp/test/
# 切换用户
0 ✓ 11:03:12 root@miaosen,10.0.0.100:/tmp # su - sj
# 创建文件
[sj@miaosen <sub>]$ touch /tmp/test/sj.txt
# 查看文件权限
[sj@miaosen </sub>]$ ll /tmp/test/sj.txt
-rw-rw-r-- 1 sj oldboy 0 Apr 14 11:04 /tmp/test/sj.txt
SetGID特性
# 1.原本属组位上如果有x权限,则SetGID为 s
# 2.原本属组位上如果没有x权限,则SetGID为 S
# 3.授权方式
-chmod g+s 文件名
-chmod 2xxx 文件名
# 4.SetGID权限的数字是2000
## 主要应用场景:文件共享
练习sgid:
创建三个用户,分别是zls,oldboy,yourname这些用户都属于oldboyedu组的成员。这些用户的密码都是123
1.要求以上用户和组可以在/home/oldboyedu目录里访问,创建,删除文件
2.其他用户一律不允许访问该目录
3.在该目录下新建的文件会自动属于oldboyedu组拥有
特殊权限3:SBIT
[sj@miaosen ~]$ ll /tmp/ -d
drwxrwxrwt. 8 root root 105 Apr 14 10:46 /tmp/
粘滞位权限作用特性
# 1.带有粘滞位权限的目录下的所有文件,谁都可以读、写
# 2.带有粘滞位权限的目录下的文件只有属主能删除自己的文件,其他用户无法删除
# 3.带有粘滞位权限的目录,只有root能删除
# 4.授权方式
-chmod o+t 文件名
-chmod 1xxx 文件名
# 5.SBIT权限的数字是1000
# 6.其他用户权限位上有x权限:t 没有x权限 T
凌驾于root之上的权限
## 设置这个权限
chattr
i:只能查看文件内容,无法编辑
a:只能查看和追加文件内容,无法修改或覆盖源文件内容
+:设置,增加该权限
-:取消该权限
## 查看这个权限
lsattr 文件名
umask
# 查看当前系统默认的umask
0 ✓ 11:13:41 root@miaosen,10.0.0.100:<sub> # umask
0022
# 修改系统默认的umask
0 ✓ 11:13:43 root@miaosen,10.0.0.100:</sub> # umask 025
计算方法:
目录使用777 -umask
文件使用666 -umask
如果umask的位数上有奇数
文件使用666 - umask 在奇数位上加1
总结
# 1.三种特殊权限
1)SUID
- 作用
- 特性
- 授权方法
- 数字
2)SGID
- 作用
- 特性
- 授权方法
- 数字
3)SBIT
- 作用
- 特性
- 授权方法
- 数字
# 2.凌驾于root之上的权限
i
a
查看 lsattr
设置 chattr
主要场景:以后工作后,如果遇到root用户修改不了的文件,第一反应 特殊权限
# 3.umask
不用会设置,这辈子都用不到设置umask
会查看,回计算即可
用户家目录:077