2.18 特殊权限set_uid
set uid :该权限针对二进制可执行的文件,使文件在执行阶段具有文件所有者的权限。比如passwd这个命令就具有该权限。当普通用户执行passwd命令时,可以临时获得root权限,从而可以更改密码。 举例看下passwd的特殊权限:
[root@hanshuo-10 ~]# which passwd
/usr/bin/passwd
[root@hanshuo-10 ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd
以上命令可以发现,passwd显示的是rws并不是传统的rwx, rws的s代表的就是set_uid.
[root@hanshuo-10 ~]# su - hanshuo // 切换到普通用户
上一次登录:四 8月 3 22:05:16 CST 2017:0 上
[hanshuo@hanshuo-10 ~]$ whoami //查看当前所在用户
hanshuo
[hanshuo@hanshuo-10 ~]$ ls /root/ //root普通用户没有权限打开,需要将
ls: 无法打开目录/root/: 权限不够 ls临时更改set_uid权限
[hanshuo@hanshuo-10 ~]$ ls -ld /root/
dr-xr-x---. 7 root root 244 12月 21 00:19 /root/
** ls临时更改set_uid权限** 操作如下
root@hanshuo-10 ~]# ls -l /usr/bin/ls
-rwxr-xr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls //没有改权限
[root@hanshuo-10 ~]# chmod u+s /usr/bin/ls //改权限命令
[root@hanshuo-10 ~]# ls -l /usr/bin/ls
-rwsr-xr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls //已改完权限
[hanshuo@hanshuo-10 ~]$ ls /root/ //没改权限之前不能打开
ls: 无法打开目录/root/: 权限不够
[hanshuo@hanshuo-10 ~]$ ls /root/ //改权限后 就可以打开了
anaconda-ks.cfg han han1 hanshuo31 initial-setup-ks.cfg
[root@hanshuo-10 ~]# chmod u=rwx /usr/bin/ls [root@hanshuo-10 ~]# ls -l /usr/bin/ls -rwxr-xr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls 改回权限
2.19 特殊权限set_gid
set_gid,他针对的所属组
总结: set gid这个权限的作用,它不仅仅可以作用在文件上也可以作用在目录上,当作用在文件上和set uid作用是一样的,它可以让执行这个文件的普通用户临时拥有所属组的身份,当作用在目录上的时候,当你创建子目录或者是子文件的时候,创建的子目录和子文件的所属组和该目录的所属组保持一致。
2.20 特殊权限stick_bit
stick_bit可以理解为防删除位。
防止被其他用户删除ROOT除外,,
2.21 软链接文件
他类似Windows的快捷方式 ln 命令的格式:ln -s 源文件 目的文件, 如果不加-s就是硬链接,加上-s就是软链接。
软链接是建立一个独立的文件,当读取这个链接文件时,它会把读取的行为转发到该文件所链接的文件上、软链接的特性。首先建立一个目录456然后复制/etc/passwd文件来做测试,再给它做一个软链接文件, 举例如下 上例中,如果删除源文件,则不能读取软链接文件,而且使用命令ll查看,发现颜色也有所变化,这说明目录不可以做硬链接,但可以做软链接,命令如下
[root@hanshuo-10 ~]# ln -s 123 789
[root@hanshuo-10 ~]# ls -ld 123 789
drwxr-xr-x 2 root root 25 12月 21 17:45 123
lrwxrwxrwx 1 root root 3 12月 21 17:57 789 -> 123
2.22 硬连接文件
硬链接:当系统要读取一个文件时,会先读inode信息,然后再根据inode中的信息到块区域将数据取出来。而硬链接是直接建立一个inod链接到文件放置的块区域,即进行硬链接时该文件内容没有任何变化,只是增加了一个指向这个文件的inode,并不会额外占用磁盘空间。硬链接有两个限制:(1)不能跨文件系统,因为不同的文件系统有不同的inode table:(2)不能做链接目录 硬链接名利格式为 ln 原文件 目的文件 举例如下
[root@hanshuo-10 ~]# mkdir /tmp/hanshuo
[root@hanshuo-10 ~]# cd /tmp
[root@hanshuo-10 tmp]# cd /tmp/hanshuo
[root@hanshuo-10 hanshuo]# cp /etc/passwd ./
[root@hanshuo-10 hanshuo]# ll
总用量 4
-rw-r--r-- 1 root root 2337 12月 21 23:17 passwd
[root@hanshuo-10 hanshuo]# du -sk //du用来计算文件或者目录大小,-k表示以KB为单位,
4 .
[root@hanshuo-10 hanshuo]# ln passwd passwd-hard
[root@hanshuo-10 hanshuo]# ll
总用量 8
-rw-r--r-- 2 root root 2337 12月 21 23:17 passwd
-rw-r--r-- 2 root root 2337 12月 21 23:17 passwd-hard
[root@hanshuo-10 hanshuo]# du -sk
4 .
做了硬链接后,两个文件的大小都没有变化