2.18 特殊权限set_uid
2.19 特殊权限set_gid
2.20 特殊权限stick_bit
2.21 软连接文件
2.22 硬链接文件node
1、特殊权限set_uidlinux
linux中有个特殊权限:普通用户临时拥有某个命令全部者的权限。如:passwd命令windows
设定set_uid的前提条件:二进制、可执行文件ui
咱们查看如下passwd命令这个权限,发现是红色的 而且权限位第三位是s,这个就是set_uid权限3d
为何要设置set_uid权限?code
咱们普通用户平时也是能够使用passwd命令来进行修改权限,来看一下用来保存密码的文件:/etc/shadow 这个文件权限很是严谨是:-------- ,任何人都没权限修改(root用户拥有至高无上的权限),可是普通用户仍是能够使用passwd修改就是由于这个set_uid权限,普通用户在使用passwd命令时临时拥有了root权限。blog
如何添加set_uid权限rem
普通用户是没有执行ls /root/的权限,咱们使用chmod u+s ls 命令赋予set_uid权限,普通用户就能够使用ls 查看root目录了:it
[wxy@wxy03 ~]$ ls /root/ ls: cannot open directory /root/: Permission denied
[root@wxy03 ~]# chmod u+s /usr/bin/ls [root@wxy03 ~]# su - wxy Last login: Mon Sep 17 22:03:02 CST 2018 on pts/0 [wxy@wxy03 ~]$ ls /root/
[wxy@wxy03 ~]$ ls /root/ test.txt
以前能够使用 chmod u=rwx 这种方式添加权限,set_uid能够使用这种吗?io
[root@wxy03 ~]# ll /usr/bin/ls -rwsr-sr-x. 1 root root 117656 Nov 6 2016 /usr/bin/ls [root@wxy03 ~]# chmod u=rws /usr/bin/ls [root@wxy03 ~]# ll /usr/bin/ls -rwSr-sr-x. 1 root root 117656 Nov 6 2016 /usr/bin/ls
能够添加,可是s变成了S。这有什么影响呢,S是说明文件没有执行权限。
ps:目录也是能够添加set_uid权限的,可是没什么做用。
2、set_gid
这个和set_uid相似,做用是普通用户临时拥有某个命令所属组的权限。set_gid能够适用于文件和目录,当在文件上使用时和set_uid的做用同样,做用在目录时:当你建立子文件和子目录时权限跟父目录的权限同样。
[root@wxy03 ~]# chown wxy 1 [root@wxy03 ~]# ll -d 1/ drwxr-xr-x 2 wxy root 4096 Sep 17 22:30 1/ [root@wxy03 ~]# chmod g+s 1/
[root@wxy03 ~]# mkdir 1/22 [root@wxy03 ~]# ll 1/ total 4 drwxr-sr-x 2 root root 4096 Sep 17 22:32 22
三、 特殊权限stick_bit
防删除权限:防止文件别其它用户删除本身的文件,用户除外。
系统中/tmp/目录就有这个权限,权限位用“t”表示。tmp的权限是777,虽有人都有权限,若是别人乱删除那就乱套了,有了stick_bit权限这样就能够防止其它普通用户乱删除的状况了。
[root@wxy03 ~]# ll -d /tmp/ drwxrwxrwt. 11 root root 4096 Sep 17 22:35 /tmp/
stick_bit权限能够删除,可是其它用户仍是能够进行修改的:
[root@wxy03 ~]# chmod o+t /tmp/test/ [root@wxy03 ~]# chmod 777 /tmp/test/ [root@wxy03 ~]# su - wxy Last login: Mon Sep 17 22:44:36 CST 2018 on pts/0 [wxy@wxy03 ~]$ rm -rf /tmp/test/ rm: cannot remove ‘/tmp/test/’: Operation not permitted [wxy@wxy03 ~]$ mkdir /tmp/test/111.txt [wxy@wxy03 ~]$
4、软链接
软链接就是在文件自己存了另一个文件的路径,相似于windows的快捷方式。
/bin 就是一个软链接,它实际的路径是usr/bin
建立软链接方式:
ln -s 源文件 目标文件
示例:
[root@wxy03 ~]# ln -s /tmp/1.txt /root/1^C [root@wxy03 ~]# ln -s /tmp/1.txt /home/1111.txt [root@wxy03 ~]# ll /home/1111.txt lrwxrwxrwx 1 root root 10 Sep 17 22:53 /home/1111.txt -> /tmp/1.txt
软链接也可适用于目录:
[root@wxy03 ~]# ln -s /tmp/test/ /root/ [root@wxy03 ~]# ll /root/ total 4 drwxr-sr-x 3 wxy root 4096 Sep 17 22:32 1 lrwxrwxrwx 1 root root 10 Sep 17 22:51 test -> /tmp/test/
软链接的优势:节省磁盘空间,快捷方便。
注意事项:作软链接最好是作成绝对路径,由于若是不作成绝对路径软链接文件一旦挪动位置就会失效。
5、硬连接
linux系统中文件都会分一个编号就是inode,linux中多个文件指向到一个inode就是硬连接。多个相同inode的文件只会占用一个文件的空间。
用法: ln 源文件 目标文件
示例:
[root@wxy03 home]# ln 1.txt 2.txt [root@wxy03 home]# ll -i total 8 73732 -rw-r--r-- 2 root root 68 Sep 17 23:21 1.txt 73732 -rw-r--r-- 2 root root 68 Sep 17 23:21 2.txt
以上能够看到1.txt和2.txt的indoe、大小、时间都是彻底相同的,可是文件名不一样。
1.txt和2.txt实际上是一个文件,他们互为硬连接,删除一个不受影响。
硬连接能够建立多个,只会占用一个文件的空间大小。
[root@wxy03 home]# ln test/ 222 ln: ‘test/’: hard link not allowed for directory
硬连接只能对文件使用,目录没法使用。
[root@wxy03 home]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 50G 1.8G 45G 4% / devtmpfs 911M 0 911M 0% /dev tmpfs 920M 24K 920M 1% /dev/shm tmpfs 920M 344K 920M 1% /run tmpfs 920M 0 920M 0% /sys/fs/cgroup tmpfs 184M 0 184M 0% /run/user/0 [root@wxy03 home]# ln /dev/initctl /tmp/iii ln: failed to create hard link ‘/tmp/iii’ => ‘/dev/initctl’: Invalid cross-device link
硬连接不能跨分区建立,由于每一个分区都有本身的inode,格式化的时候就设置好了。