前言
Linux 系统对于文件的权限有严格的控制,必须具有相对应的权限才可以对某个文件进行操作。
Linux 系统中的权限主要包括读 (r)、写 (w)、执行 (x)。
Linux 系统的权限粒度分为拥有者、群组、其他组三种属组。每个文件都可以针对三个属组设置不同的 rwx 权限。通常情况下,一个文件只能归属于一个用户和组, 如果其它的用户想有这个文件的权限,则可以将该用户加入具备权限的群组,所以一个用户可以同时归属于多个组。
权限的表示
权限可以使用字符表示:-代表无权限,r 代表读权限,w 代表写权限,x 代表执行权限。
也可以使用二进制表示:根据各个位置权限的有无对应二进制数 1 和 0,转化为八进制数就是 r=4,w=2,x=1。
1 | r-- = 100 = 4 |
实际上,所有的权限都可以使用二进制或八进制数字的形式表达:
1 | rwx = 111 = 7:读 + 写 + 执行 |
十位权限表示法
十位权限表示法中的最高位表示文件类型,其余的 9 位表示三个属组的读、写和执行的权限。
文件类型
文件类型主要分为:
d
:directroy,目录;-
:regular file,文件;s
:socket,套字文件;p
:pipe,管道文件;l
:symbolic link,符号链接文件;b
:block-oriented device file,面向块的设备文件;c
:charcter-oriented device file,面向字符的设备文件;
属组权限
如果使用权限使用字符表示,那么前 3 位为拥有者的权限,中间 3 位为群组的权限,最后 3 位为其他组的权限。如果权限使用数字表示,那么 3 个属组可以使用 3 个八进制数表示各自的权限。以下是常见的权限及对应的 3 位八进制数字:
-rw------- (600)
:只有拥有者有读写权限。-rw-r--r-- (644)
:只有拥有者有读写权限;而属组用户和其他用户只有读权限。-rwx------ (700)
:只有拥有者有读、写、执行权限。-rwxr-xr-x (755)
:拥有者有读、写、执行权限,属组用户和其他用户只有读、执行权限。-rwx--x--x (711)
:拥有者有读、写、执行权限,属组用户和其他用户只有执行权限。-rw-rw-rw- (666)
:所有用户都有文件读、写权限。-rwxrwxrwx (777)
:所有用户都有读、写、执行权限。