高级权限
高级权限 suid,sgid,sticky
1.1.高级权限的类型
suid ==== 4 提权 (只对二进制命令文件生效,其他不管用)
sgid ==== 2 组继承 (只能对目录设置)
sticky == 1 (t权限) 权限控制
1.set uid
1、SUID权限仅对命令文件(二进制文件)有效;
2、执行者将具有该程序拥有者(owner)的权限。
[root@bogon ~]# chmod u+s /usr/bin/cat
[root@bogon ~]# su - lu
上一次登录:一 5月 23 11:18:21 CST 2022pts/0 上
[lu@bogon ~]$ cat /root/1.txt
123456
# 当加入s 后,lu普通用户可以查看文件
取消提权
[root@bogon ~]# chmod u-s /usr/bin/cat
[root@bogon ~]# ls
1.txt anaconda-ks.cfg
[root@bogon ~]# rm -rf 1.txt
[root@bogon ~]# mkdir /we
mkdir: 无法创建目录"/we": 文件已存在
# 取消后普通用户无法创建目录
2.Set GID
把s放到文件的所属用户组的x位置上的话,就是SGID。那么SGID的功能是什么呢?和SUID一样,只是SGID是获得该程序所属用户组的权限。
SGID主要用在目录上-----如果用户在此目录下具有w权限的话,使用者在此目录下建立新文件,则创建的这个文件的群组与此目录的群组相同。
[root@bogon ~]# echo '234' > we/2.txt
[root@bogon ~]# ll we
总用量 8
-rw-r--r--. 1 root root 4 5月 23 11:33 1.txt
-rw-r--r--. 1 root root 4 5月 23 11:34 2.txt
# 直接创建 显示属组 属主均为root
[root@bogon ~]# chmod g+s we
[root@bogon ~]# useradd hr1
[root@bogon ~]# chown .hr1 we
[root@bogon ~]# echo '456' > we/3.txt
[root@bogon ~]# ll we
-rw-r--r--. 1 root hr1 4 5月 23 11:35 3.txt
# 创建用户并授权属组,在此查看发现属组为hr1
去除权限
[root@bogon ~]# chmod g-s we
[root@bogon ~]# echo '123' > we/5.txt
[root@bogon ~]# ll we
总用量 20
-rw-r--r--. 1 root root 4 5月 23 11:33 1.txt
-rw-r--r--. 1 root root 4 5月 23 11:34 2.txt
-rw-r--r--. 1 root hr1 4 5月 23 11:35 3.txt
-rw-r--r--. 1 root hr 4 5月 23 11:37 4.txt
-rw-r--r--. 1 root root 4 5月 23 11:41 5.txt
# 去除权限后发现创建的文件属组 属主为root
3.Sticky Bit
这个就是针对others来设置的了,和上面两个一样,只是功能不同而已。
SBIT(Sticky Bit)目前只针对目录有效,对于目录的作用是:当用户在该目录下建立文件或目录时,仅有自己与 root才有权力删除。
[root@bogon ~]# chmod o+t /home/test/
[root@bogon ~]# su - jack
上一次登录:一 5月 23 11:47:20 CST 2022pts/0 上
[jack@bogon ~]$ rm -rf /home/test/*
rm: 无法删除"/home/test/tom.txt": 不允许的操作
[jack@bogon ~]$ rm -rf /home/test/tom.txt
rm: 无法删除"/home/test/tom.txt": 不允许的操作
# 登录发现jack无法删除tom建立的文件
4.目前两种给普通用户提权手段:
sudo: 有针对性,例如针对某个用户以能够以root的身份执行某些命令。
suid: 基本针对所有用户,任何用户在执行有suid权限的程序时(例如/usr/bin/rm),都是以root身份在执行。
放开所有命令使用权
配置解释:
root表示用户名
第一个 ALL 指示允许从任何终端、机器访问 sudo
第二个 (ALL) 指示 sudo 命令被允许以任何用户身份执行
第三个 ALL 表示所有命令都可以作为 root 执行
[root@bogon ~]# visudo
# 进入配置文件
root ALL=(ALL) ALL
101 tom ALL=(ALL) NOPASSWD:/usr/bin/mkdir,/usr/bin/touch,/usr/bin/rm
102 jack ALL=(ALL) NOPASSWD:/usr/bin/mkdir,/usr/bin/touch,/usr/bin/rm
# 修改文件无密码登录,授权mkdir、touch的权限
作业
1.创建用户tom,jack,zhuzhuxia;zhuzhuxia用户的附加组为tom
[root@bogon ~]# useradd tom [root@bogon ~]# useradd jack [root@bogon ~]# useradd zhuzhuxia -G tom
[root@bogon ~]# id zhuzhuxia
uid=4011(zhuzhuxia) gid=4012(zhuzhuxia) 组=4012(zhuzhuxia),4011(tom)
2.切换到用户tom,在/tmp目录下创建文件tom.txt (观察文件的归属和权限)
[root@bogon ~]# su - tom
[tom@bogon ~]$ touch /tmp/tom.txt
[tom@bogon ~]$ ll /tmp/tom.txt
-rw-rw-r–. 1 tom tom 0 5月 23 12:11 /tmp/tom.txt
3.将tom创建的文件权限修改为rw-r-----
[root@bogon ~]# chmod g-w,o-r /tmp/tom.txt
[root@bogon ~]# ll /tmp/tom.txt
-rw-r-----. 1 tom tom 0 5月 23 12:11 /tmp/tom.txt
4.向tom创建的文件中写入内容"Tihs is tom file ,dont touch"
[root@bogon ~]# echo ‘Tihs is tom file ,dont touch’ >> /tmp/tom.txt
5.请问: jack,zhuzhuxia能不能查看文件的内容?
jack不可以,zhuzhuxia可以(作为属组成员,具有 r 权限)
6.创建一个目录/opt/test目录,要求该目录的属组为it组,任何用户在该目录下创建文件继承该目录的属组?
[root@bogon ~]# mkdir /opt/test/
[root@bogon ~]# chown .it /opt/test/
[root@bogon ~]# chmod g+s /opt/test/
7.使用root用户创建目录/prov,修改属主为tom,属组为tom,权限为750
[root@bogon ~]# mkdir /prov
[root@bogon ~]# chown tom.tom /prov
[root@bogon ~]# chmod 750 /prov
8.列出/home/下面的所有文件包括隐藏文件?
ll -a /home/
9.查看自己的ip地址
ip addr
10.chown是用来做什么的?chmod是用来做什么的?
chown----授权 chmod----修改权限