6.7 2.18-2.22

2.18 特殊权限set_uid

set_uid:给二进制文件(命令)执行者临时赋予文件所有者的权限

[root@hyc-01-01 /]# ls -l /usr/bin/passwd

-rwsr-xr-x. 1 root root 27832 6  10 2014 /usr/bin/passwd

sset_uid权限,可以让文件执行者临时拥有文件所有者即root的权限

[root@hyc-01-01 /]# ls -l /etc/shadow

----------. 1 root root 608 6   1 20:44 /etc/shadow

用户修改密码时,需要对shadow文件执行写操作,从上面的权限信息可以看出任何用户对该文件都没有任何权限,所以正常任何用户都无法对该文件执行写操作;

但由于root为超级用户,所以root仍然可以对该文件执行写操作;

由于普通用户在执行passwd时临时获得了root权限,所以普通用户也可以以root的身份对shadow文件执行写操作,进而修改密码;

[root@hyc-01-01 /]# su – hyc 切换到普通用户下

[hyc@hyc-01-01 ~]$ whoami

hyc

[hyc@hyc-01-01 ~]$ ls /root 权限不够无法查看root家目录

ls: 无法打开目录/root: 权限不够

[hyc@hyc-01-01 ~]$ ls -ld /root 查看发现root家目录中普通用户没有任何权限

dr-xr-x---. 5 root root 211 6   7 21:34 /root

[hyc@hyc-01-01 ~]$ su – root 切换到root

密码:

上一次登录:四 6  7 21:33:48 CST 2018 192.168.31.1pts/0

[root@hyc-01-01 ~]# ls -l /usr/bin/ls 查看ls命令的权限信息

-rwxr-xr-x. 1 root root 117656 11  6 2016 /usr/bin/ls ls命令文件所有者为root

[root@hyc-01-01 ~]# chmod u+s /usr/bin/ls ls命令文件添加suid权限

[root@hyc-01-01 ~]# su – hyc 切换到普通用户下

上一次登录:四 6  7 22:20:21 CST 2018pts/0

[hyc@hyc-01-01 ~]$ ls /root 普通用户下查看root家目录

111  222  3.txt  anaconda-ks.cfg.1  ls2

[hyc@hyc-01-01 ~]$ ls -l /usr/bin/ls

-rwsr-xr-x. 1 root root 117656 11  6 2016 /usr/bin/ls

[root@hyc-01-01 ~]# chmod u-x /usr/bin/ls 去掉所有者的x权限,suid权限会变成大写s,但效果与小写s相同

[root@hyc-01-01 ~]# ls -ld /usr/bin/ls

-rwSr-xr-x. 1 root root 117656 11  6 2016 /usr/bin/ls

由于目录不会被执行,所以对目录设置suid意义不大

2.19 特殊权限set_gid

用户执行二进制文件(命令)时会临时获得所属组的权限

 

[root@hyc-01-01 ~]# ls -ld /usr/bin/ls

-rwxr-sr-x. 1 root root 117656 11  6 2016 /usr/bin/ls

[root@hyc-01-01 ~]# su - hyc

上一次登录:四 6  7 22:23:45 CST 2018pts/0

[hyc@hyc-01-01 ~]$ ls /root

111  222  3.txt  anaconda-ks.cfg.1  ls2

普通用户在执行文件时临时获得root所有组的权限,所以可以查看root家目录

 

[hyc@hyc-01-01 tmp]$ mkdir rt 用户hyc下创建rt目录

[hyc@hyc-01-01 tmp]$ ls -ld rt

drwxrwxr-x. 2 hyc hyc 6 6   7 23:36 rt

[hyc@hyc-01-01 tmp]$ su – root 切换到root用户

密码:

上一次登录:四 6  7 23:09:53 CST 2018pts/0

[root@hyc-01-01 ~]# chmod g+s /tmp/rt rt目录加上guid权限

[root@hyc-01-01 ~]# ls -ld /tmp/rt

drwxrwsr-x. 2 hyc hyc 6 6   7 23:36 /tmp/rt

[root@hyc-01-01 ~]# whoami 当前为root用户

root

[root@hyc-01-01 ~]# touch /tmp/rt/rt1.txt root用户在rt目录下创建文件

[root@hyc-01-01 ~]# ls -l /tmp/rt/rt1.txt 创建的文件属组不是root而是hyc

-rw-r--r--. 1 root hyc 0 6   7 23:38 /tmp/rt/rt1.txt

给目录的所属组附加guid权限则该目录下创建的子目录和文件的属组会与该目录保持一致

2.20 特殊权限stick_bit

[hyc1@hyc-01-01 ~]$ whoami

hyc1 当前为hyc1用户

[hyc1@hyc-01-01 ~]$ cd /tmp

[hyc1@hyc-01-01 tmp]$ touch uuu tmp下创建uuu文件

[hyc1@hyc-01-01 tmp]$ chmod 777 uuu uuu文件权限更改为777

[hyc1@hyc-01-01 tmp]$ su – hyc 切换到hyc用户下

密码:

上一次登录:五 6  8 00:56:39 CST 2018pts/0

[hyc@hyc-01-01 ~]$ whoami

hyc

[hyc@hyc-01-01 ~]$ cd /tmp

[hyc@hyc-01-01 tmp]$ vi uuu hyc用户可以写uuu文件

[hyc@hyc-01-01 tmp]$ rm -f uuu 但无法删除uuu文件

rm: 无法删除"uuu": 不允许的操作

对于有sticky权限的目录,任何用户都对该目录可写,可以创建自己的文件,可以对此目录拥有完整的权限;

但仅可对用户自己创建的文件执行删除操作;

root用户依然可以删除该目录下的所有文件;

 

[hyc1@hyc-01-01 tmp]$ whoami

hyc1 当前用户为hyc1

[hyc1@hyc-01-01 tmp]$ mkdir hyc22 创建目录hyc22

[hyc1@hyc-01-01 tmp]$ chmod 777 hyc22 修改目录权限为777

[hyc1@hyc-01-01 tmp]$ cd hyc22

[hyc1@hyc-01-01 hyc22]$ touch 2.txt 创建2.txt

[hyc1@hyc-01-01 hyc22]$ ls -l 2.txt

-rw-rw-r--. 1 hyc1 hyc1 0 6   8 01:10 2.txt 其他用户对2.txt没有写权限

[hyc1@hyc-01-01 hyc22]$ su – hyc 切换到hyc用户

密码:

上一次登录:五 6  8 00:58:18 CST 2018pts/0

[hyc@hyc-01-01 ~]$ rm -f /tmp/hyc22/2.txt hyc用户可以删除由hyc1用户创建的2.txt文件

用户删除某个目录下的文件取决于用户对目录本身是否有写权限,而不是看用户对文件的权限;

当目录权限中添加了sticky位则目录中的某个文件只有文件所有者和root可以删除;

2.21 软链接文件

2.22 硬链接文件


猜你喜欢

转载自blog.51cto.com/12216458/2126207
6.7