2.18 特殊权限set_uid
set_uid作用:普通用户,临时拥有:该命令所有者(用户)身份。
给一个命令,设置set_uid,前提:这个文件必须是一个可执行的二进制文件。
1. 切换到普通用户下:su - 普通用户
[[email protected] ~]# su - haojiabin
2. 查看当前登录用户:whoami
[[email protected] ~]$ whoami
3. 在普通用户下,使用ls命令查看root用户下内容:
[[email protected] ~]$ ls /root/
ls: 无法打开目录/root/: 权限不够
4. 返回root用户:su - root
[[email protected] ~]$ su - root
5. 查看/usr/bin/ls 文件的权限:
[[email protected] ~]# ls -l /usr/bin/ls
6. 给ls命令添加set_uid权限:chmod u+s 二进制文件
作用于ls命令,临时拥有root用户的权限
[[email protected] ~]# chmod u+s /usr/bin/ls
7. 删除二进制文件set_uid权限:chmod u-s 二进制文件
[[email protected] ~]# chmod u-s /usr/bin/ls
8. 查看添加set_uid权限后的,/usr/bin/ls文件权限:
[[email protected] ~]# ls -l /usr/bin/ls
9. 再切换到普通用户下,
[[email protected] ~]# su - haojiabin
10. 普通用户下,执行ls命令,查看/root/这个目录:
[[email protected] ~]$ ls /root/
2.19 特殊权限set_gid
set_gid作用:普通用户,临时拥有:该命令所属主(用户组)身份
作用在文件上:
文件添加set_gid权限,让执行这个文件的普通用户,临时拥有所属组身份
1. 给ls命令添加set_gid权限:chmod g+s 二进制文件
作用于ls命令,临时拥有root用户组的权限
[[email protected] ~]# chmod g+s /usr/bin/ls
2. 查看添加set_gid权限后的,/usr/bin/ls文件权限:
[[email protected] ~]# ls -l /usr/bin/ls
作用在目录上:
给目录添加set_gid权限:
创建子目录或子文件时:所创建的子目录或子文件和该目录的所属组保持一致
1. 给目录添加set_gid权限:chmod g+s 目录
[[email protected] ~]# chmod g+s mulu
2. 查看添加set_gid权限后的,mulu权限:
目录的用户组,添加了set_gid权限,简写:s权限
2.20 特殊权限stick_bit
stick_bit权限:防删除位
stick_bit权限作用:防止普通用户删除root权限文件
2.21 软链接文件
软链接:
软链接就好比是Windows系统的快捷方式
做软链接:尽量使用绝对路径。
1. 给文件做软连接: ln -s 原文件 存放的目录软链接文件
[[email protected] ~]# ln -s /root/1.log /tmp/2.log
1.1 查看文件的软连接:
[[email protected] ~]# ls -l /tmp/2.log
2. 给目录做软连接:ln -s 原目录 存放的目录软链接目录
[[email protected] ~]# ln -s /root/mulu1 /tmp/mulu12
2.2 查看目录的软连接:
[[email protected] ~]# ls -l /tmp/mulu12
2.22 硬链接文件
目录不允许做硬链接
文件做硬链接,不可以跨分区!!!
硬链接可以删除,因为还有其他的文件用的是同一个inode,但不能都删掉,
硬链接好比是一个文件的皮,皮有多张,每一张皮都指向同一个inode
1. 给文件添加硬链接:ln 跟原文件 跟重命名的硬链接文件
做硬链接,不可以跨分区,/根开始就是跨分区了
[[email protected] ~]# ln 1.txt 2.txt
2. 查看原文件和做的硬链接文件属性:
[[email protected] ~]# ls 1.txt 2.txt
3. 查看原文件和做的硬链接文件的inode:
[[email protected] ~]# ls -i 1.txt 2.txt