下面我们来看一下目录的权限,先输入 ls -l
这里 hello 这个目录的权限是 755,目录的拥有者有查看,写入和执行的权限,所属用户组和其它的用户拥有查看和执行的权限。
对于目录来说,查看的权限就是查看目录里面都有什么样的文件和目录。目录的写入权限和执行权限会经常配合在一起使用,执行权限就是允许用户进入到目录里面,比如使用 cd 命令进入到目录,写入权限可以允许用户在目录里添加,删除,或者重命名文件。
下面我们来实验一下。
这里我们先去掉 hello 这个目录的所属用户组的执行权限,输入 chmod g-x hello … g 表示用户组,-x 表示去掉执行权限。
再输入 ls -l
你可以看到现在 hello 这个目录的所属用户组只剩下一个 read 查看的权限。
我们切换到 xiaoxue 用户,su xiaoxue
xiaoxue 这个用户所属的用户组是 root,你可以使用 groups 命令查看用户的用户组。
下面我们使用 ls 命令,列出 hello 目录里的内容 … ls -l hello
你可以看到,可以显示出 hello 目录里面包含的文件,但会有提示权限不足,文件的权限信息没有显示出来。
我们再试一下 cd 命令进入到 hello 目录,输入 cd hello
提示权限不足,因为 xiaoxue 所在的 root 用户组,对于 hello 目录来说并没有执行的权限。
我们可以添加一个执行权限… 先输入 exit 退出 xiaoxue 这个用户,…
现在我们的身份是 root 。输入 chmod g+x hello … 这行命令会为 hello 目录所属用户组添加一个执行的权限。
su xiaoxue … 切换到 xiaoxue 这个用户
然后再输入 cd hello … 这一次我们成功进入到 hello 这个目录了。
ls -l … 列出这个目录里的内容。
下面我们再试一下在这个目录里再创建一个目录,输入 mkdir hello2 …
提示我们权限不足,因为我们还没有写入这个目录的权限。 再试一下重命名这个 hello-copy.txt 文件,比如我们想把它命名为 hello.txt ,输入 mv hello-copy.txt hello.txt …
这里仍然提示我们权限不足,因为创建,重命名或者删除文件都需要用到目录的写入权限。你需要为 hello 这个目录
不过我们可以写入新的内容到这个 1.txt ,因为这个文件的所属用户组 root 拥有写入的权限。
输入 echo "新的一行" >> 1.txt
然后可以查看一下,输入 cat 1.txt … 你会看到新的内容。