Linux 文件权限

文件信息

我们使用 ls -l 列出文件,会携带下面这组信息。

-rw-r--r-- 1 root root 8445 Sep 8 07:33 file.txt
...

我们解读一下这些信息。

  • 第一个符号 - 表示的是一个文件,如果是 d 那么表示是一个目录,而 l 则是一个链接文件。
  • rw-r--r-- 这段表示的是文件的权限范围,以三个为一组 r可读w可写x可执行,第一组表示文件所属用户的权限,第二组表示文件所用户组的权限,第三组表示其他用户或用户组的权限。
  • 1 表示硬链接数目。
  • 往后的两个 root 就是分别代表了文件的所属用户,和用户组。
  • 8445 代表文件大小,单位是 byte
  • Sep 8 07:33 文件的修改时间。
  • 最后一个 file.txt 文件名称。

权限

root 用户可以跨越文件的权限,并且修改权限,常用的权限修改命令有 chomdchogrpchown

chomd

chomd 755 file // 得到的结果就是 rwxr-xr-x,每个数字代表一组 | 4读、2写、1执行,如果全部权限都赋予,合起来就是 7
chomd 333 file // -wx-wx-wx | 加深理解

chogrp

chogrp gname file // 修改文件的所属用户组

chown

chown uname file // 修改文件的所属用户

umask

我们 ls -l a,读取到的文件权限是 rw-r--r--。文件的权限值,不能高于 umask 命令的设置。

  • 如果 umask 000,不做任何限定,那么 touch file 出来的权限是 rw-rw-rw-
  • 如果 umask 777,做出最高限定,那么 touch file 出来的权限是 ---------
  • umask 默认的权限是 022,umask 命令不能规定 x 可执行权限。

软链接

链接是文件的一种的镜像,访问一个文件的指针指向了两一个文件。

ln -s a b

上面的命令,新创建了一个 b 的文件,并且链接到 a。它们之间的关系,修改 b 等于了 修改 a,修改 a 等于修改了 b。但是 b 文件依赖着 a,假如 a 文件不在了,b文件也就不能访问。

更多教程 HTML5 教程 CSS3 教程 JavaScript 教程 JQuery 教程 React.js 教程 Node.js 教程 Koa2 教程 Python 教程 Linux 教程