关于文件777权限(可读可写可执行)
bigfly Lv4

前言:

在使用Linux的时候不知道大家是否使用过类似下面的命令:

1
chmod -R 777 <file_name>

这句命令的作用是改变file_name的文件可执行权限,但为何是777不是其他数字呢?777的含义是什么?777的底层原理是什么呢?不知道大家是否有过这样的疑问。

Linux文件权限解释:

Linux的三种操作对象:

Linux/Unix系统根据对象赋予文件相应的权限,具体对每个文件而言,有三种操作对象,分别是:owner、group、other。它表示文件所有者(owner)和同一组用户(group),以及其他用户(other)。

通常Linux/Unix系统下每个文件的权限用类似”-rw-rw-r- - “这样的方式表示:

  1. 第一个rw- 表示所有者(owner)有读(r)和写(w)权限,但没有执行(x)权限。 后面的”-“是没有可执行权限。

  2. 第二个rw- 表示表示同一组用户(group)也有读和写的权限,同样没有执行权限。

  3. 第三个r- - 表示表示其他用户(other)只有读权限,没有写和执行权限。

tips:
-rw-rw-r- - “开头的”-“ 表示这是一个普通文件(而不是目录或特殊文件)。

文件权限的8进制表示:

在Linux中,文件的权限被表示为一个三位数的八进制数, 如上面提到的”-rw-rw-r- - “就可以用8进制664来表示,具体原理如下:

  1. 第一个6表示所有者的权限,8进制的6对应的二进制是110,这里的110相当于是位图,表示:可读、可写、不可执行。
  2. 同理第二个6表示同一组用户的权限,也是可读可写不可执行。
  3. 第三个4表示其他用户的权限,8进制的4对应的二进制是100,即表示:可读、不可写、不可执行。

文件权限777的解释:

八进制的7对应的二进制为111,从笔者上面的解释可以推出其表示的含义是-rwx也就是可读可写可执行,三个7分别对应是三个操作对象的权限,即文件所有者权限、同意住用户权限和其他用户权限,可表示为:**-rwxrwxrwx**。

1
2
3
chmod -R 777 <file_name>
上面这行命令可以用下面的替换:
chmod -R -rwxrwxrwx <file_name>