博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux基础(day9)
阅读量:7062 次
发布时间:2019-06-28

本文共 14260 字,大约阅读时间需要 47 分钟。

hot3.png

2.18 特殊权限set_uid

set_uid

例子 -rwsr-xr-x.中的s的权限

[root@hf-01 ~]# which passwd/usr/bin/passwd[root@hf-01 ~]# ls -l /usr/bin/passwd        会发现passwd文件含有特殊的s权限-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd

set_uid介绍

  • set_uid(s):该权限针对二进制可执行文件使文件在执行阶段具有文件所有者的权限。
    • 可以使用chmod u+(-)s 【二进制文件名】 来设置权限。
  • 相当于set_uid设置user的权限位。
[root@hf-01 ~]# ls /etc/shadow/etc/shadow     改用户密码的文件[root@hf-01 ~]# ls -l !$    会发现更改密码的文件权限为000ls -l /etc/shadow----------. 1 root root 665 10月 26 08:04 /etc/shadow

set_uid总结

  • set_uid命令,就是保证普通用户临时拥有该命令所有者的身份
  • 给一个文件设置set_uid拥有临时所有者的权限
    • 前提,是该文件必须是二进制文件,而且是一个可执行(x)的文件
      • 例如:ls,passwd这些文件就是二进制文件
      • 而像,1.txt去设置set_uid权限是没有意义的
    • 小写的s包括了x权限,大写的S表示没有x权限
[root@hf-01 ~]# ls -l /usr/bin/ls     这里想给ls命令加一个-rwxr-xr-x. 1 root root 117616 6月  10 2014 /usr/bin/ls然后复制SSH渠道,打开另一个终端2hf(1)下[root@hf-01 ~]# su - hanfeng        切换到普通用户hanfeng下去[hanfeng@hf-01 ~]$ whoami       来查看当前用户hanfeng[hanfeng@hf-01 ~]$ ls /root/    这时访问/root/目录,会提示没权限ls: 无法打开目录/root: 权限不够这时回到之前的终端下1hf(0)下[root@hf-01 ~]# chmod u+s /usr/bin/ls       给ls命令增加+s权限[root@hf-01 ~]# ls -l /usr/bin/ls           这时查看ls命令,会发现x变化为了s权限(小写的s包括了x权限,大写的S表示没有x权限)-rwsr-xr-x. 1 root root 117616 6月  10 2014 /usr/bin/ls在切换到另一个终端2hf(1)下[hanfeng@hf-01 ~]$ ls /root/        这时会看到有访问权限了,就是因为set_uid权限赋给ls。(当在其他用户下使用ls命令时,在执行过程中会以root身份来运行)11.txt  123  234  2.txt  33.txt  anaconda-ks.cfg.1  ha.txt  hf[hanfeng@hf-01 ~]$ ls -ld /root/dr-xr-x---. 5 root root 4096 10月 26 09:41 /root/回到终端1hf(0)下[root@hf-01 ~]# chmod u-s /usr/bin/ls   去除set_uid赋予给ls的权限

set_uid的写法

  • ls命令的绝对路径为 /usr/bin/ls
[root@hf-01 ~]# chmod u+s /usr/bin/ls       命令ls被赋予了s权限[root@hf-01 ~]# chmod u-s /usr/bin/ls       收回s权限[root@hf-01 ~]# chmod u=rws /usr/bin/ls     这也是赋予ls权限的方法,但是它缺少可执行的权限(小写的s包括了x权限,大写的S表示没有x权限)[root@hf-01 ~]# !ls     会发现这里显示的是大写Sls -l /usr/bin/ls-rwSr-xr-x. 1 root root 117616 6月  10 2014 /usr/bin/ls[root@hf-01 ~]# chmod u+x /usr/bin/ls       在这里再给它加上+x可执行的权限即可[root@hf-01 ~]# !ls     会发现这里显示的是小写sls -l /usr/bin/ls-rwsr-xr-x. 1 root root 117616 6月  10 2014 /usr/bin/ls[root@hf-01 ~]#
  • 目录可增加set_uid权限,但是基本没啥作用,目录基本不用去执行啥
  • set_uid权限本身的作用就是给一个普通用户的用户执行,临时拥有所有者的身份

2.19 特殊权限set_gid

set_gid

  • set_gid(s):可作用于文件(二进制可执行文件)和目录。
  • 相当于set_gid 设置group组的权限位。
  • 可以使用chmod g+(-) 【文件名/目录名】 来设置权限。
  • 也就是将标志s加到gid的x标志位,sgid用在目录上最多。

set_gid作用

- set_gid作用在文件上时,和set_uid效果一致,会使普通用户临时拥有所属组的身份
[root@hf-01 ~]# chmod u=rwx /usr/bin/ls     将ls命令权限恢复成默认初始权限[root@hf-01 ~]# !lsls -l /usr/bin/ls-rwxr-xr-x. 1 root root 117616 6月  10 2014 /usr/bin/ls[root@hf-01 ~]# chmod g+s /usr/bin/ls     设置set_gid权限[root@hf-01 ~]# !lsls -l /usr/bin/ls-rwxr-sr-x. 1 root root 117616 6月  10 2014 /usr/bin/ls在切换到另一个终端2hf(1)下[hanfeng@hf-01 ~]$ ls /root/    将set_gid权限赋给ls,当在其他用户下使用ls命令时,(因为ls的所属组是root,所以就会以root身份来执行)11.txt  123  234  2.txt  33.txt  anaconda-ks.cfg.1  ha.txt  hf[hanfeng@hf-01 ~]$ ls -ld /root/dr-xr-x---. 5 root root 4096 10月 26 09:41 /root/

set_gid用法——>目录

[root@hf-01 ~]# ls -l总用量 8-rw-r--r--. 1 root root   0 10月 26 08:39 11.txtdrwxr-xr-x. 2 root root   6 10月 26 08:39 123drwxrwxr-x. 2 root root   6 10月 26 08:57 234-rwxrwxrwx. 1 root root 924 10月 25 06:49 2.txt-rw-rw-r--. 1 root root   0 10月 26 08:56 33.txt-rw-------. 1 root root 973 8月  21 05:05 anaconda-ks.cfg.1-rw-rw-r--. 1 root root   0 10月 26 09:41 ha.txtdr-x--xr-x. 2 root root  18 10月 26 06:56 hf[root@hf-01 ~]# chmod g+s 234       更改234目录的set_gid权限[root@hf-01 ~]# ls -ld 234drwxrwsr-x. 2 root root 6 10月 26 08:57 234[root@hf-01 ~]# chown :hanfeng 234      再来更改234目录所属组的权限[root@hf-01 ~]# ls -ld 234drwxrwsr-x. 2 root hanfeng 6 10月 26 08:57 234[root@hf-01 ~]# touch 234/gurui         在目录234下新建文件gurui[root@hf-01 ~]# ls -l 234/      查看所有者和所有组总用量 0-rw-r--r--. 1 root hanfeng 0 10月 27 07:46 gurui[root@hf-01 ~]# mkdir 234/am            在目录234下新建目录am [root@hf-01 ~]# ls -l 234/总用量 0drwxr-sr-x. 2 root hanfeng 6 10月 27 07:47 am-rw-r--r--. 1 root hanfeng 0 10月 27 07:46 gurui[root@hf-01 ~]# chmod g-s 234       去除set_gid临时权限[root@hf-01 ~]# touch 234/gurui111  在234目录下新建gurui111文件[root@hf-01 ~]# !ls     发现在root用户下创建的文件,所有组默认都是rootls -l 234/总用量 0drwxr-sr-x. 2 root hanfeng 6 10月 27 07:47 am-rw-r--r--. 1 root hanfeng 0 10月 27 07:46 gurui-rw-r--r--. 1 root root    0 10月 27 07:48 gurui111[root@hf-01 ~]# mkdir 234/am1   在目录234下新建目录am1[root@hf-01 ~]# ls -l 234/  发现在root用户下创建的目录,所有组默认都是root总用量 0drwxr-sr-x. 2 root hanfeng 6 10月 27 07:47 amdrwxr-xr-x. 2 root root    6 10月 27 07:49 am1-rw-r--r--. 1 root hanfeng 0 10月 27 07:46 gurui-rw-r--r--. 1 root root    0 10月 27 07:48 gurui111
  • 当给一个目录设置了set_gid之后,再去这个目录下面创建子目录和子文件的时候,那这个子文件和子目录的所属组会跟着父级目录(就是刚刚创建的set_gid权限的目录)保持一致。

set_gid总结

  • set_gid这个权限的作用,他不仅仅可以作用在文件上,也可以作用在目录上
    • 当作用在文件上,和set_uid作用类似,可以让执行文件的普通用户临时拥有所属组的身份。
    • 当作用在目录上,在创建子目录和子文件的时候,子目录和子文件所属组和该目录的所属组保持一致

2.20 特殊权限stick_bit

stick_bit介绍

系统中的/tmp/目录是拥有stick_bit权限的[root@hf-01 ~]# ls -ld /tmp/drwxrwxrwt. 9 root root 4096 10月 27 05:14 /tmp/
  • 这drwxrwxrwt.里面的t(t里面包含x权限),就是stick_bit权限,
  • stick_bit(t):又叫做防删除位。只对目录有效,对文件无效。
    • 在/tmp/下有很多类似的文件,拥有777权限,说明任何一个用户都可对这个目录可写,并创建自己的文件
    [root@hf-01 ~]# cd /tmp/[root@hf-01 tmp]# lsaminglinux  amning  mysql.sock  yum.log
  • 相当于stick-bit设置others权限位。

stick_bit用法

在终端2hf(1)下[hanfeng@hf-01 ~]$ whoami   查看所属主hanfeng[hanfeng@hf-01 ~]$ cd /tmp/     切换到/tmp/目录下[hanfeng@hf-01 tmp]$ lsaminglinux  amning  mysql.sock  yum.log[hanfeng@hf-01 tmp]$ touch yunwei   新建文件yunwei[hanfeng@hf-01 tmp]$ ls -l  会看到文件yunwei的所属主和所属组都是hanfeng总用量 0drwxr-xr-x. 4 user1   hanfeng 39 10月 26 08:23 aminglinuxdrwxr-xr-x. 3 root    root    14 10月 25 06:29 amningsrwxrwxrwx. 1 mysql   mysql    0 10月 27 02:47 mysql.sock-rw-r--r--. 1 user1   root     0 10月 26 07:48 yum.log-rw-rw-r--. 1 hanfeng hanfeng  0 10月 27 08:40 yunwei[hanfeng@hf-01 tmp]$ vi yunwei  并可以编辑文件[hanfeng@hf-01 tmp]$ chmod 777 yunwei   将yunwei文件权限修改为777[hanfeng@hf-01 tmp]$ ls -l  会看到yunwei的权限变化为-rwxrwxrwx.总用量 4drwxr-xr-x. 4 user1   hanfeng 39 10月 26 08:23 aminglinuxdrwxr-xr-x. 3 root    root    14 10月 25 06:29 amningsrwxrwxrwx. 1 mysql   mysql    0 10月 27 02:47 mysql.sock-rw-r--r--. 1 user1   root     0 10月 26 07:48 yum.log-rwxrwxrwx. 1 hanfeng hanfeng 26 10月 27 08:41 yunwei这时在切换到1hf(0)下[root@hf-01 tmp]# whoami    查看所属主root[root@hf-01 tmp]# su - user1    切换到user1用户下[user1@hf-01 ~]$ cd /tmp/       切换到目录/tmp/下[user1@hf-01 tmp]$ ls       会发现可以查看到文件aminglinux  amning  mysql.sock  yum.log  yunwei[user1@hf-01 tmp]$ vi yunwei    也可以进行编辑[user1@hf-01 tmp]$ rm -f yunwei     不可以删除文件yunwei的rm: 无法删除"yunwei": 不允许的操作

所以说,这个stick_bit权限叫防删除位,只有有权限的用户(比如root)才可以删除,而其他的用户是根本无法删除掉的

stick_bit例子

  • 就是防止别人删除自己的文件(root用户除外)
在终端1hf(0)下[user1@hf-01 tmp]$ mkdir user1  新建目录user1[user1@hf-01 tmp]$ chmod 777 user1  并把权限修改为777[user1@hf-01 tmp]$ ls -l总用量 4drwxr-xr-x. 4 user1   hanfeng 39 10月 26 08:23 aminglinuxdrwxr-xr-x. 3 root    root    14 10月 25 06:29 amningsrwxrwxrwx. 1 mysql   mysql    0 10月 27 02:47 mysql.sockdrwxrwxrwx. 2 user1   user1    6 10月 27 08:57 user1        777权限,意味着任何用户都可以去写,可读,可执行-rw-r--r--. 1 user1   root     0 10月 26 07:48 yum.log-rwxrwxrwx. 1 hanfeng hanfeng 45 10月 27 08:43 yunwei切换到终端2hf(1)下[hanfeng@hf-01 tmp]$ cd user1   切换到目录user1下面[hanfeng@hf-01 user1]$ touch 1.txt  发现可以创建文件[hanfeng@hf-01 user1]$ mkdir 234    可以创建目录[hanfeng@hf-01 user1]$ ls -l总用量 0-rw-rw-r--. 1 hanfeng hanfeng 0 10月 27 09:03 1.txtdrwxrwxr-x. 2 hanfeng hanfeng 6 10月 27 09:03 234在切换到终端1hf(0)下[user1@hf-01 tmp]$ cd user1[user1@hf-01 user1]$ ls1.txt  234[user1@hf-01 user1]$ ls -l总用量 0-rw-rw-r--. 1 hanfeng hanfeng 0 10月 27 09:03 1.txtdrwxrwxr-x. 2 hanfeng hanfeng 6 10月 27 09:03 234[user1@hf-01 user1]$ rm -f 1.txt[user1@hf-01 user1]$ ls234[user1@hf-01 user1]$ rm -r 234rm:是否删除有写保护的目录 "234"?y[user1@hf-01 user1]$ ls[user1@hf-01 user1]$ pwd    /tmp/user1[user1@hf-01 user1]$ ls -ld .drwxrwxrwx. 2 user1 user1 6 10月 27 09:07

上述例子,这是因为这个目录,删除的这个文件所在的目录有没有写权限,而不是看删除的文件本身的权限,user1目录下有1.txt文件,要想删除1.txt,看的不是1.txt文件的权限,而是看1.txt所在目录的权限,它所在的目录是user1,user1就是777,777是任何用户可编辑的,所以就可删除,而一旦我们加上了stick_bit权限

stick_bit总结

  • 文件是否可以被某用户删除,主要取决于该文件所在的目录是否对该用户具有写权限。如果没有写权限,则这个目录下的所有文件都不能删除,同时也不能添加新的文件。

  • 如果希望用户能够添加文件,但是不能删除该目录下其他用户的文件,则可以对该目录增加这个权限。

  • 设置该权限后,就算用户对目录具有写权限,也不能删除其他用户的文件。

  • 有时候,set-uid上的权限为大写的S,而不是小写的s。这是因为该文件没有x权限所致,不管是大写的S还是小写s,都表示它存在set-uid和set-gid权限。同理stick-bit也一样。

  • 当有特殊权限时,第一位数字可以是0、1(--t)、2(-s-)、3(-st)、4(s--)、5(s-t)、6(ss-)、7(sst),这里的“(---)”,分别指user、group、others的权限位(rwx rwx rwx)。 如:/tmp是--t,所以第一位为1,所以/tmp权限用数字表示为1777。

  • 文件的读写执行权限不要和目录的读写执行权限混淆。

  • 比如:一个文件设置了可写权限,但目录未设置可写权限,表示不能删除该文件,但文件内容是可编辑的。

  • 一个目录设置了可写权限,但目录下文件没有可写权限,表示可删除该文件,但该文件不能编辑。能否删除一个文件或者目录,看得是这个文件或目录所在的父目录的权限,能否删除和文件本身的权限无关。

2.21 软链接文件

软链接介绍

  • 链接文件分为硬链接文件(hard link)和软链接文件(symbolic link),两种链接的本质区别在于inode。
    • 软链接文件:是建立一个独立的文件,当读取这个链接文件时,它会把读取的行为转发到该文件所链接的文件上。做软链接尽量使用绝对路径。

例子

```[root@hf-01 ~]# ls -l /bin     这个/bin,就是一个软链接文件,真正是在/usr/bin/下lrwxrwxrwx. 1 root root 7 8月  21 05:03 /bin -> usr/bin[root@hf-01 ~]# /bin/ls11.txt	123  234  2.txt  33.txt  anaconda-ks.cfg.1  ha.txt  hf[root@hf-01 ~]# /usr/bin/ls     会发现和/bin/ls是一个软链接文件11.txt	123  234  2.txt  33.txt  anaconda-ks.cfg.1  ha.txt  hf```
  • 软链接其实就是在一个文件本身存了另一个文件目录的路径。链接文件的大小适合路径是有关系的,路径越长,那这个软链接文件越大
    在/lib64/目录中软链接文件最多[root@hf-01 ~]# ls -l /lib64/

软链接优势

软链接就像是windows中的快捷方式,可以很大程度的节省磁盘空间

案例分析

比如要找一个文件,必须要在/tmp/123/12/1.txt,而本身这个1.txt文件放到了/root/123/这个目录下而这个程序必须要在/tmp/12/目录下找到1.txt文件方法一:可以拷贝一份到该目录下,但若是文件更改后,就会继续要拷贝,所以很麻烦。方法二:给/root/123/1.txt做一个软链接

ln -s创建软链接

  • ln -s 源文件 软链接文件
[root@hf-01 ~]# ls11.txt  123  234  2.txt  33.txt  anaconda-ks.cfg.1  ha.txt  hf[root@hf-01 ~]# cd /tmp/[root@hf-01 tmp]# lsaminglinux  amning  mysql.sock  user1  yum.log  yunwei[root@hf-01 tmp]# ln -s /tmp/yum.log /root/123/yum.log[root@hf-01 tmp]# ls -l /root/123/      这样就形成了一个软链接文件总用量 0lrwxrwxrwx. 1 root root 12 10月 30 05:44 yum.log -> /tmp/yum.log

ln -s 链接目录

  • 不仅可以链接文件,还可以链接目录
[root@hf-01 tmp]# ln -s /tmp/amning/ /root/amning111[root@hf-01 tmp]# ls -l !$ls -l /root/amning111lrwxrwxrwx. 1 root root 12 10月 30 05:51 /root/amning111 -> /tmp/amning/

同一目录,创建软链接

  • 在/tmp/目录下,源文件aa.log链接——》目标文件ss.log
[root@hf-01 tmp]# ls -l总用量 4-rw-r--r--. 1 root    root     0 10月 30 06:09 aa.logsrwxrwxrwx. 1 mysql   mysql    0 10月 30 04:49 mysql.sockdrwxrwxrwx. 2 user1   user1    6 10月 27 09:07 user1[root@hf-01 tmp]# ln -s aa.log ss.log[root@hf-01 tmp]# ls -l总用量 4-rw-r--r--. 1 root    root     0 10月 30 06:09 aa.logsrwxrwxrwx. 1 mysql   mysql    0 10月 30 04:49 mysql.socklrwxrwxrwx. 1 root    root     6 10月 30 06:13 ss.log -> aa.log
弊端——在同一目录下
  • 弊端——假设做了一个相对路径的软链接,再把所有的文件拷贝到另一台机器上的时候(软链接本身也是一个文件),结果会发现这个文件不存在,(也就是源不存在),所以尽量使用绝对路径
弊端解决方法
  • 尽量使用绝对路径,这样就会避免文件的不存在
[root@hf-01 ~]# cd /tmp/[root@hf-01 tmp]# ls -l总用量 4drwxr-xr-x. 4 user1   hanfeng 53 10月 30 06:01 aminglinuxlrwxrwxrwx. 1 root    root     6 10月 30 06:13 ss.log -> aa.log[root@hf-01 tmp]# mv ss.log aminglinux/[root@hf-01 tmp]# cd aminglinux[root@hf-01 aminglinux]# ls -l总用量 0drwxr-xr-x. 4 user1 hanfeng 31 10月 25 06:55 aming2lrwxrwxrwx. 1 root  root     6 10月 30 06:13 ss.log -> aa.log这里会发现aa.log在飘红闪烁,这是因为这个文件不存在

阿铭工作中例子

[root@hf-01 ~]# df -h    查看磁盘分区情况文件系统        容量  已用  可用 已用% 挂载点/dev/sda3        18G  2.4G   16G   14% /devtmpfs        489M     0  489M    0% /devtmpfs           494M     0  494M    0% /dev/shmtmpfs           494M  6.7M  487M    2% /runtmpfs           494M     0  494M    0% /sys/fs/cgroup/dev/sda1       197M   75M  123M   38% /boot
  • 假如在/boot下,一个hanfeng.log日志文件占用很大空间,但是这个yin.log日志文件必须在这个/boot目录下,不能更改文件路径,那么就可以使用软链接来完美解决这个问题。可以将hanfeng.log 复制到/根目录下(大磁盘空间下)cp /boot/hanfeng.log /hanfeng.log 然后删除/boot/hanfeng.log文件,尽快的将复制的那个日志做个软链接链接到/boot,ln -s /hanfeng.log /boot/hanfeng.log就可以解决文件过大但是不能改路径的问题。

总结

  • 命令ln(link)
  • 格式:ln【-s】 【来源文件】【目的文件】
  • -s 建立软链接,不加-s建立硬链接。

2.22 硬连接文件

硬链接定义

  • 硬链接:当系统要读取一个文件时,会先读inode信息,然后再根据inode中的信息到块区域将数据取出来。而硬链接是直接再建立一个inode链接到文件放置的块区域。即建立硬链接时该文件内容没有变化,只是增加了一个指向这个文件的inode,并不会额外占用磁盘空间。

  • 硬链接不支持对目录做链接,只支持对文件做链接

硬链接和软连接对比

  • 硬链接
[root@localhost ~]# ln 1.txt 1_heard.txt
  • 软链接
[root@localhost ~]# ln -s 1.txt 1_sorft.txt
  • 对比:会发现软链接很小,硬链接很大
    • ls -i 查看inode号
    • 会发现硬链接文件和源文件使用了同一个inode号,大小相同,可使用find命令查找到硬链接
[root@localhost ~]# ls -l总用量 32drwxr-xr-x. 3 root root   45 10月 26 16:11 111-rw-r--r--. 1 root root    0 10月 26 15:54 111.12.txt-rw-r--r--. 2 root root  391 10月 30 15:10 1_heard.txtlrwxrwxrwx. 1 root root    5 10月 30 15:06 1_sorft.txt -> 1.txt[root@localhost ~]# ls -i33584735 111          33575033 1_sorft.txt  33575034 2.txt   33574987 anaconda-ks.cfg33584737 111.12.txt   33575035 1.txt        33584734 3.txt   33575006 anaconda-ks.cfg.133575035 1_heard.txt  33584733 1.txt~       33584736 3.txt~  33575036 windows.txt

硬链接文件特性

  • 就是创建的文件和另外一个文件是相同的inode号,这两个文件相互为硬链接文件。(软链接文件是有原有的目标,它有一个真正的文件,软链接仅仅为一个快捷方式)
  • 再删除源文件后,会发现==软链接==一直闪烁,表示找不到源文件了,那这个软链接文件就没有用了
  • 再删除源文件后,会发现==硬链接==,会发现正常使用,但inode会变成1
[root@localhost ~]# rm 1.txtrm:是否删除普通文件 "1.txt"?y[root@localhost ~]# ls -l总用量 28drwxr-xr-x. 3 root root   45 10月 26 16:11 111-rw-r--r--. 1 root root    0 10月 26 15:54 111.12.txt-rw-r--r--. 1 root root  391 10月 30 15:10 1_heard.txtlrwxrwxrwx. 1 root root    5 10月 30 15:06 1_sorft.txt -> 1.txt
  • 真正存数据的地方,存这个文件信息的位置在inode上
    • inode号代表着一个inode,inode是存在于文件系统中特殊的东西,这个inode会去记录一些文件的属性,如文件的时间、权限、位置等
[root@localhost ~]# ls -i 1_heard.txt33575035 1_heard.txt
  • 硬链接不会占用双份空间,因为使用的同一个inode

硬链接的限制

  • 硬链接的限制:
  1. 目录不能做硬链接
    [root@localhost ~]# ln 111 hf11     在硬链接指向目录的时候,会提示错误ln: "111": 不允许将硬链接指向目录
  2. 不能跨文件系统(跨分区),因为不同的文件系统有不同的inode,不同的table目录体系。
[root@localhost ~]# df -h文件系统        容量  已用  可用 已用% 挂载点/dev/sda3        18G  1.1G   17G    6% /devtmpfs        483M     0  483M    0% /devtmpfs           493M     0  493M    0% /dev/shmtmpfs           493M  6.7M  486M    2% /runtmpfs           493M     0  493M    0% /sys/fs/cgroup/dev/sda1       197M  109M   88M   56% /boottmpfs            99M     0   99M    0% /run/user/0[root@localhost ~]# ls -i /boot/    71 config-3.10.0-514.el7.x86_64    67 grub131136 grub2    76 initramfs-0-rescue-513f8b3950084e768a99df3a6cd3d9e6.img    75 initramfs-3.10.0-514.el7.x86_64.img189445 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-513f8b3950084e768a99df3a6cd3d9e6    73 vmlinuz-3.10.0-514.el7.x86_64[root@localhost ~]# ln /boot/config-3.10.0-514.el7.x86_64 /tmp/conifg.1ln: 无法创建硬链接"/tmp/conifg.1" => "/boot/config-3.10.0-514.el7.x86_64": 无效的跨设备连接

硬链接总结

  • 硬链接文件不能跨分区创建,因为每个分区都有各自的inode。
    • 比如、:d1分区有a文件的inode号是88,而d2分区的b文件的inode号也是88.
    • 正是因为各个分区的inode号各自为营,如果跨分区创建硬链接文件就会导致混乱。
    • 为了避免这个问题,所以不允许跨分区创建硬链接文件。
  • 硬链接可以删除,因为使用了相同的inode 显示无法创建硬链接

转载于:https://my.oschina.net/u/3707314/blog/1556564

你可能感兴趣的文章
循环节长度 蓝桥杯
查看>>
HttpContextBase转换成HttpContext对象
查看>>
linux软件安装:源码(1)
查看>>
c++-merge k sorted lists heap的灵活应用
查看>>
干货站
查看>>
RabbitMQ 基础概念介绍
查看>>
1117bootstrap
查看>>
centos6.5上卸载和安装JDK7
查看>>
从文件加载至NSData
查看>>
关于代码通过API操作阿里云RDS的巨坑
查看>>
jqgrid 获取选中行主键集合
查看>>
arraycopy效率比较
查看>>
使用 Linq 对多个对象进行join操作 C#
查看>>
【转载】VC操作剪切板
查看>>
dede二级导航与二级栏目 ----内容介绍二级导航
查看>>
禁止后台运行
查看>>
poj3273(二分)
查看>>
user_add示例
查看>>
dwz框架在网站群项目中的应用(1)—概述
查看>>
关于迹的矩阵函数求导
查看>>