2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件

set_uid

权限说明:set uid权限针对二进制可执行文件,使文件在执行阶段具有文件所有者的权限。比如passwd这个命令就具有该权限。当普通用户执行passwd命令时,可以临时获得root权限,从而可以更改密码。
作用 :set uid的作用是保证普通用户临时拥有该命令所有者的身份。给一个文件设置成set uid,前提这个文件是一个二进制,可执行的文件。
**用法:**把一个二进制可执行文件的,所有者的权限上 +s 就添加上了set uid权限。
例如把ls命令设置成set uid 。 #chmod u+s /usr/bin/ls

实例:root用户

1[root@cham2 ~]# passwd root ^C 2[root@cham2 ~]# ls -l /usr/bin/passwd 3-rwsr-xr-x. 1 root root 27832 610 2014 /usr/bin/passwd 4[root@cham2 ~]# set_uid ^C 5[root@cham2 ~]# passwd ^C 6[root@cham2 ~]# ls /etc/shadow 7/etc/shadow 8[root@cham2 ~]# ls -l !$ 9ls -l /etc/shadow 10---------- 1 root root 689 1025 16:11 /etc/shadow 11[root@cham2 ~]# w 12 13:28:19 up 1 day, 1:02, 2 users, load average: 0.00, 0.01, 0.05 13USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT 14root tty1 二12 25:52m 0.21s 0.21s -bash 15root pts/1 192.168.230.1 12:22 3.00s 0.05s 0.00s w 16[root@cham2 ~]# who 17who whoami 18[root@cham2 ~]# whoami 19root 20[root@cham2 ~]# rws ^C 21[root@cham2 ~]# ls -l /usr/bin/ls 22-rwxr-xr-x. 1 root root 117656 116 2016 /usr/bin/ls 23[root@cham2 ~]# chmod u+s /usr/bin/ls 24[root@cham2 ~]# ls -l /usr/bin/ls 25-rwsr-xr-x. 1 root root 117656 116 2016 /usr/bin/ls 26[root@cham2 ~]# chmod u-s /usr/bin/ls 27[root@cham2 ~]# chmod u=rws /usr/bin/ls 28[root@cham2 ~]# ls -l /usr/bin/ls 29-rwSr-xr-x. 1 root root 117656 116 2016 /usr/bin/ls 30[root@cham2 ~]# chmod u+x /usr/bin/ls 31[root@cham2 ~]# ls -l /usr/bin/ls 32-rwsr-xr-x. 1 root root 117656 116 2016 /usr/bin/ls 33[root@cham2 ~]#

user用户:cham

1Last login: Thu Oct 26 13:36:57 2017 2[root@cham2 ~]# su - cham 3上一次登录:四 1026 13:36:00 CST 2017pts/14[cham@cham2 ~]$ ls /root/ 5111 11.txt 123 12.txt 1.txt 22.txt 234 2.txt anaconda-ks.cfg.1 6[cham@cham2 ~]$ ls -ld /root/ 7dr-xr-x---. 6 root root 284 1025 17:31 /root/ 8[cham@cham2 ~]$ ls /root/ 9ls: 无法打开目录/root/: 权限不够

****#chmod u-s /usr/bin/ls //去除set uid权限****

set_gid
set gid不仅能作用在文件上,还能作用在目录上。
权限说明: set gid权限可以作用在文件上(二进制可执行文件),也可以作用在目录上。当作用在文件上时,其功能和set,uid一样,它会使文件在执行阶段具有文件所属组的权限。目录被设置这个权限后,任何用户在此目录下创建的文件都具有和该目录所属的组相同的组。
作用:
当作用在 文件 上的时候 ,其作用和set uid是类似的,它可以让执行这个文件的普通用户临时拥有所属组的身份。
当作用在 目录 上的时候,创建子目录或子文件的所属组和该目录的所属组是保持一致的。
用法: 把一个二进制可执行文件的,所属组的权限上 +s 就添加上了set gid权限。

用在 文件上的时候 ,其作用和set uid是类似的,它可以让执行这个文件的普通用户临时拥有所属组的身份。

把ls命令设置成set gid 。 #chmod g+s /usr/bin/ls

实例:

1[root@cham2 ~]# ls -l /usr/bin/ls 2-rwxr-xr-x. 1 root root 117656 116 2016 /usr/bin/ls 3[root@cham2 ~]# chmod g+s /usr/bin/ls 4[root@cham2 ~]# ls -l /usr/bin/ls 5-rwxr-sr-x. 1 root root 117656 116 2016 /usr/bin/ls 所属组中的x变成了s 6 7切换user cham 8[cham@cham2 ~]$ ls -ld /root/ 9dr-xr-x---. 6 root root 284 1025 17:31 /root/ 10[cham@cham2 ~]$ ls /root/ 11111 11.txt 123 12.txt 1.txt 22.txt 234 2.txt anaconda-ks.cfg.1 12[cham@cham2 ~]$ ls -ld /root/ 13dr-xr-x---. 6 root root 284 1025 17:31 /root/

用在目录上的时候,创建子目录或子文件的所属组和该目录的所属组是保持一致的

实例:把234目录添加set gid权限,然后更改所属组为user1,然后在234目录下创建一个文件chamlinux,其chamlinux的所属组为user1。 如果没有添加set gid权限的话,chamlinux的所属组应该是root

1[root@cham2 ~]# chmod g+s 234234目录加上set gid 2[root@cham2 ~]# ls -ld 234 3drwxrwsr-x 2 root root 6 1025 16:41 234 所属组多了个s 4[root@cham2 ~]# chown :user1 234234的所属组改成user1 5[root@cham2 ~]# ls -ld 234 看一下 6drwxrwsr-x 2 root user1 6 1025 16:41 234 7[root@cham2 ~]# touch 234/chamlinux 新建一个文件 8[root@cham2 ~]# ls -l 234 9总用量 0 10-rw-r--r-- 1 root user1 0 1026 14:07 chamlinux 11[root@cham2 ~]# mkdir 234/ch 234下面新建一个子目录 12[root@cham2 ~]# ls -l 234/ 所属组都是user1 13总用量 0 14drwxr-sr-x 2 root user1 6 1026 14:08 ch 15-rw-r--r-- 1 root user1 0 1026 14:07 chamlinux 16[root@cham2 ~]# chmod g-s 234 去掉set gid 17[root@cham2 ~]# touch 234/chamlinux111 234新建子文件 18[root@cham2 ~]# !ls 看一下 19ls -l 234/ 20总用量 0 21drwxr-sr-x 2 root user1 6 1026 14:08 ch 22-rw-r--r-- 1 root user1 0 1026 14:07 chamlinux 23-rw-r--r-- 1 root root 0 1026 14:09 chamlinux111 所属组是root 24[root@cham2 ~]# mkdir 234/ch1 新建子目录 25[root@cham2 ~]# !ls 看一下 26ls -l 234/ 27总用量 0 28drwxr-sr-x 2 root user1 6 1026 14:08 ch 29drwxr-xr-x 2 root root 6 1026 14:09 ch1 所属组是root 30-rw-r--r-- 1 root user1 0 1026 14:07 chamlinux 31-rw-r--r-- 1 root root 0 1026 14:09 chamlinux111 32[root@cham2 ~]# 33[root@cham2 ~]# 34[root@cham2 ~]# ls -ld 234 35drwxrwxr-x 4 root user1 64 1026 14:09 234

stick_bit

 可以理解为防删除位。文件是否可以被某用户删除,主要取决于该文件所在的目录是否对该用户具有写权限。如果没有写权限,则这个目录下的所有文件都不能删除,同时也不能添加新的文件。如果希望用户能够添加文件但不能删除该目录下其他用户的文件,则可以对父目录增加该权限。设置该权限后,就算用户对目录具有写权限,也不能删除其他用户的文件。
**作用: * 防止别人删除自己的文件,root用户除外。

/tmp的权限是rwt,而不是传统的rwx。这个叫做防删除位

实例: 在cham用户下的 /tmp目录下 touch一个cham文件,并#chmod 777cham的权限设置成777,在cham里面编辑一些内容。然后切换到user1用户下,在user1用户下能查看并修改cham文件,而不能删除(除cham用户和root用户拥有修改删除的权限,其他用户都不能删除)。

1[cham@cham2 ~]$ whoami 2cham 3[cham@cham2 ~]$ cd /tmp/ 4[cham@cham2 tmp]$ ls 52.txt cham2 ks-script-JG2UJk yum.log 63.txt chamlinux systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy 7[cham@cham2 tmp]$ touch cham 8[cham@cham2 tmp]$ ls -l 9总用量 8 10-rw-r--r-- 1 root root 2 1024 21:21 2.txt 11-rwx------ 1 root root 0 1025 15:24 3.txt 12-rw-rw-r-- 1 cham cham 0 1026 16:20 cham 13drw-r--r-x 2 user1 cham 19 1025 15:41 cham2 14drwxr-xr-x 4 root root 28 1024 12:58 chamlinux 15-rwx------. 1 root root 836 1019 07:00 ks-script-JG2UJk 16drwx------ 3 root root 17 1024 12:21 systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy 17-rw-------. 1 user1 root 0 1019 06:55 yum.log 18[cham@cham2 tmp]$ vi cham 19[cham@cham2 tmp]$ chmod 777 cham 20[cham@cham2 tmp]$ ls -l 21总用量 12 22-rw-r--r-- 1 root root 2 1024 21:21 2.txt 23-rwx------ 1 root root 0 1025 15:24 3.txt 24-rwxrwxrwx 1 cham cham 55 1026 16:20 cham 25drw-r--r-x 2 user1 cham 19 1025 15:41 cham2 26drwxr-xr-x 4 root root 28 1024 12:58 chamlinux 27-rwx------. 1 root root 836 1019 07:00 ks-script-JG2UJk 28drwx------ 3 root root 17 1024 12:21 systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy 29-rw-------. 1 user1 root 0 1019 06:55 yum.log 30[cham@cham2 tmp]$ ls -l cham 31-rwxrwxrwx 1 cham cham 55 1026 16:20 cham 32 33 34 35 36[user1@cham2 tmp]$ cd /tmp/ 37[user1@cham2 tmp]$ ls 382.txt cham2 systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy 393.txt chamlinux yum.log 40cham ks-script-JG2UJk 41[user1@cham2 tmp]$ vi cham user1可以修改 42[user1@cham2 tmp]$ rm -f cham 但不能删除 43rm: 无法删除"cham": 不允许的操作

实例:

1[user1@cham2 tmp]$ mkdir user1 2[user1@cham2 tmp]$ chmod 777 user1 3[user1@cham2 tmp]$ ls -l 4总用量 12 5-rw-r--r-- 1 root root 2 1024 21:21 2.txt 6-rwx------ 1 root root 0 1025 15:24 3.txt 7-rwxrwxrwx 1 cham cham 60 1026 16:22 cham 8drw-r--r-x 2 user1 cham 19 1025 15:41 cham2 9drwxr-xr-x 4 root root 28 1024 12:58 chamlinux 10-rwx------. 1 root root 836 1019 07:00 ks-script-JG2UJk 11drwx------ 3 root root 17 1024 12:21 systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy 12drwxrwxrwx 2 user1 user1 6 1026 16:24 user1 13-rw-------. 1 user1 root 0 1019 06:55 yum.log 14[user1@cham2 tmp]$ cd uer1 15-bash: cd: uer1: 没有那个文件或目录 16[user1@cham2 tmp]$ cd user1 17[user1@cham2 user1]$ ls -l 18总用量 0 19-rw-rw-r-- 1 cham cham 0 1026 16:25 1.txt 20drwxrwxr-x 2 cham cham 6 1026 16:25 456 21 22 23 24[cham@cham2 tmp]$ cd user1 25[cham@cham2 user1]$ touch 1.txt 26[cham@cham2 user1]$ mkdir 456 27[cham@cham2 user1]$ ls 281.txt 456 29[cham@cham2 user1]$ ls -l 30总用量 0 31-rw-rw-r-- 1 cham cham 0 1026 16:25 1.txt 32drwxrwxr-x 2 cham cham 6 1026 16:25 456 33 34 35 36[user1@cham2 user1]$ rm -f 1.txt 37[user1@cham2 user1]$ rm -r 456 38rm:是否删除有写保护的目录 "456"?y 39[user1@cham2 user1]$ ls 40[user1@cham2 user1]$ ls -l 41总用量 0 42[user1@cham2 user1]$ pwd 43/tmp/user1 44 45 46 47[cham@cham2 tmp]$ mkdir cham11 48[cham@cham2 tmp]$ chmod 777 cham11 49[cham@cham2 tmp]$ ls -l 50总用量 12 51-rw-r--r-- 1 root root 2 1024 21:21 2.txt 52-rwx------ 1 root root 0 1025 15:24 3.txt 53-rwxrwxrwx 1 cham cham 1 1026 16:48 cham 54drwxrwxrwx 2 cham cham 6 1026 16:58 cham11 55drw-r--r-x 2 user1 cham 19 1025 15:41 cham2 56drwxr-xr-x 4 root root 28 1024 12:58 chamlinux 57-rwx------. 1 root root 836 1019 07:00 ks-script-JG2UJk 58drwx------ 3 root root 17 1024 12:21 systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy 59drwxrwxrwx 2 user1 user1 6 1026 16:27 user1 60-rw-------. 1 user1 root 0 1019 06:55 yum.log 61 62 63 64[user1@cham2 tmp]$ cd cham11 65[user1@cham2 cham11]$ touch 123 66[user1@cham2 cham11]$ mkdir 456 67[user1@cham2 cham11]$ ls 68123 456 69 70 71[cham@cham2 tmp]$ cd cham11 72[cham@cham2 cham11]$ rm -v 123 73rm:是否删除有写保护的普通空文件 "123"?y 74已删除"123" 75[cham@cham2 cham11]$ rm -v 456 76rm: 无法删除"456": 是一个目录 77[cham@cham2 cham11]$ rm -rv 456 78rm:是否删除有写保护的目录 "456"?y 79已删除目录:"456" 80 81

总结: **一个目录下的文件能不能删除,不取决于这个目录下的文件的权限,而是取决于这个文件所在目录的权限,是否可写。**所以当一个目录的others权限是可读可写时(目录默认权限有可执行,因为打开目录,就相当于执行了该目录),其他人就可以删除这个目录下的任何文件,包括root文件。

软链接

软链接 做软链接时建议!尽量!使用绝对路径

用命令ls -l查看的第一个属性为 l 的文件就是链接文件,它类似于windows下的快捷方式。这种文件在Linux中是很常见的。如下图

可以看到这一行的第一个字母是 l ,这个 l 就代表它是一个链接文件 。/bin 相当于Windows下的快捷方式,而usr/bin才是它真正的目录。
QQ截图20171026213621.png

使用命令 #ls -l /lib64 的时候,可以看到一些粉绿色的,第一个属性为 l 文件都是一些软链接文件。
QQ截图20171026220900.png

软链接: 也称为符号链接,即“symbolic links/soft links”,是一个通过名称指向另一个不同文件的特殊的文件类型,是一个单独的文件,有着不同于原文件(目标文件)的属性,相当于Windows系统中的快捷方式。当对软链接进行大多数操作(包括打开、读取、写入等等)时,系统内核会自动在软链接的目标文件上执行;但某些操作,例如删除,会直接对链接文件本身操作。

软链接特性:

  1. 软链接和目标文件不是同一个文件,节点号不同。

  2. 目标文件的删除操作会影响软链接文件。当链接文件被删除时,不会对目标文件产生影响;当删除目标文件/目录时,由于失去了目标指向,软链接会失效,变成死链。

  3. 能跨分区创建软链接。(使用命令 #hf -h 查看分区的大小是使用情况的时候,挂载点那一行就是分区。) 

  4. 命令语法: ln[-s][来源文件][目的文件]

  5. 命令描述: 建立软链接

  6. 命令参数: -s 建立软链接时,必须要加上 -s 选项,如果不加 -s 选项就是建立硬链接。

实例

ln -s 源文件 目标文件

例如:# ln -s /root/123/.1.txt    /tmp/123/12/1.txt 

实例:

1[root@cham2 tmp]# ln -s /tmp/yum.log /root/111/yum.log 2[root@cham2 tmp]# ls -l /root/111/ 3总用量 16 4-rw-r--r-- 1 root root 0 1025 17:20 12.tx~ 5-rw-r--r-- 1 root root 195 1025 17:23 12.txt 6-rw-r--r-- 1 root root 12288 1025 17:20 12_txt.swp 7drwxr-xr-x 2 root root 6 1025 17:16 222 8-rw-r--r-- 1 root root 0 1025 17:20 4913 9lrwxrwxrwx 1 root root 12 1026 20:32 yum.log -> /tmp/yum.log 10[root@cham2 tmp]# ls -l 11总用量 16 12-rw-r--r-- 1 root root 2 1024 21:21 2.txt 13-rwxrwxrwx 1 cham cham 6 1026 20:02 321321 14-rwx------ 1 root root 0 1025 15:24 3.txt 15-rwxrwxrwx 1 cham cham 1 1026 16:48 cham 16drwxrwxrwx 2 cham cham 6 1026 16:59 cham11 17drw-r--r-x 2 user1 cham 19 1025 15:41 cham2 18drwxr-xr-x 4 root root 28 1024 12:58 chamlinux 19-rwx------. 1 root root 836 1019 07:00 ks-script-JG2UJk 20drwx------ 3 root root 17 1024 12:21 systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy 21drwxrwxrwx 2 user1 user1 6 1026 16:27 user1 22-rw-------. 1 user1 root 0 1019 06:55 yum.log 23[root@cham2 tmp]# 24[root@cham2 tmp]# ln -s /tmp/cham2 /root/111/cham3 25[root@cham2 tmp]# ls -l !$ 26ls -l /root/111/cham3 27lrwxrwxrwx 1 root root 10 1026 20:34 /root/111/cham3 -> /tmp/cham2 28[root@cham2 tmp]# ls 292.txt cham chamlinux user1 30321321 cham11 ks-script-JG2UJk yum.log 313.txt cham2 systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy 32[root@cham2 tmp]# ln -s yum.log chamlinux.log 33[root@cham2 tmp]# ls -l 34总用量 16 35-rw-r--r-- 1 root root 2 1024 21:21 2.txt 36-rwxrwxrwx 1 cham cham 6 1026 20:02 321321 37-rwx------ 1 root root 0 1025 15:24 3.txt 38-rwxrwxrwx 1 cham cham 1 1026 16:48 cham 39drwxrwxrwx 2 cham cham 6 1026 16:59 cham11 40drw-r--r-x 2 user1 cham 19 1025 15:41 cham2 41drwxr-xr-x 4 root root 28 1024 12:58 chamlinux 42lrwxrwxrwx 1 root root 7 1026 20:36 chamlinux.log -> yum.log 43-rwx------. 1 root root 836 1019 07:00 ks-script-JG2UJk 44drwx------ 3 root root 17 1024 12:21 systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy 45drwxrwxrwx 2 user1 user1 6 1026 16:27 user1 46-rw-------. 1 user1 root 0 1019 06:55 yum.log 47[root@cham2 tmp]# mv chamlinux.log /root/111/ 48[root@cham2 tmp]# cd /root/111/ 49[root@cham2 111]# ls 5012.tx~ 12.txt 12_txt.swp 222 4913 cham3 chamlinux.log yum.log 51[root@cham2 111]# ls -l 52总用量 16 53-rw-r--r-- 1 root root 0 1025 17:20 12.tx~ 54-rw-r--r-- 1 root root 195 1025 17:23 12.txt 55-rw-r--r-- 1 root root 12288 1025 17:20 12_txt.swp 56drwxr-xr-x 2 root root 6 1025 17:16 222 57-rw-r--r-- 1 root root 0 1025 17:20 4913 58lrwxrwxrwx 1 root root 10 1026 20:34 cham3 -> /tmp/cham2 59lrwxrwxrwx 1 root root 7 1026 20:36 chamlinux.log -> yum.log 60lrwxrwxrwx 1 root root 12 1026 20:32 yum.log -> /tmp/yum.log 61[root@cham2 111]# cd /root/ 62[root@cham2 ~]# ls 63111 11.txt 123 12.txt 1.txt 22.txt 234 2.txt anaconda-ks.cfg.1 64[root@cham2 ~]# mv 111/chamlinux.log 123/ . 65[root@cham2 ~]# cd 123 66[root@cham2 123]# ls -l 67总用量 0 68lrwxrwxrwx 1 root root 7 1026 20:36 chamlinux.log -> yum.log 69[root@cham2 123]# touch yum.log 70[root@cham2 123]# ls -l 71总用量 0 72lrwxrwxrwx 1 root root 7 1026 20:36 chamlinux.log -> yum.log 73-rw-r--r-- 1 root root 0 1026 20:39 yum.log 74[root@cham2 123]# ls 75chamlinux.log yum.log 76[root@cham2 123]# rm -f yum.log 77[root@cham2 123]# mv ../111/yum.log . 移动上级目录到当前目录 78[root@cham2 123]# ls -l 79总用量 0 80lrwxrwxrwx 1 root root 7 1026 20:36 chamlinux.log -> yum.log 81lrwxrwxrwx 1 root root 12 1026 20:32 yum.log -> /tmp/yum.log 82[root@cham2 123]#
  • 用 #hf -h 查看分区的大小和使用情况,可以看出/root用户下的空间大小所剩不多,而 /目录的空间很大。
    QQ截图20171026233249.png
    比如/root下有一个 /root/dl.log 日志文件,当dl.log日志文件不停的写入日志时,所占空间是比较大的,这时候我们可以把dl.log软链接到/目录 具体操作如下。

    #cp /boot/dl.log /dl.log
    #rm -rf /boot/dl.log
    #ln -s /dl.log /boot/dl.log

上述命令说明:
1.把 /boot 下的 dl.log 日志拷贝到/目录下。
2.删除 /boot 下的 dl.log 日志。
3.把 / 目录下的 /dl.log 软链接到 /boot/dl.log 这样的话,dl.log在日志的时候,依然写到了/boot/dl.log下。

软链接总结

  1. 当我们建立软链接的时候,目的文件不可以存在,否则建立不成功。
  2. 所有软链接本身就只能是一个文件!这个文件可以指向目录也可以指向文件。
  3. 当我们建立软链接的时候,一般情况下都是绝对路径。如果建立一个相对路径的软链接,会有弊端!当我们把所有的文件拷贝到另一台机器上,会发现源文件不存在。

硬链接

硬链接: 也即“hard link”,其本质为现有文件的另一个名字,因此硬链接和原文件是无法区分的。从技术上讲,它们共享相同的inode,而inode几乎包含文件的所有信息,包括指向数据块的直接/间接指针。

硬链接不支持目录,仅支持文件,不能跨分区,可删除,因为还有其他文件使用了inode  

  1. 创建一个文件,这个文件和另外一个文件的inode号一样,那么这两个文件相互为硬链接文件。
  2. 只能对文件做硬链接,不能对目录做硬链接。
  3. 不能跨系统分区创建硬链接。
  4. 只能对已存在的文件进行创建。
  5. 删除一个硬链接文件并不影响其他有相同inode号的文件。
1[root@cham2 ~]# ln 1.txt 1_heard.txt 2[root@cham2 ~]# ln -s 1.txt 1_sorft 3[root@cham2 ~]# ls -l 4总用量 16 5drwxrwxr-- 3 root root 126 1026 20:41 111 6-rw-rw-r-- 1 root root 135 1025 17:44 11.txt 7drwxr-xr-x 2 root root 42 1026 20:41 123 8-rw-r--r-- 1 root root 65 1025 17:20 12.txt 9-rw-r--r-- 2 root root 0 1025 17:31 1_heard.txt 10lrwxrwxrwx 1 root root 5 1026 21:31 1_sorft -> 1.txt 11-rw-r--r-- 2 root root 0 1025 17:31 1.txt 12-rw-r--r-- 1 root root 0 1025 17:07 22.txt 13drwxrwxr-x 4 root user1 64 1026 14:09 234 14-rwx------ 1 root root 1008 1025 16:41 2.txt 15-rw-------. 1 root root 1422 1019 07:00 anaconda-ks.cfg.1 16[root@cham2 ~]# ls -l 17总用量 16 18drwxrwxr-- 3 root root 126 1026 20:41 111 19-rw-rw-r-- 1 root root 135 1025 17:44 11.txt 20drwxr-xr-x 2 root root 42 1026 20:41 123 21-rw-r--r-- 1 root root 65 1025 17:20 12.txt 22-rw-r--r-- 2 root root 0 1025 17:31 1_heard.txt 23lrwxrwxrwx 1 root root 5 1026 21:31 1_sorft -> 1.txt 24-rw-r--r-- 2 root root 0 1025 17:31 1.txt 25-rw-r--r-- 1 root root 0 1025 17:07 22.txt 26drwxrwxr-x 4 root user1 64 1026 14:09 234 27-rwx------ 1 root root 1008 1025 16:41 2.txt 28-rw-r--r-- 2 root root 0 1026 21:33 88_heard.txt 29lrwxrwxrwx 1 root root 6 1026 21:34 88_sorft.txt -> 88.txt 30-rw-r--r-- 2 root root 0 1026 21:33 88.txt 31-rw-------. 1 root root 1422 1019 07:00 anaconda-ks.cfg.1 32[root@cham2 ~]# ls -i 3333575631 111 33575641 1_heard.txt 16783440 234 33575648 88.txt 3433575016 11.txt 33575647 1_sorft 16777669 2.txt 33574987 anaconda-ks.cfg.1 35 30154 123 33575641 1.txt 33575648 88_heard.txt 3633575640 12.txt 33575633 22.txt 33575642 88_sorft.txt 37[root@cham2 ~]# rm -f 1.txt 38[root@cham2 ~]# ls -l 39总用量 16 40drwxrwxr-- 3 root root 126 1026 20:41 111 41-rw-rw-r-- 1 root root 135 1025 17:44 11.txt 42drwxr-xr-x 2 root root 42 1026 20:41 123 43-rw-r--r-- 1 root root 65 1025 17:20 12.txt 44-rw-r--r-- 1 root root 0 1025 17:31 1_heard.txt 45lrwxrwxrwx 1 root root 5 1026 21:31 1_sorft -> 1.txt 46-rw-r--r-- 1 root root 0 1025 17:07 22.txt 47drwxrwxr-x 4 root user1 64 1026 14:09 234 48-rwx------ 1 root root 1008 1025 16:41 2.txt 49-rw-r--r-- 2 root root 0 1026 21:33 88_heard.txt 50lrwxrwxrwx 1 root root 6 1026 21:34 88_sorft.txt -> 88.txt 51-rw-r--r-- 2 root root 0 1026 21:33 88.txt 52-rw-------. 1 root root 1422 1019 07:00 anaconda-ks.cfg.1 53[root@cham2 ~]# ls -i 1_heard.txt 5433575641 1_heard.txt 55[root@cham2 ~]# ln 111 cham111 56ln: "111": 不允许将硬链接指向目录 57[root@cham2 ~]# df -h 58文件系统 容量 已用 可用 已用% 挂载点 59/dev/sda3 17G 1.1G 16G 7% / 60devtmpfs 483M 0 483M 0% /dev 61tmpfs 493M 0 493M 0% /dev/shm 62tmpfs 493M 6.8M 486M 2% /run 63tmpfs 493M 0 493M 0% /sys/fs/cgroup 64/dev/sda1 187M 109M 79M 59% /boot 65tmpfs 99M 0 99M 0% /run/user/0 66[root@cham2 ~]# ls -i /boot/ 67 71 config-3.10.0-514.el7.x86_64 68 67 grub 69131136 grub2 70 76 initramfs-0-rescue-0f3cf64915c04d4e93e4dae2684b907d.img 71 75 initramfs-3.10.0-514.el7.x86_64.img 72194501 initramfs-3.10.0-514.el7.x86_64kdump.img 73 74 initrd-plymouth.img 74 72 symvers-3.10.0-514.el7.x86_64.gz 75 70 System.map-3.10.0-514.el7.x86_64 76 77 vmlinuz-0-rescue-0f3cf64915c04d4e93e4dae2684b907d 77 73 vmlinuz-3.10.0-514.el7.x86_64 78[root@cham2 ~]# ln /boot/config-3.10.0-514.el7.x86_64 /tmp/config.1 79ln: 无法创建硬链接"/tmp/config.1" => "/boot/config-3.10.0-514.el7.x86_64": 无效的跨设备连接 80[root@cham2 ~]# ls /boot/ 81config-3.10.0-514.el7.x86_64 82grub 83grub2 84initramfs-0-rescue-0f3cf64915c04d4e93e4dae2684b907d.img 85initramfs-3.10.0-514.el7.x86_64.img 86initramfs-3.10.0-514.el7.x86_64kdump.img 87initrd-plymouth.img 88symvers-3.10.0-514.el7.x86_64.gz 89System.map-3.10.0-514.el7.x86_64 90vmlinuz-0-rescue-0f3cf64915c04d4e93e4dae2684b907d 91vmlinuz-3.10.0-514.el7.x86_64 92[root@cham2 ~]# ls / 93bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var 94[root@cham2 ~]# ls -i / 95 95 bin 16777281 etc 82 lib64 33584771 opt 8124 run 1 sys 50331713 var 96 64 boot 50331740 home 83 media 1 proc 99 sbin 16777288 tmp 97 1026 dev 98 lib 16777681 mnt 33574977 root 50331741 srv 33584746 usr 98[root@cham2 ~]#
  1. 硬链接的inode和源文件的inode是一致的。

  2. 硬链接的内存大小和源文件的内存大小是一致的。

  3. 硬链接和源文件的时间也是相同的。
    QQ截图20171027090701.png

  4. 硬链接与软链接区别:

    硬链接:

  5. 当系统要读取一个文件时,就会先去读 inode table, 一个文件对应一个 inode, 然后再根据 inode 中的信息到块区域去将数据取出来。硬链接是直接使用了和源文件相同的 inode, 硬链接文件直接链接到文件放置的块区域。 也就是说,进行硬链接时实际上该文件内容没有任何变化, 只是制定了相同的 inode。

  6. 创建硬链接会增加额外的记录项以引用文件,对应于同一文件系统上一个物理文件每个文件引用相同的 inode 号 创建时链接数递增

  7. 删除文件时:rm 命令递减计数的链接,文件要存在,至少有一个链接数当链接数为零时,该文件被删除

  8. 不能跨越驱动器或分区
    语法 : ln filename [linkname ]

  9. 软链接:

  10. 软链接是建立一个独立的文件, 而这个文件的作用是当读取这个链接文件时,他会把读取的行为转发到该文件所 链接 的文件上。

  11. 一个符号链接指向另一个文件。

  12. 可以对目录或文件进行软链接。

  13. 可以跨分区

  14. 指向的是另一个文件的路径;其大小为指向的路径字符串的长度。

  15. 不增加或减少目标文件inode 的引用计数。
    语法: ln -s filename [linkname]

点赞
收藏

评论区

加载中...

相关推荐

Linux 文件权限

权限管理:指的是操作文件权限超管(root)用户不受普通权限的限制。文件权限分类写内容的权限可写r4写内容的权限可写w2执行的权限可执行x1权限位的概念rw  rw   rw 属主 属组  其他人设置权限的命令格式chown\ 大家缺乏机器练手的话,可以去3A服务器看看!

linux 文件权限

当我们部署皕杰报表时,有时需要对文件赋予权限。linux文件对不同用户可以分别设置权限,管理员(root)有所有权限。文件权限解释查看路径下所有文件的命令:ll或者lsl查询结果列出了当前路径下的文件和文件夹,每行数据以相同格式显示。第一个字符常见的两种,d和,d表示文件夹,表示文件。还有l表示链接,软链接比较常见,如图:从第二个字符开始,每三个一组

unity3D

3.用root用户给破解文件权限shell命令:sudosu然后输入密码(密码为当前用户密码)!(http://static.oschina.net/uploads/img/201504/27103058_2HAw.png) 接着更改破解文件Unity的所属用户,以及给Unity\_v4.x.ulf文件执行权限

Linux中的特殊权限

Linux中除了普通权限之外,还有三个特殊权限。      SUID::以文件的所属用户执行,而非执行文件的用户,多用于可执行文件,设置suid后,在权限位中,所属用户的最后一个权限为变为s,添加SUID权限可用“s”表示。    例如:passwdadam@ultraera ~$ which passwd/usr/b

Linux下的用户管理,kali更换源,xshell

Linux下的用户管理用户信息保存/etc/passwd,一般用户都有读的权限真正的用户:修改密码,可以登录伪用户:应用程序在运行时会以某种权限来运行,并使用程序名来表示该程序,并存在/etc/passwd文件中,伪用户不可以直接登录pentest(用户名):x(密码):1000(UID):1000(GID):pentest,,,(

Linux 用户及权限详解

Linux用户及权限详解用户,组,权限安全上下文(securecontext);权限:r,w,x文件:r:可读,可以使用类似cat等命令查看文件内容。w:可写,可以编辑或删除此文件;x:可执行,eXcutable,可以命令提示符下当做命令提交给内核运行;