游戏开发工具

结合实例分析Linux权限对指令执行的影响

通过本章的学习我们知道,权限对于使用者账号是非常重要的,因为它可以限制使用者是否能读取、建立、删除、修改文件或目录。

本节将结合前面章节学到的有关文件系统管理的指令,通过几个实例向大家说明,权限对 Linux 指令执行的重要性。

【实例 1】
让当前用户进入某指定目录,可以使用什么指令?需要具备何种权限?

用户可以使用 cd 指令,同时要想使此命令成功执行,需要用户对要进入的目录具有 x 权限。另外,如果用户还想要在此目录中使用 ls 命令,还需要对此目录具有 r 权限。


【实例 2】
如果想在某目录内读取一个文件,可以使用什么指令?需要具备何种权限?

用户可以使用 cat、more、less 等指令,并且该用户对此目录至少需要具有 x 权限,对读取的文件需要具有 r 权限。


【实例 3】
如果想修改一个文件,可以使用什么指令?需要具备何种权限?

可以使用 vim 编辑器,对于权限方面,用户至少需要对该文件所在目录具有 x 权限,同时对该文件具有 r、w 权限。


【实例 4】
要想让使用者 Linuxer 能够执行 cp /dir1/file1 /dir2 的指令,则 Linuxer 需要对 dir1、file1、dir2 分别具备哪些权限。

执行 cp 命令时,Linuxer 要能够读取指定文件,并且能够写入目标文件,因此:

  • dir1:至少需要有 x 权限;

  • file1:至少需要有 r 权限;

  • dir2:至少需要有 w,x 权限。


【实例 5】
有一个文件,其绝对路径为 /home/student/www/index.html,其中各个相关文件或者目录的权限分别如下所示:

drwxr-xr-x 23    root     root 4096 Sep 22 12:09 /
drwxr-xr-x  6    root     root 4096 Sep 22 02:09 /home
drwx------  6 student student 4096 Sep 22 02:10 /home/student
drwxr-xr-x  6 student student 4096 Sep 22 02:10 /home/student/www
drwxr--r--  6 student student  369 Sep 22 02:11 /home/student/www/index.html

那么,当使用 test 这个账号(不属于 student 群组)能够成功读取 index.html 这个文件呢?

因为目录结构是由根目录一层一层读取的,通过分析以上各个目录和文件的权限得知,对于 vbird 账号来说,它可以进入 /home,但却不可以进入 /home/student,因此可以判定,vbird 无法成功读取 index.html 文件中的内容。