对于一个文件,读取的权限就是是否可以查看文件里面的内容,写入的权限就是,是否可以把新的内容写入到文件里面。对于目录来说,读取的权限就是是否能够查看目录里面包含的东西,写入的权限就是,是否可以把文件放到这个目录的里面。
这里我们先新建一个目录 ... mkdir ... 目录的名字可以叫它 app
mkdir app
再查看一下这个目录现在的权限,ls -l ... 注意这里,目录的权限的最开始,有一个 d ,它表示 directory ,意思就是这是一个目录。 后面是它的三个级别的权限,如果用数字表示的话,应该是 775 .. 目录的拥有者还有所属的用户组拥有全部的权限 .. 其它人拥有读取还有执行的权限,所以表示这两个权限的数字就是 5,4 + 1 正好等于5 。
drwxrwxr-x. 2 vagrant vagrant 6 3月 12 06:25 app
现在我们往 app 这个目录下面写入一个文件试一下 ... touch app/file_01.txt .. 再查看一下 app 目录里的东西 .. ls app ... 会显示刚才写入进来的这个 file_01.txt ... 因为我现在的身份是 vagrant ,是这个目录的拥有者,在这个目录上,拥有者的权限里面,有写入的权限,所以,我可以写入内容到这个目录的下面。作为拥有者,我也有读取的权限,所以也可以查看这个目录下面的东西。
下面,我们可以用之前创建的 wanghao 这个用户去试一下,切换用户的身份,可以使用 su ... 后面是要切换到的用户的名字 ... 这里再用一个 -c 选项,可以直接传递进来一个命令 ... 用一组引号 ... 要执行的命令是 ls app .. 意思就是用 wanghao 这个用户的身份去查看 app 目录下面的东西 ..
回车 ... 输入 wanghao 的密码 ... 这里会提示 无法访问app: 权限不够 ... 虽然 app 这个目录的权限,对于其它用户来说,有可以访问的权限,不过 app 目录的上一级目录,也就是我们当前所在的位置 ... 这个目录对于其它用户来说,并没有可以访问的权限 ... 我们可以再看一下 .. ls -l .. ,这里的两个点表示上一级目录 .. 你会发现, vagrant 这个目录的权限,除了它的拥有者,有全部的权限以外,其它人没有任何的权限。
我们可以进入到 app 这个目录里面,然后再去查看它里面的东西,或者,可以修改 vagrant 这个目录的权限,为其它用户添加一个 r ,查看的权限。
进入到 app 这个目录里面, cd app ... 再用 wanghao 的身份去查看一下这个目录下面的东西 ...
su wanghao -c 'ls'
这里会返回 app 目录下面的文件的列表。再试一下在这个目录的下面,写入一个文件 ... su wanghao -c 'touch file_02.txt'
提示权限不够,因为对于 app 这个目录来说, wanghao 这个用户属于其它人,因为他即不是 app 目录的拥有者,也不属于这个目录的用户组。app 目录对于其它人只提供了一个 r ,查看的权限,如果你想让其他人可以写入东西到这个目录的下面,你需要为其他人添加一个 w ,写入的权限。
先回到上一级目录 ... cd .. ,然后输入 chmod o+w ... 表示为其他人添加 w,写入的权限。
chmod o+w app
再查看一下,ls -l ,再进入到这个目录 ... cd app ,然后再试一下用 wanghao 的身份在这个目录下面创建一个新的文件 ...
完成以后,再查看一下 ... 返回的文件列表里面,会有刚才我们用 wanghao 的身份添加到 app 目录下面的文件,file_02.txt ,注意这个文件的拥有者还有所属的用户组都是 wanghao ...
这里还需要注意一下,现在 app 这个目录的权限,如果用数字表示的话是 777 ,意思就是所有的人对这个目录拥有所有的权限,这种做法非常不推荐,因为存在一些安全问题。在下面的视频里我们再看一下解决的方法。