Linux的文件操作权限

解释Linux系统中的文件操作权限

Posted by wang chong on March 1, 2019

我们都知道有时候我们在linux系统上操作文件或文件夹的时候总是会报有没有权限这个错误,这可能让我们很懵逼,不知道咋回事,想操作也操作不了,最终使用sudo来解决问题。所以说,熟知Linux的文件操作权限是很有必要的。

操作权限

在Linux终端中使用下面这个命令可以显示出文件的操作权限。

ls -l

这个命令的意思是让该目录下的文件或文件夹显示全部文件信息。

在每一个文件前面可以看到有一串英文字母,这就是文件操作权限。

权限分组

以上图第一个为例:

drwxr-xr-x

  1. 第一个字母表示文件是什么类型:d表示文件夹
  2. 后面9个字母分三组对应的是三个目的用户(前三,中三,后三)

    • 第一组:表示文件所有者的权限。
    • 第二组:表示与文件所有者在同一用户组下的其他用户的操作权限。
    • 第三组:表示其他用户(除了文件的所有者与文件所有者在同一用户组下的其他用户外)的操作权限。

权限含义

还是以第一个为例:

drwxr-xr-x

以一组为例:

  1. r:表示这个文件是可读的。
  2. w:表示这个文件是可写的。
  3. x:表示这个文件是可执行的。
  4. 如果上述三个操作的位置符号为-,表示是没有此功能的。

文件权限的二进制表示

我们经常使用一个命令来修改文件的权限。

chmod 777 test

但是这个777到底是什么意思呢?

我们都是到计算机的底层都是由2进制运算的。而linux的文件每一组文件权限是由4位二进制。例如:

0111 0000 0000

类似于上面这样,始终最前面的那一位是0:

  1. 如果所对应的2进制的数字为1,那么就可以表示文件有所对应的权限.
  2. 如果为0,那么就表示没有相对应的权限。

例如:

drwxr-xr-x

它所对应的权限二进制为:

0111 0011 0010

现在有可能已经知道了777何为由来了。

每一组的二进制转为十进制就是了。

例如上面权限对应的十进制权限代码为:

732