我们使用 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 用户可以跨越文件的权限,并且修改权限,常用的权限修改命令有 chmod、chogrp 和 chown。
chmod
chmod 755 file // 得到的结果就是 rwxr-xr-x,每个数字代表一组 | 4读、2写、1执行,如果全部权限都赋予,合起来就是 7
chmod 333 file // -wx-wx-wx | 加深理解
chogrp
chogrp gname file // 修改文件的所属用户组
chown
chown uname file // 修改文件的所属用户
我们 ls -l a,读取到的文件权限是 rw-r--r--。文件的权限值,不能高于 umask 命令的设置。
umask 000,不做任何限定,那么 touch file 出来的权限是 rw-rw-rw- 。umask 777,做出最高限定,那么 touch file 出来的权限是 ---------。链接是文件的一种的镜像,访问一个文件的指针指向了两一个文件。
ln -s a b
上面的命令,新创建了一个 b 的文件,并且链接到 a。它们之间的关系,修改 b 等于了 修改 a,修改 a 等于修改了 b。但是 b 文件依赖着 a,假如 a 文件不在了,b文件也就不能访问。