使用命令ls -l
列出文件信息,查看每一列的信息如下:
1 权限信息
linux系统中的每一个文件都与多种类型的权限关联,通常有三类权限:
- 用户(user):是文件的所有者。
- 用户组(group):是多个用户的集合,系统允许这些用户对文件进行某种形式的访问。
- 其他用户(others):是除文件用户或用户组之外的任何人。
其中,第一列(如上:drwxr-xr-x
)的第一个字母的对应意思如下:
- -:普通文件
- d:目录
- c:字符设备
- b:块设备
- l:符号链接
- s:套接字
- p:管道
第一列除去第一个字母后,剩下的部分分为三组,每组3个字符(--- --- ---),其中第一组的三个字符对应用户权限(所有者),第二组对应用户组权限,第三组对应其他用户权限。9个字符,每一个对应某种权限(r、w、x),如果没有设置对应的权限,则对应位置为“-”。
1.1 字符含义
1.1.1 用户
第一组字符(例如,权限序列为:rwx------):
- 第一个字符:用户是否拥有该文件的读权限
- 第二个字符:写权限(修改)
- 第三个字符:执行权限(即运行该文件的权限),可执行文件通常会设置执行权限。
用户还有一个称为setuid(S)的特殊权限,它出现在执行权限(x)的位置,它允许用户以其拥有者的权限来执行可执行文件,即使这个可执行文件是由其他用户运行的。例如,权限序列为:-rwS------
注意:对于目录来说,权限的含义有点区别:
- 目录的读权限(r):允许读取目录中文件和子目录的列表
- 目录的写权限(w):允许在目录中创建和删除文件或目录
- 目录的执行权限(x):指明是否可以访问目录中的文件和子目录
1.1.2 用户组
第二组字符(例如,权限序列为:---rwx---)表示组权限,rwx的含义与用户组一样。 组权限没有setuid,但有一个setgid(S)位,它允许以同该目录拥有者所在的组相同的有效组权限来允许可执行文件,但是这个组和实际发起命令的用户组未必相同。例如,权限序列为:----rwS---
1.1.3 其他用户
第三组字符(例如,权限序列为:------rwx)表示其他用户权限,rwx的含义与上面一样,但没有S权限。
1.2 粘滞位
目录有一个特殊的权限,叫做粘滞位(sticky bit)。如果目录设置了粘滞位,只有创建该目录的用户才能删除目录中的文件,即使用户组和其他用户也有写权限也无能为力。 粘滞位出现在其他用户权限中的执行权限(x)位置。它使用t或T表示。如果没有设置执行权限,但设置了粘滞位,就使用t;如果同时设置了执行权限和粘滞位,就是用T。 例如:------rwt,------rwT
2 其他列信息
- 第二列:连接数,如上图的4、5
- 第三列:代表所属的用户,如上图的jtzen9
- 第四列:代表用户组的所有者,如上图的staff
- 第五列:文件大小,字节为单位
- 第六七(八)列:最近修改的日期时间
- 最后一列:文件名
#引用:
- 《Linux Shell 脚本攻略》(第二版)