Linux学习笔记:文件权限管理篇
Linux文件权限介绍
- Linux严格管理文件的操作权限,只有开放权限的用户可以对文件的进行操作(读、写、执行)。
- 权限分为三组,面向文件拥有者、文件拥有者所在组、其他组三种,这三个属组可以分别设置操作权限。
- 通常一个文件只能属于一个用户和组,如果其他用户想享有对文件操作的权限,可以将其他用户加入拥有者用户所在组(一个用户可归属多个组)。
文件权限的十位二进制表示法
使用ll命令查看文件时,会显示该文件的当前权限:
-rwxr-xr-x
这是常见的十位权限表示:
后九位分三组,代表三个属组,其中每组三位,可能会出现r,w,x,-四种情况,r代表可读,w代表可写,x代表可执行,-代表无权限。
且r,w,x相对位置固定,可以用二进制数来表示:
--- = 000 = 0
--x = 001 = 1
-w- = 010 = 2
r-- = 100 = 4
……
rwx = 111 = 8
这样每个组的权限可以用一个八进制数表示:最高为7(可读可写可执行),最低为0(无权限)。
第一位代表文件类型:
d代表directory 目录
-代表regular file 文件
s代表socket套接字文件
p代表pipe、named pipe 管道或命名管道文件
l代表symbolic link符号链接
b代表面向块设备文件
c代表面向字符设备文件
权限修改(chmod命令)
一般格式
$ chmod [optional] <mode> <files>
optional
-c, --changes 若该档案权限确实已经更改,才显示其更改动作
-f, --silent, --quiet 若该档案权限无法被更改也不要显示错误讯息
-v, --verbose 显示权限变更的详细资料
-R, --recursive 以递归的方式对目前目录下的所有档案与子目录进行相同的权限变更)
--help 显示帮助信息
mode
由三部分([ugoa] [+-=] [rwxX])组成,第一部分代表针对的群组,第二部分代表权限的变更方式,第三部分代表具体变更的权限。
[ugoa]:
u 表示文件拥有者
g表示与文件拥有者同组的用户
o表示其他用户
a表示所有用户(包含上述)
[+-=]:
+ 表示增加权限
- 表示取消权限
= 表示唯一设定权限
[rwxX]:
X表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
rwx前面已经介绍。
files
文件列表,可以为多个文件或文件夹。
示例:
所有用户可读 a.txt
$ chmod a+r a.txt
数字格式
r\w\x权限分别可以用其对应的八进制数表示,三个八进制数就组成了三个群组各自的权限。
$ chmod <abc> <files>
abc
a,b,c各为一个数字,分别代表所有权用户,所有权用户所在群组,其他用户组权限,属于简化版写法。
files
文件列表,可以为多个文件或文件夹。
示例:
拥有者可读写,其他用户可读 a.txt
$ chmod 644 a.txt
常见数字格式权限
600:可读可写/无权限/无权限
644:可读可写/可读/可读
666:可读可写/可读可写/可读可写/
700:可读可写可执行/无权限/无权限
711:可读可写可执行/可执行/可执行
755:可读可写可执行/可读可执行/可读可执行
777:所有用户均可读可写可执行