日期:2014-05-16  浏览次数:20760 次

三 linux 文件系统的权限问题和涉及到的软硬链接

任何设备在linux下都是文件。

文件即包括windows下的文件又包括windows下的目录,还包括windows下的设备。


一、文件权限的意义

r:可以读这个文件的具体内容;

w:可以编辑这个文件的内容,包括增加删除文件的具体内容 但不包括删除该文件

x:文件就具有了可执行的权限-------注意:这里和window不一样,在win中,文件的可执行权限是通过扩展名表现出来的,如exe、bat等,但是在linux中文件的可执行权限是通过这个x决定的,与文件名没有什么关系。

rwx权限都是对文件内容而言的,因为文件的inode和block中并没有文件名,所以这些权限跟涉及到文件名的删除没有关系

二、目录权限的意义

r:可以查看此目录下的完整文件列表信息。当有r权限时,你可以读取该目录下所有文件的文件名

-????????? ? ? ? ?                ? test
d????????? ? ? ? ?                ? test1
d????????? ? ? ? ?                ? test2
d????????? ? ? ? ?                ? test3

w:可以对此目录下的所有的文件及目录进行相关的更改 具体权利如下:

     可以在此目录下创建新的文件或目录;

       可以在此目录下删除存在的文件或目录(不论该文件的权限是什么,这点要格外注意!!!!)

    可以重命名及改变文件或目录的位置。

x:目录没有可执行的权限,因此目录中x的功能就是允许别的用户进入这个目录。


假如你想制作一个只读文件

需要保证对文件的权限是4

对文件所在文件夹的权限是r_x

因为没有x 则无法进入该文件读取文件的内容,有了w则用户可以将该文件删除




磁盘格式化后文件系统就将inode和block规划好了,除非有改变磁盘大小或者格式的操作,否则inode和block不在变化。
在linux下 新建一个目录时,ext2会分配一个inode和至少一个block给该目录。
其中 inode记录该目录的相关权限与属性,以及那些分配给该目录的block块号。
block记录了这个目录下的文件名和该文件名占用的inode

新建一个文件时,ext2会首先找到该文件所在的目录,
分配一个inode和 该文件大小所需的block给该文件,并且在该目录的block中记录下文件名和该文件名占用的inode。
inode中记录了文件的属性(不包括文件名)以及该文件实际存放在的block的号码(三级)


由以上说明可知
 1 当读取一个文件时,必然要先读取其目录的inode 找到目录所占的block 从而找到 文件所在的inode,再跟据inode的三级索引找到实际的文件。

2 文件名只与所在目录有关 而文件的属性和此文件的inode有关。
不同的文件名可以指向同一个inode 这就时所谓的hard link  (连接字段的含义就是有多少不同的文件名都连接到了这个inode)
软连接是 建立一个指向相应文件名的连接, 当那个文件名被删除的时候,整个路径就不通了。