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

set_uidnode

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

实例:root用户windows

[root@cham2 ~]# passwd root   ^C
[root@cham2 ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd
[root@cham2 ~]# set_uid   ^C
[root@cham2 ~]# passwd ^C
[root@cham2 ~]# ls /etc/shadow
/etc/shadow
[root@cham2 ~]# ls -l !$
ls -l /etc/shadow
---------- 1 root root 689 10月 25 16:11 /etc/shadow
[root@cham2 ~]# w
 13:28:19 up 1 day,  1:02,  2 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      二12   25:52m  0.21s  0.21s -bash
root     pts/1    192.168.230.1    12:22    3.00s  0.05s  0.00s w
[root@cham2 ~]# who
who     whoami  
[root@cham2 ~]# whoami
root
[root@cham2 ~]# rws ^C
[root@cham2 ~]# ls -l /usr/bin/ls
-rwxr-xr-x. 1 root root 117656 11月  6 2016 /usr/bin/ls
[root@cham2 ~]# chmod u+s /usr/bin/ls
[root@cham2 ~]# ls -l /usr/bin/ls
-rwsr-xr-x. 1 root root 117656 11月  6 2016 /usr/bin/ls
[root@cham2 ~]# chmod u-s /usr/bin/ls
[root@cham2 ~]# chmod u=rws /usr/bin/ls
[root@cham2 ~]# ls -l /usr/bin/ls
-rwSr-xr-x. 1 root root 117656 11月  6 2016 /usr/bin/ls
[root@cham2 ~]# chmod u+x /usr/bin/ls
[root@cham2 ~]# ls -l /usr/bin/ls
-rwsr-xr-x. 1 root root 117656 11月  6 2016 /usr/bin/ls
[root@cham2 ~]#

user用户:chambash

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

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

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

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

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

实例:code

[root@cham2 ~]# ls -l /usr/bin/ls
-rwxr-xr-x. 1 root root 117656 11月  6 2016 /usr/bin/ls
[root@cham2 ~]# chmod g+s /usr/bin/ls
[root@cham2 ~]# ls -l /usr/bin/ls
-rwxr-sr-x. 1 root root 117656 11月  6 2016 /usr/bin/ls                所属组中的x变成了s

切换user cham
[cham@cham2 ~]$ ls -ld /root/
dr-xr-x---. 6 root root 284 10月 25 17:31 /root/
[cham@cham2 ~]$ ls /root/
111  11.txt  123  12.txt  1.txt  22.txt  234  2.txt  anaconda-ks.cfg.1
[cham@cham2 ~]$ ls -ld /root/
dr-xr-x---. 6 root root 284 10月 25 17:31 /root/

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

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

[root@cham2 ~]# chmod g+s 234                给234目录加上set gid 
[root@cham2 ~]# ls -ld 234                   
drwxrwsr-x 2 root root 6 10月 25 16:41 234   所属组多了个s
[root@cham2 ~]# chown :user1 234             把234的所属组改为user1
[root@cham2 ~]# ls -ld 234                   看一下
drwxrwsr-x 2 root user1 6 10月 25 16:41 234  
[root@cham2 ~]# touch 234/chamlinux          新建一个文件
[root@cham2 ~]# ls -l 234
总用量 0
-rw-r--r-- 1 root user1 0 10月 26 14:07 chamlinux
[root@cham2 ~]# mkdir 234/ch                 234下面新建一个子目录
[root@cham2 ~]# ls -l 234/                   所属组都是user1
总用量 0
drwxr-sr-x 2 root user1 6 10月 26 14:08 ch
-rw-r--r-- 1 root user1 0 10月 26 14:07 chamlinux
[root@cham2 ~]# chmod g-s 234                去掉set gid
[root@cham2 ~]# touch 234/chamlinux111       234新建子文件
[root@cham2 ~]# !ls                          看一下
ls -l 234/
总用量 0
drwxr-sr-x 2 root user1 6 10月 26 14:08 ch
-rw-r--r-- 1 root user1 0 10月 26 14:07 chamlinux
-rw-r--r-- 1 root root  0 10月 26 14:09 chamlinux111   所属组是root 
[root@cham2 ~]# mkdir 234/ch1                新建子目录               
[root@cham2 ~]# !ls                          看一下
ls -l 234/
总用量 0
drwxr-sr-x 2 root user1 6 10月 26 14:08 ch
drwxr-xr-x 2 root root  6 10月 26 14:09 ch1   所属组是root
-rw-r--r-- 1 root user1 0 10月 26 14:07 chamlinux
-rw-r--r-- 1 root root  0 10月 26 14:09 chamlinux111
[root@cham2 ~]# 
[root@cham2 ~]# 
[root@cham2 ~]# ls -ld 234
drwxrwxr-x 4 root user1 64 10月 26 14:09 234

stick_bit

 能够理解为防删除位。文件是否能够被某用户删除,主要取决于该文件所在的目录是否对该用户具备写权限。若是没有写权限,则这个目录下的全部文件都不能删除,同时也不能添加新的文件。若是但愿用户可以添加文件但不能删除该目录下其余用户的文件,则能够对父目录增长该权限。设置该权限后,就算用户对目录具备写权限,也不能删除其余用户的文件。
**做用: * 防止别人删除本身的文件,root用户除外。

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

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

[cham@cham2 ~]$ whoami
cham
[cham@cham2 ~]$ cd /tmp/
[cham@cham2 tmp]$ ls
2.txt  cham2      ks-script-JG2UJk                                                          yum.log
3.txt  chamlinux  systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy
[cham@cham2 tmp]$ touch cham
[cham@cham2 tmp]$ ls -l
总用量 8
-rw-r--r--  1 root  root   2 10月 24 21:21 2.txt
-rwx------  1 root  root   0 10月 25 15:24 3.txt
-rw-rw-r--  1 cham  cham   0 10月 26 16:20 cham
drw-r--r-x  2 user1 cham  19 10月 25 15:41 cham2
drwxr-xr-x  4 root  root  28 10月 24 12:58 chamlinux
-rwx------. 1 root  root 836 10月 19 07:00 ks-script-JG2UJk
drwx------  3 root  root  17 10月 24 12:21 systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy
-rw-------. 1 user1 root   0 10月 19 06:55 yum.log
[cham@cham2 tmp]$ vi cham
[cham@cham2 tmp]$ chmod 777 cham
[cham@cham2 tmp]$ ls -l
总用量 12
-rw-r--r--  1 root  root   2 10月 24 21:21 2.txt
-rwx------  1 root  root   0 10月 25 15:24 3.txt
-rwxrwxrwx  1 cham  cham  55 10月 26 16:20 cham
drw-r--r-x  2 user1 cham  19 10月 25 15:41 cham2
drwxr-xr-x  4 root  root  28 10月 24 12:58 chamlinux
-rwx------. 1 root  root 836 10月 19 07:00 ks-script-JG2UJk
drwx------  3 root  root  17 10月 24 12:21 systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy
-rw-------. 1 user1 root   0 10月 19 06:55 yum.log
[cham@cham2 tmp]$ ls -l cham
-rwxrwxrwx 1 cham cham 55 10月 26 16:20 cham




[user1@cham2 tmp]$ cd /tmp/
[user1@cham2 tmp]$ ls
2.txt  cham2             systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy
3.txt  chamlinux         yum.log
cham   ks-script-JG2UJk
[user1@cham2 tmp]$ vi cham      user1能够修改
[user1@cham2 tmp]$ rm -f cham   但不能删除
rm: 没法删除"cham": 不容许的操做

实例:

[user1@cham2 tmp]$ mkdir user1
[user1@cham2 tmp]$ chmod 777 user1
[user1@cham2 tmp]$ ls -l
总用量 12
-rw-r--r--  1 root  root    2 10月 24 21:21 2.txt
-rwx------  1 root  root    0 10月 25 15:24 3.txt
-rwxrwxrwx  1 cham  cham   60 10月 26 16:22 cham
drw-r--r-x  2 user1 cham   19 10月 25 15:41 cham2
drwxr-xr-x  4 root  root   28 10月 24 12:58 chamlinux
-rwx------. 1 root  root  836 10月 19 07:00 ks-script-JG2UJk
drwx------  3 root  root   17 10月 24 12:21 systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy
drwxrwxrwx  2 user1 user1   6 10月 26 16:24 user1
-rw-------. 1 user1 root    0 10月 19 06:55 yum.log
[user1@cham2 tmp]$ cd uer1
-bash: cd: uer1: 没有那个文件或目录
[user1@cham2 tmp]$ cd user1
[user1@cham2 user1]$ ls -l
总用量 0
-rw-rw-r-- 1 cham cham 0 10月 26 16:25 1.txt
drwxrwxr-x 2 cham cham 6 10月 26 16:25 456



[cham@cham2 tmp]$ cd user1
[cham@cham2 user1]$ touch 1.txt
[cham@cham2 user1]$ mkdir 456
[cham@cham2 user1]$ ls
1.txt  456
[cham@cham2 user1]$ ls -l
总用量 0
-rw-rw-r-- 1 cham cham 0 10月 26 16:25 1.txt
drwxrwxr-x 2 cham cham 6 10月 26 16:25 456



[user1@cham2 user1]$ rm -f 1.txt
[user1@cham2 user1]$ rm -r 456
rm:是否删除有写保护的目录 "456"?y
[user1@cham2 user1]$ ls
[user1@cham2 user1]$ ls -l
总用量 0
[user1@cham2 user1]$ pwd
/tmp/user1



[cham@cham2 tmp]$ mkdir cham11
[cham@cham2 tmp]$ chmod 777 cham11
[cham@cham2 tmp]$ ls -l
总用量 12
-rw-r--r--  1 root  root    2 10月 24 21:21 2.txt
-rwx------  1 root  root    0 10月 25 15:24 3.txt
-rwxrwxrwx  1 cham  cham    1 10月 26 16:48 cham
drwxrwxrwx  2 cham  cham    6 10月 26 16:58 cham11
drw-r--r-x  2 user1 cham   19 10月 25 15:41 cham2
drwxr-xr-x  4 root  root   28 10月 24 12:58 chamlinux
-rwx------. 1 root  root  836 10月 19 07:00 ks-script-JG2UJk
drwx------  3 root  root   17 10月 24 12:21 systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy
drwxrwxrwx  2 user1 user1   6 10月 26 16:27 user1
-rw-------. 1 user1 root    0 10月 19 06:55 yum.log



[user1@cham2 tmp]$ cd cham11
[user1@cham2 cham11]$ touch 123
[user1@cham2 cham11]$ mkdir 456
[user1@cham2 cham11]$ ls
123  456


[cham@cham2 tmp]$ cd cham11
[cham@cham2 cham11]$ rm -v 123
rm:是否删除有写保护的普通空文件 "123"?y
已删除"123"
[cham@cham2 cham11]$ rm -v 456
rm: 没法删除"456": 是一个目录
[cham@cham2 cham11]$ rm -rv 456
rm:是否删除有写保护的目录 "456"?y
已删除目录:"456"

总结: **一个目录下的文件能不能删除,不取决于这个目录下的文件的权限,而是取决于这个文件所在目录的权限,是否可写。**因此当一个目录的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 查看分区的大小是使用状况的时候,挂载点那一行就是分区。) 
  1. 命令语法: ln[-s][来源文件][目的文件]
  2. 命令描述: 创建软连接
  3. 命令参数: -s 创建软连接时,必需要加上 -s 选项,若是不加 -s 选项就是创建硬连接。

实例

ln -s 源文件 目标文件

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

实例:

[root@cham2 tmp]# ln -s /tmp/yum.log /root/111/yum.log
[root@cham2 tmp]# ls -l /root/111/
总用量 16
-rw-r--r-- 1 root root     0 10月 25 17:20 12.tx~
-rw-r--r-- 1 root root   195 10月 25 17:23 12.txt
-rw-r--r-- 1 root root 12288 10月 25 17:20 12_txt.swp
drwxr-xr-x 2 root root     6 10月 25 17:16 222
-rw-r--r-- 1 root root     0 10月 25 17:20 4913
lrwxrwxrwx 1 root root    12 10月 26 20:32 yum.log -> /tmp/yum.log
[root@cham2 tmp]# ls -l
总用量 16
-rw-r--r--  1 root  root    2 10月 24 21:21 2.txt
-rwxrwxrwx  1 cham  cham    6 10月 26 20:02 321321
-rwx------  1 root  root    0 10月 25 15:24 3.txt
-rwxrwxrwx  1 cham  cham    1 10月 26 16:48 cham
drwxrwxrwx  2 cham  cham    6 10月 26 16:59 cham11
drw-r--r-x  2 user1 cham   19 10月 25 15:41 cham2
drwxr-xr-x  4 root  root   28 10月 24 12:58 chamlinux
-rwx------. 1 root  root  836 10月 19 07:00 ks-script-JG2UJk
drwx------  3 root  root   17 10月 24 12:21 systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy
drwxrwxrwx  2 user1 user1   6 10月 26 16:27 user1
-rw-------. 1 user1 root    0 10月 19 06:55 yum.log
[root@cham2 tmp]# 
[root@cham2 tmp]# ln -s /tmp/cham2  /root/111/cham3
[root@cham2 tmp]# ls -l !$
ls -l /root/111/cham3
lrwxrwxrwx 1 root root 10 10月 26 20:34 /root/111/cham3 -> /tmp/cham2
[root@cham2 tmp]# ls
2.txt   cham    chamlinux                                                                 user1
321321  cham11  ks-script-JG2UJk                                                          yum.log
3.txt   cham2   systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy
[root@cham2 tmp]# ln -s yum.log chamlinux.log
[root@cham2 tmp]# ls -l
总用量 16
-rw-r--r--  1 root  root    2 10月 24 21:21 2.txt
-rwxrwxrwx  1 cham  cham    6 10月 26 20:02 321321
-rwx------  1 root  root    0 10月 25 15:24 3.txt
-rwxrwxrwx  1 cham  cham    1 10月 26 16:48 cham
drwxrwxrwx  2 cham  cham    6 10月 26 16:59 cham11
drw-r--r-x  2 user1 cham   19 10月 25 15:41 cham2
drwxr-xr-x  4 root  root   28 10月 24 12:58 chamlinux
lrwxrwxrwx  1 root  root    7 10月 26 20:36 chamlinux.log -> yum.log
-rwx------. 1 root  root  836 10月 19 07:00 ks-script-JG2UJk
drwx------  3 root  root   17 10月 24 12:21 systemd-private-5ec76fd91759498b901e85cba2554a24-vmtoolsd.service-H1l4Cy
drwxrwxrwx  2 user1 user1   6 10月 26 16:27 user1
-rw-------. 1 user1 root    0 10月 19 06:55 yum.log
[root@cham2 tmp]# mv chamlinux.log /root/111/
[root@cham2 tmp]# cd /root/111/
[root@cham2 111]# ls
12.tx~  12.txt  12_txt.swp  222  4913  cham3  chamlinux.log  yum.log
[root@cham2 111]# ls -l
总用量 16
-rw-r--r-- 1 root root     0 10月 25 17:20 12.tx~
-rw-r--r-- 1 root root   195 10月 25 17:23 12.txt
-rw-r--r-- 1 root root 12288 10月 25 17:20 12_txt.swp
drwxr-xr-x 2 root root     6 10月 25 17:16 222
-rw-r--r-- 1 root root     0 10月 25 17:20 4913
lrwxrwxrwx 1 root root    10 10月 26 20:34 cham3 -> /tmp/cham2
lrwxrwxrwx 1 root root     7 10月 26 20:36 chamlinux.log -> yum.log
lrwxrwxrwx 1 root root    12 10月 26 20:32 yum.log -> /tmp/yum.log
[root@cham2 111]# cd /root/
[root@cham2 ~]# ls
111  11.txt  123  12.txt  1.txt  22.txt  234  2.txt  anaconda-ks.cfg.1
[root@cham2 ~]# mv 111/chamlinux.log 123/ .
[root@cham2 ~]# cd 123
[root@cham2 123]# ls -l
总用量 0
lrwxrwxrwx 1 root root 7 10月 26 20:36 chamlinux.log -> yum.log
[root@cham2 123]# touch yum.log
[root@cham2 123]# ls -l
总用量 0
lrwxrwxrwx 1 root root 7 10月 26 20:36 chamlinux.log -> yum.log
-rw-r--r-- 1 root root 0 10月 26 20:39 yum.log
[root@cham2 123]# ls
chamlinux.log  yum.log
[root@cham2 123]# rm -f yum.log
[root@cham2 123]# mv ../111/yum.log .             移动上级目录到当前目录
[root@cham2 123]# ls -l
总用量 0
lrwxrwxrwx 1 root root  7 10月 26 20:36 chamlinux.log -> yum.log
lrwxrwxrwx 1 root root 12 10月 26 20:32 yum.log -> /tmp/yum.log
[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号的文件。
[root@cham2 ~]# ln 1.txt 1_heard.txt
[root@cham2 ~]# ln -s 1.txt 1_sorft
[root@cham2 ~]# ls -l
总用量 16
drwxrwxr--  3 root root   126 10月 26 20:41 111
-rw-rw-r--  1 root root   135 10月 25 17:44 11.txt
drwxr-xr-x  2 root root    42 10月 26 20:41 123
-rw-r--r--  1 root root    65 10月 25 17:20 12.txt
-rw-r--r--  2 root root     0 10月 25 17:31 1_heard.txt
lrwxrwxrwx  1 root root     5 10月 26 21:31 1_sorft -> 1.txt
-rw-r--r--  2 root root     0 10月 25 17:31 1.txt
-rw-r--r--  1 root root     0 10月 25 17:07 22.txt
drwxrwxr-x  4 root user1   64 10月 26 14:09 234
-rwx------  1 root root  1008 10月 25 16:41 2.txt
-rw-------. 1 root root  1422 10月 19 07:00 anaconda-ks.cfg.1
[root@cham2 ~]# ls -l
总用量 16
drwxrwxr--  3 root root   126 10月 26 20:41 111
-rw-rw-r--  1 root root   135 10月 25 17:44 11.txt
drwxr-xr-x  2 root root    42 10月 26 20:41 123
-rw-r--r--  1 root root    65 10月 25 17:20 12.txt
-rw-r--r--  2 root root     0 10月 25 17:31 1_heard.txt
lrwxrwxrwx  1 root root     5 10月 26 21:31 1_sorft -> 1.txt
-rw-r--r--  2 root root     0 10月 25 17:31 1.txt
-rw-r--r--  1 root root     0 10月 25 17:07 22.txt
drwxrwxr-x  4 root user1   64 10月 26 14:09 234
-rwx------  1 root root  1008 10月 25 16:41 2.txt
-rw-r--r--  2 root root     0 10月 26 21:33 88_heard.txt
lrwxrwxrwx  1 root root     6 10月 26 21:34 88_sorft.txt -> 88.txt
-rw-r--r--  2 root root     0 10月 26 21:33 88.txt
-rw-------. 1 root root  1422 10月 19 07:00 anaconda-ks.cfg.1
[root@cham2 ~]# ls -i
33575631 111     33575641 1_heard.txt  16783440 234           33575648 88.txt
33575016 11.txt  33575647 1_sorft      16777669 2.txt         33574987 anaconda-ks.cfg.1
   30154 123     33575641 1.txt        33575648 88_heard.txt
33575640 12.txt  33575633 22.txt       33575642 88_sorft.txt
[root@cham2 ~]# rm -f 1.txt
[root@cham2 ~]# ls -l
总用量 16
drwxrwxr--  3 root root   126 10月 26 20:41 111
-rw-rw-r--  1 root root   135 10月 25 17:44 11.txt
drwxr-xr-x  2 root root    42 10月 26 20:41 123
-rw-r--r--  1 root root    65 10月 25 17:20 12.txt
-rw-r--r--  1 root root     0 10月 25 17:31 1_heard.txt
lrwxrwxrwx  1 root root     5 10月 26 21:31 1_sorft -> 1.txt
-rw-r--r--  1 root root     0 10月 25 17:07 22.txt
drwxrwxr-x  4 root user1   64 10月 26 14:09 234
-rwx------  1 root root  1008 10月 25 16:41 2.txt
-rw-r--r--  2 root root     0 10月 26 21:33 88_heard.txt
lrwxrwxrwx  1 root root     6 10月 26 21:34 88_sorft.txt -> 88.txt
-rw-r--r--  2 root root     0 10月 26 21:33 88.txt
-rw-------. 1 root root  1422 10月 19 07:00 anaconda-ks.cfg.1
[root@cham2 ~]# ls -i 1_heard.txt
33575641 1_heard.txt
[root@cham2 ~]# ln 111 cham111
ln: "111": 不容许将硬连接指向目录
[root@cham2 ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        17G  1.1G   16G    7% /
devtmpfs        483M     0  483M    0% /dev
tmpfs           493M     0  493M    0% /dev/shm
tmpfs           493M  6.8M  486M    2% /run
tmpfs           493M     0  493M    0% /sys/fs/cgroup
/dev/sda1       187M  109M   79M   59% /boot
tmpfs            99M     0   99M    0% /run/user/0
[root@cham2 ~]# ls -i /boot/
    71 config-3.10.0-514.el7.x86_64
    67 grub
131136 grub2
    76 initramfs-0-rescue-0f3cf64915c04d4e93e4dae2684b907d.img
    75 initramfs-3.10.0-514.el7.x86_64.img
194501 initramfs-3.10.0-514.el7.x86_64kdump.img
    74 initrd-plymouth.img
    72 symvers-3.10.0-514.el7.x86_64.gz
    70 System.map-3.10.0-514.el7.x86_64
    77 vmlinuz-0-rescue-0f3cf64915c04d4e93e4dae2684b907d
    73 vmlinuz-3.10.0-514.el7.x86_64
[root@cham2 ~]# ln /boot/config-3.10.0-514.el7.x86_64 /tmp/config.1
ln: 没法建立硬连接"/tmp/config.1" => "/boot/config-3.10.0-514.el7.x86_64": 无效的跨设备链接
[root@cham2 ~]# ls /boot/
config-3.10.0-514.el7.x86_64
grub
grub2
initramfs-0-rescue-0f3cf64915c04d4e93e4dae2684b907d.img
initramfs-3.10.0-514.el7.x86_64.img
initramfs-3.10.0-514.el7.x86_64kdump.img
initrd-plymouth.img
symvers-3.10.0-514.el7.x86_64.gz
System.map-3.10.0-514.el7.x86_64
vmlinuz-0-rescue-0f3cf64915c04d4e93e4dae2684b907d
vmlinuz-3.10.0-514.el7.x86_64
[root@cham2 ~]# ls /
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@cham2 ~]# ls -i /
      95 bin   16777281 etc         82 lib64  33584771 opt       8124 run          1 sys  50331713 var
      64 boot  50331740 home        83 media         1 proc        99 sbin  16777288 tmp
    1026 dev         98 lib   16777681 mnt    33574977 root  50331741 srv   33584746 usr
[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]
相关文章
相关标签/搜索