Linux文件权限标识机制

1. 解码

在我们使用ls -l类似的命令查看文件具体信息的时候,可以看到Linux的文件是以以下这种形式显示的:

drwxr--r-- root root ...

这是什么意思呢?怎么解析这一串标识?
首先,标识了文件权限的是 drwxr--r-- 这个字符串,头部的 d 标识了该文件的类型,Linux中标识的文件类型如下所示:

(1)-:普通文件 
(2)d:目录
(3)c:字符设备文件
(4)b:块设备文件
(5)l:链接文件
(6)s:本地域套接口 (socket)
(7)p:有名管道 (pipeline)

去掉首个文件类型标识之后,剩下 rwxr--r-- ,其中每一位都有可选的四种标识符表示,其分别为:

1. r:读权限
2. w:写权限
3. x:文件执行权限
4. -:无对应权限

将其分为3份,分别为 rwx r-- r-- , 每一部分分别表示:

    1. 文件所属用户(user)权限
    1. 文件所属组(group)权限
    1. 其他用户(other)权限

对于上面的权限可做以下解释:

  • 文件所属用户(root)拥有r(可读),w(可写),x(可执行)权限
  • 文件所属组(root)拥有r(可读)权限
  • 其他用户拥有r(可读)权限

2. 编码

文件权限标识可以编码为十进制3位整数
eg. rwx r-- r-- 可用以下算法进行编码:
三个部分分别计算。首先,对于第一部分的 rwx 而言,其二进制编码代表着三个bit,第一个bit标识是否可读(r),第二个bit标识是否可写(w),第三位标识是否可执行(x)。
在每一位的值中,1表示enable,反之0表示unable,因此 rwx 的二进制表示为 111 ,转为十进制就是 7
同样对于后两个部分 r-- r-- ,其二进制编码分别为 100 100 ,十进制编码分别为 4 4 ,因此文件权限标识 rwx r-- r-- 的十进制编码为 744

3. 使用

文件权限标识的十进制编码可以用在 chmod 命令中,可以使用 chmod -R 755 DirectoryName 的形式为文件夹中所有文件授权 755 ,即 rwxrw-rw-

posted @ 2020-01-10 17:52  hyj2357  阅读(962)  评论(0编辑  收藏  举报