尽管在 Linux 系统中一切都是文件,但是每个文件的类型不尽相同,因此 Linux 系统使 用了不同的字符来加以区分,常见的字符如下所示。
- -:普通文件.
- d:目录文件.
- l:链接文件.
- b:块设备文件.
- c:字符设备文件.
- p:管道文件.
在 Linux 系统中,每个文件都有所属的所有者和所有组,并且规定了文件的所有者、 所有组以及其他人对文件所拥有的可读(r)、可写(w)、可执行(x)等权限。对于一般 文件来说,权限比较容易理解:“可读”表示能够读取文件的实际内容;“可写”表示能够编辑、新增、修改、删除文件的实际内容;“可执行”则表示能够运行一个脚本程序。但是,对于目录文件来说,理解其权限设置来就不那么容易了。很多资深 Linux 用户其实也没有真正搞明白。
刘遄老师在这里给大家详细讲解一下目录文件的权限设置。对目录文件来说,“可读”表示能够读取目录内的文件列表;“可写”表示能够在目录内新增、删除、重命名文件;而“可执行”则表示能够进入该目录。
文件的读、写、执行权限可以简写为 rwx,亦可分别用数字 4、2、1 来表示,文件所有者,所属组及其他用户权限之间无关联,如下表所示。
表 文件权限的字符与数字表示
权限分配 |
文件所有者 |
文件所属组 |
其他用户 |
||||||
权限项 |
读 |
写 |
执行 |
读 |
写 |
执行 |
读 |
写 |
执行 |
字符表示 |
r |
w |
x |
r |
w |
x |
r |
w |
x |
数字表示 |
4 |
2 |
1 |
4 |
2 |
1 |
4 |
2 |
1 |
文件权限的数字法表示基于字符表示(rwx)的权限计算而来,其目的是简化权限的表示。 例如,若某个文件的权限为 7 则代表可读、可写、可执行(4+2+1);若权限为 6 则代表可读、可写(4+2)。我们来看这样一个例子。现在有这样一个文件,其所有者拥有可读、可写、可执行的权限,其文件所属组拥有可读、可写的权限;而且其他人只有可读的权限。那么,这个文件的权限就是 rwxrw-r--,数字法表示即为 764。不过大家千万再将这三个数字相加,计算出 7+6+4=17 的结果,这是小学的数学加减法,不是Linux系统的权限数字表示法,三者之间没有互通关系。
Linux 系统的文件权限相当复杂,但是用途很广泛,建议大家把它彻底搞清楚之后再学 习下一节的内容。现在来练习一下。请各位读者分别计算数字表示法 764、642、153、731 所 对应的字符表示法,然后再把 rwxrw-r--、rw--w--wx、rw-r--r--转换成数字表示法。
下面我们利用上文讲解的知识,一起分析下图中所示的文件信息。
图 通过 ls 命令查看到的文件属性信息
在图中,包含了文件的类型、访问权限、所有者(属主)、所属组(属组)、占用的 磁盘大小、修改时间和文件名称等信息。通过分析可知,该文件的类型为普通文件,所有者 权限为可读、可写(rw-),所属组权限为可读(r--),除此以外的其他人也只有可读权限(r--), 文件的磁盘占用大小是 34298 字节,近一次的修改时间为 4 月 2 日的凌晨 23 分,文件的名 称为 install.log。