文件和目录的权限控制了什么样的用户可以对文件和目录做什么样的事。
系统把用户可以做的事情分成三类,查看,写入,还有执行。查看的权限用字母 r 或者 数字 4 来表示,字母 r 是单词 read 的简写形式。写入权限我们用字母 w 或者数字 2 来表示,w 是 write 的简写。执行的权限使用字母 x 或者数字 1 表示。x 是 execute 的简写。
我们可以设置文件和目录的拥有者,这个拥有者就是在系统里的某个用户,我们还可以设置文件和目录所属的用户组。
对于每个文件和目录我们都可以设置三个级别的权限,分别是文件或目录的拥有者的权限,文件或目录所属的用户组的权限,还有其它用户的权限。
下面我们来看一下文件或目录的权限在系统里的表现形式,使用 ls -l 命令可以显示出文件或目录的权限的设置,还有文件或目录的拥有者和所属的用户组。
最前面这一块,就是使用字母所表示的权限,注意文件和目录的开头不太一样,开头是 - 线的,表示这是一个文件,比如 hello.txt 的权限信息里,是用 - 线开头,说明 hello.txt 是一个文件。
开头是字母 d 的,表示这是一个目录,这里的 hello 就是一个目录,因为它的权限信息是用 d 开头的。
我们再看一下这个 hello 目录,字母 d 的后面,就是使用字母表示的这个目录的三个级别的权限。前三个字母表示的是这个目录的拥有者所拥有的对这个目录的权限。这里是 rwx,r 表示 查看,w 表示 写入,x 表示 执行。
如果用数字来表示这个目录的拥有者的权限,查看权限是 4 ,写入权限是 2,执行权限是 1, 4+2+1 等于 7,所以我们可以用数字 7 来表示。
也就是这个目录的拥有者可以对这个目录实施 查看,写入,还有 执行的动作。
目录拥有者权限的后面是目录所属的用户组所拥有的权限,这里是 r-x(r ,横线,x) ,r 表示 查看,第二位并没有出现 w 写入权限,用的是 - 线,表示没有这个权限,这里就是目录的所属用户组没有这个目录的写入权限。第三位是 x ,表示执行权限。
用数字表示这个目录所属用户组的权限,查看权限是 4,执行权限是 1,加起来是数字 5。
最后三位是其它用户的权限,也就是除了目录所有者和所属用户组以外的任何人所拥有的权限。r 表示 查看权限,第二位使用 - 线代替,表示没有写入的权限,第三位是 x ,表示拥有执行权限。
用数字表示其它用户的权限就是5,查看权限的4,加上执行权限的1。
在表示权限的字母后面,有一个数字, 这个数字表示的是目录里面包含的目录数,这个目录数包括隐藏的目录数。hello 这个目录里显示的是 2,表示在 hello 这个目录下面包含两个目录。
在往后是文件和目录的拥有者,这里显示的是 root ,表示,hello 这个目录的拥有者叫 root,后面还有一个 root,这个 root 是文件或目录所属的用户组的名称。