本文介绍Linux系统的文件和目录的属性及权限,比如索引节点 inode、文件类型、文件权限及属主,还对setuid、getgid及粘贴位进行相关的介绍。其中,对ln、chmod、chown、chgrp、umask等命令的用法进行详细的说明和举例。
Linux中的文件
文件属性相概述
Linux系统中文件或目录的属性主要包括:文件或目录的索引节点(inode)、类型、权限属性、链接数、所归属的用户和用户组、最近修改时间等内容:
看下执行 ls -lhi 命令的结果
详细解释图:
文字解释:
第一列:inode索引节点;
第二列:文件类型权限;
第三列:硬链接个数
第四列:文件或目录所属的用户(属主);
第五列:文件或目录所属的用户所归属的组;
第六列:文件或目录的大小;
第七、八、九列:文件或目录的修改时间;(可用 stat 文件名 来查看文件的修改时间)
第十列:实际的文件名或目录名;
索引节点inode概述
inode中文的意思是索引节点。每个存储设备或存储设备的分区(存储设备可以是硬盘、软盘、U盘。。。)被格式化为文件系统后,都应该有两部分:一部分是inode,另一部分是Block。Block是用来存储数据用的。而inode就是用来存储这些数据信息的,这些信息包括文件大小、属主、归属的用户组、读写权限等。
inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode值最快的找到相对应的文件。
打个比方,比如一本书,存储设备或分区就相当于这本书,Block相当于书中的每一页,inode就相当于这本书前面的目录,一本书有很多内容,如果想查找某部分的内容,我们可以先查找目录,通过目录能更快的找到我们想要看的内容。
当我们用 ls 查看某个目录或文件时,如果加上 -i 参数,就可以看到inode节点。
inode值相同的文件是硬链接文件
在Linux文件系统中,inode值相同的文件是硬链接文件。这也就是说,不同的文件名,inode值可能是相同的,一个inode值可以对应多个文件。在Linux中,链接文件是通过 ln 命令来创建的。