我们使用 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文件也就不能访问。