下面我们可以通过一些操作来理解一下权限的作用。 输入 ls -l … 列出当前目录里面的文件和目录。
先看一下这个 hello.txt 文件的权限,这个文件的拥有者是 root 这个用户,所属的用户组是 root 用户组,对于 hello.txt 这个文件的拥有者来说,设置的权限是rw,r表示查看,w表示写入,最后一位用的是 - ,表示没有 x 执行权限。
这也就是 hello.txt 的拥有者可以查看这个文件的内容,也可以写入新的内容到这个文件里面。但是并没有执行权限,执行权限对于文件来说,就是允许用户可以像运行程序一样执行文件,一般来说我们并不需要这个权限。
再看一下 hello.txt 文件所属的用户组设置的权限,只有一个 r ,查看权限。这就表示 root 这个用户组里的用户,只能查看这个文件,不能写入也不能执行这个文件。
最后是其它用户的权限,也只有一个查看权限。
下面我们来做几个实验,目前我们使用的是 root 用户,root 这个用户是系统的超级管理员,它不受任何权限的限制,可以在系统里做任何事。
切换用户
这里我们可以切换到刚才创建的 xiaoxue 用户,切换用户可以使用 su 命令。su 是 Switch User 的缩写,就是切换用户的意思。
输入 su xiaoxue … 回车
在终端的提示里会显示 xiaoxue@后面是主机名,这就表示我们现在的用户身份是 xiaoxue 。
输入 ls -l ,这里我们之所以可以使用 ls -l 命令显示出当前目录里的内容,是因为 xiaoxue 这个用户有权限查看当前目录里的内容。一会儿我们再看一下目录的权限。
因为 hello.txt 这个文件所属的用户组是 root ,而 xiaoxue 这个用户所属的用户组里包含 root 这个用户组。所以,hello.txt 这个文件对于 xiaoxue 这个用户的权限就应该是文件所属用户组的权限。这里就是一个查看的权限。
我们可以使用 cat 命令,查看 hello.txt 文件里的内容… cat hello.txt …
你会看到屏幕上会输出 hello.txt 文件的内容,因为 xiaoxue 用户可以查看这个文件的内容。
下面我们再试一下给这个文件添加点新的内容
echo "来点新东西" >> hello.txt
回车,提示我们权限不够,这是因为 xiaoxue 所属的 root 用户组,在 hello.txt 这个文件上面,并没有可以写入的权限。
如果你想让 xiaoxue 这个用户可以写入新内容到 hello.txt 这个文件,有两方法,第一种是你可以把 hello.txt 文件的拥有者更换成 xiaoxue ,因为 hello.txt 的拥有者有写入文件的权限 。
第二种方法是你可以为 hello.txt 所属的用户组添加一个写入的权限。因为 hello.txt 所属的用户组是 root,而 xiaoxue 这个用户正好也在这个 root 用户组里,如果为 root 用户组添加写入权限,那么属于 root 用户组的 xiaoxue 这个用户也就拥有 hello.txt 这个文件的写入权限了。
在下面的视频里,我们分别来试一下。