650)"/>

Linux 文件和目录的属性及权限

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 文件和目录的属性及权限相关的知识,希望对你有一定的参考价值。

技术分享技术分享

一、权限位说明

       Linux 文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件属主(Owner)的读、写、执行,用户组(Group)的读、写、执行以及(Other)其它用户的读、写、执行:

文件属主(Owner):读 read、写 write、执行 x

文件用户组(Group):读 r、写 w 、执行 x

其它用户(Other):读 r、 写 w、 执行 x

如果权限位不可读、不可写、不可执行,则用|来表示。

后面还会有特殊的权限位:t T s S X +

技术分享技术分享

Linux 系统硬链接和软链接

1.【链接的概念】

     在 Linux 系统中,链接可分为两种:一种为硬链接(Hard Link),另一种为软链接或符号链接(Symbolic Link)。ln命令就是创建链接文件的,在默认不带参数的情况下,执行ln命令创建的链接是硬链接。

如果使用ln -s 创建链接则为软链接。

1.1【硬链接】

    硬链接是指通过索引节点(Inode)来进行链接。在Linux(ext2,ext3)文件系统中,保存在磁盘分区中的文件不管是什么类型都会给它分配一个编号,这个编号被称为索引节点编号(Inode Index)简称 Inode,即在系统中文件的编号。

在linux文件系统中,多个文件名指向同一个索引节点(Inode)是正常且允许的。这种情况的文件就称为硬链接。硬链接的作用之一是允许一个文件拥有多个有效路径名(多个入口),这样用户就可以建立硬链接到重要的文件,以防止“误删”源数据(很多硬件存储,如netapp)存储中的快照功能就应用了这个原理,增加一个快照就多了一个硬链接)。为什么一个文件建立了硬链接就会防止数据误删呢?

因为文件系统(ext2)的原理是,只要文件的索引节点(Inode Index)还有一个或一个以上的硬链接。只删除其中一个链接(即仅仅删除了该文件的链接指向)并不影响索引节点本身和其它的链接(即数据文件实体并未被删除),只有当文件的最后一个链接被删除后,此时如果有新数据要存储到硬盘上时或者系统通过类似fsck做磁盘检查的时候。被删除文件的数据块及目录的链接才会被释放,空间被新数据占用并覆盖。此时,数据就再也无法找回了。也就是说,在linux系统中,删除静态文件(目录也是文件)的条件是与之相关的所有硬链接文件均被删除。提示:硬链接就相当于文件的另外一个入口。

硬链接原理图:

技术分享技术分享

硬链接示意图:

技术分享技术分享

硬链接删除原理图:

技术分享技术分享

1.2【软链接】

    软链接也称为符号链接(Symbolic Link)。linx 里的软链接文件就类似于 Windows 系统中的快捷方式。它实际上是一个特殊的文件。在软链接的文件。在软链接中,软链接文件实际上就是一个文本文件,这个文件包含有软链接指向另一源文件的位置信息内容,因此,通过访问这个“快捷方式”就可以迅速定位到软链接所指向的源文件实体。

软链接原理图:

技术分享技术分享

查看软链接的 value:

readlink Print value of a symbolic link or canonical file name

[[email protected] application]# readlink apache

/application/apache2.2.17/

[[email protected] application]# ll

总用量 8

lrwxrwxrwx. 1 root root   26 3月  13 07:43 apache -> /application/apache2.2.17/

drwxr-xr-x. 2 root root 4096 3月  13 20:17 apache2.2.17

drwxr-xr-x. 2 root root 4096 3月  13 21:45 apache2.2.18

软链接的创建:

    执行命令“ln -s 源文件  软链接文件”,即可完成创建软链接。

小结:

1)软链接类似 windows 里的快捷方式,软链接里面存放的源文件的路径,并且执行源文件。

2)删除源文件,软链接文件依然存在,但是无法访问指向的路径内容了。

3)执行命令“ln -s 源文件  软链接文件”,即可完成创建软链接。

4)软链接和源文件是不同类型的文件,也是不同的文件。inode 号不同。

5)rm -f 软链接文件的删除

2.1 文件示例:

技术分享技术分享

硬链接文件的连接数增加了。

技术分享技术分享

2.2 目录示例

技术分享技术分享

小结:ln 命令不能对目录创建硬链接,但可以对目录创建软链接,对于目录的软链接也是生产场景运维中常用的功能。

说明:oldboydir 下的两个点表示上级目录,因此,和 oldboydir 的上级目录 oldboy 具有相同的节点号。

2.3【删除示例】

[[email protected] oldboy]# echo "I am oldboy" >oldboyfile

[[email protected] oldboy]# cat oldboyfile

I am oldboy

[[email protected] oldboy]# cat oldboy_file_hard_link

I am oldboy

[[email protected] oldboy]# cat oldboy_file_soft_link

I am oldboy

结论:往源文件 oldboyfile 里面写入内容后,它的软硬链接文件都有相同的内容。

技术分享技术分享

提示:内容还在,其实就是因为 oldboyfile_hard_link 硬链接存在,因此即使删除了源文件 oldboyfile,但是仍有硬链接指向着文件的 INODE 节点,所以,此时文件才不会被释放删除,当删除文件 oldboyfile 时,仅仅删除了 oldboyfile 到该文件 INODE 节点的链接而已,此时还有 oldboyfile_hard_link 硬链接在指向同一个 INODE 节点。

[[email protected] oldboy]# cat oldboyfile_hard_link

cat: oldboyfile_hard_link: 没有那个文件或目录

#由于软链接仅仅为源文件 oldboyfile 的快捷方式,所以,此时在访问软链接文件,发现无法访问了,文件不存在的错误。

小结:通过上面的测试可以看出:当删除原始文件 oldboyfile 后,其硬链接文件 oldboyfile_hard_link 不受影响,对应的数据依然存在,但是其对应的软链接文件 oldboyfile_soft_link 失效了,找不到源文件了,此时,可以删除软件连接文件重新创建,或者创建一个 oldboyfile_hard_link 的硬链接文件 oldboyfile。

3、【链接总结】

3.1【有关文件的链接小结】

一、删除软链接 oldboyfile_soft_link,对 oldboyfile,oldboyfile_hard_link 无影响;

    全局结论:删除软链接文件对源文件及硬链接文件无任何影响。

二、删除硬链接 oldboyfile_hard_link,对 oldboyfile,oldboyfile_soft_link 都无影响;

    全局结论:删除硬链接文件对源文件及软链接文件无任何影响。

三、删除原文件 oldboyfile,对硬链接 oldboyfile_hard_link 没有影响,但是会导致软链接 oldboyfile_soft_link 失效;

    全局结论:删除原文件,对硬链接文件没有影响,但是会导致软链接文件失效,白字红底闪烁。

四、同时删除原文件 oldboyfile,硬链接 oldboyfile_hard_link,整个文件会真正的被删除。

五、很多硬件设备中的快照功能,就是利用了硬链接的原理。

六、源文件和硬链接文件具有相同的索引节点号,可以认为是同一个文件或一个文件的多个入口。

七、源文件和软链接文件索引节点号不同,是不同的文件,软链接相当于源文件的快捷方式,含有源文件的目录的位置指向。


本文出自 “柠檬草的味道” 博客,请务必保留此出处http://nmcdwd.blog.51cto.com/11299841/1750761

以上是关于Linux 文件和目录的属性及权限的主要内容,如果未能解决你的问题,请参考以下文章

Linux文件和目录的属性及权限

Linux 文件和目录的属性及权限

06-Linux基础入门-文件和目录的属性及权限之inode与block

linux修改文件及文件夹读写权限

Linux下权限的设定(1.如何查看及读取权限信息,2.设定文件的拥有者及拥有组)

09-Linux基础入门-文件和目录的属性及权限之链接(综合网络整理)