Linux文件权限的解释说明
在Linux中,文件的权限共有三种,分别对读、写、执行,抽象成字母表示为r、w、x.
r、w、x权限对文件的含义:
r(读权限):可以查看文件的内容。
w(写权限):可以更改文件的内容。
x(执行权限):可以将文件提取到 Linux 内核进行执行,脚本就是文件,命令的集合。
r、w、x权限对目录的含义:
r(读权限):可以查看目录下的文件或目录(说白了就是可以使用ls命令)。
w(写权限):可以增加、删除目录下的文件或目录。
x(执行权限):可以 cd 进目录
Note:对目录有读写权限不代表对目录下的文件也有读写权限,文件的读写是根据文件的权限决定的。
文件或目录的权限主要针对三类对象进行的定义
- onwer。文件或目录的所属主,就是创建文件或目录的那个用户,也可以转让给其他人。
- group。文件或目录的所属组,默认为创建文件或目录的那个用户的基本组,也是可以转让给其它组的。
- other。其他人,和这个文件或目录的出生死亡没有任何关系的人。
权限的演示
针对以上的权限内容进行一下演示。首先来查看一个文件的三种权限。
看到文件开头的一串字母,我们拿出来解释一下。
-rw-r--r--. 1 root root 0 11月 19 16:36 a.txt
第一个中划线表示的是文件或目录的类型:
- - 文件
- d 目录
- l 软链接
- b 块设备(硬盘、内存)
- c 字符设备(鼠标)
- s 套接字
- p 管道文件
[ 2 - 4 ]位表示的是所属主对此文件的权限( rw-,拥有读、执行权限),[ 5 - 7 ]位表示的是所属组对此文件的权限(r–,仅有读的权限),[ 8 - 10 ]位表示其他人对此文件的权限(r–,表示仅有读的权限)。
权限的抽象表示法
还是拿上面的权限举例。
-rw-r--r--. 1 root root 0 11月 19 16:36 a.txt
然后再抽象一点,咱们就只拿所属主的权限举例 rw-,其实有权限的位置可以用二进制1表示,没有权限的位置可以用二进制0表示,那么就可以抽象成110,然后三位二进制还可以转换成8进制(四位二进制可以转换成16进制),所以110转换为8进制为6,所以rw-就可以用6表示。r–转化为二进制为100,八进制为4
其实,r位置的权限就代表着4,w位置就代表着2,x位置的权限就代表1,因为什么呢,当r位置有权限,对应的二进制位肯定为100,所有就代表4,同理,w位置有权限就代表了二进制010,为2,同理可知x位。
这时候看一下上面的权限转化为8进制为多少,首先所属主为6,所属主为4,其他人为4,所以抽象成8进制就为644。
文件的默认权限
当我们创建一个文件和目录时,我们并没有给文件或目录指定初始的权限,但是创建后会发现,文件或目录是有默认的权限的。
目录创建的默认权限为755,文件创建的默认权限为644,什么决定了这个默认的权限呢,其实就是umask,关于umask的解释在这篇博客中。
本人私人博客::https://www.lightingsui.com