我们知道权限对于使用者帐号来说是非常重要的,因为他可以限制使用者能不能读取/创建/删除/修改文件或目录! 在这一章我们介绍了很多文件系统的管理指令,第五章则介绍了很多文件权限的意义。在这个小节当中, 我们就将这两者结合起来,说明一下什么指令在什么样的权限下才能够运行吧!^_^
一、让使用者能进入某目录成为“可工作目录”的基本权限为何:
- 可使用的指令:例如 cd 等变换工作目录的指令;
- 目录所需权限:使用者对这个目录至少需要具有 x 的权限
- 额外需求:如果使用者想要在这个目录内利用 ls 查阅文件名,则使用者对此目录还需要 r 的权限。
二、使用者在某个目录内读取一个文件的基本权限为何?
- 可使用的指令:例如本章谈到的 cat, more, less等等
- 目录所需权限:使用者对这个目录至少需要具有 x 权限;
- 文件所需权限:使用者对文件至少需要具有 r 的权限才行!
三、让使用者可以修改一个文件的基本权限为何?
- 可使用的指令:例如 nano 或未来要介绍的 vi 编辑器等;
- 目录所需权限:使用者在该文件所在的目录至少要有 x 权限;
- 文件所需权限:使用者对该文件至少要有 r, w 权限
四、让一个使用者可以创建一个文件的基本权限为何?
- 目录所需权限:使用者在该目录要具有 w,x 的权限,重点在 w 啦!
五、让使用者进入某目录并执行该目录下的某个指令之基本权限为何?
- 目录所需权限:使用者在该目录至少要有 x 的权限;
- 文件所需权限:使用者在该文件至少需要有 x 的权限
例题:让一个使用者 dmtsai 能够进行“cp /dir1/file1 /dir2”的指令时,请说明 dir1, file1, dir2 的最小所需权限为何?答:执行 cp 时, dmtsai 要“能够读取来源文件,并且写入目标文件!”所以应参考上述第二点与第四点的说明! 因此各文件/目录的最小权限应该是:
- dir1 :至少需要有 x 权限;
- file1:至少需要有 r 权限;
- dir2 :至少需要有 w, x 权限。
例题:有一个文件全名为 /home/student/www/index.html ,各相关文件/目录的权限如下:
drwxr-xr-x 23 root root 4096 Sep 22 12:09 / drwxr-xr-x 6 root root 4096 Sep 29 02:21 /home drwx------ 6 student student 4096 Sep 29 02:23 /home/student drwxr-xr-x 6 student student 4096 Sep 29 02:24 /home/student/www -rwxr--r-- 6 student student 369 Sep 29 02:27 /home/student/www/index.html
请问 vbird 这个帐号(不属于student群组)能否读取 index.html 这个文件呢?答:虽然 www 与 index.html 是可以让 vbird 读取的权限,但是因为目录结构是由根目录一层一层读取的, 因此 vbird 可进入 /home 但是却不可进入 /home/student/ ,既然连进入 /home/student 都不许了, 当然就读不到 index.html 了!所以答案是“vbird不会读取到 index.html 的内容”喔!
那要如何修改权限呢?其实只要将 /home/student 的权限修改为最小 711 ,或者直接给予 755 就可以啰! 这可是很重要的概念喔!
6.7 重点回顾
- 绝对路径:“一定由根目录 / 写起”;相对路径:“不由 / 写起,而是由相对当前目录写起”
- 特殊目录有:., .., -, ~, ~account需要注意;
- 与目录相关的指令有:cd, mkdir, rmdir, pwd 等重要指令;
- rmdir 仅能删除空目录,要删除非空目录需使用“ rm -r ”指令;
- 使用者能使用的指令是依据 PATH 变量所规定的目录去搜寻的;
- ls 可以检视文件的属性,尤其 -d, -a, -l 等选项特别重要!
- 文件的复制、删除、移动可以分别使用:cp, rm , mv等指令来操作;
- 检查文件的内容(读档)可使用的指令包括有:cat, tac, nl, more, less, head, tail, od 等
- cat -n 与 nl 均可显示行号,但默认的情况下,空白行会不会编号并不相同;
- touch 的目的在修改文件的时间参数,但亦可用来创建空文件;
- 一个文件记录的时间参数有三种,分别是 access time(atime), status time (ctime), modification time(mtime),ls 默认显示的是 mtime。
- 除了传统的rwx权限之外,在Ext2/Ext3/Ext4/xfs文件系统中,还可以使用chattr与lsattr设置及观察隐藏属性。 常见的包括只能新增数据的 +a 与完全不能更动文件的 +i 属性。
- 新建文件/目录时,新文件的默认权限使用 umask 来规范。默认目录完全权限为drwxrwxrwx, 文件则为-rw-rw-rw-。
- 文件具有SUID的特殊权限时,代表当使用者执行此一binary程序时,在执行过程中使用者会暂时具有程序拥有者的权限
- 目录具有SGID的特殊权限时,代表使用者在这个目录下面新建的文件之群组都会与该目录的群组名称相同。
- 目录具有SBIT的特殊权限时,代表在该目录下使用者创建的文件只有自己与root能够删除!
- 观察文件的类型可以使用 file 指令来观察;
- 搜寻指令的完整文件名可用 which 或 type ,这两个指令都是通过 PATH 变量来搜寻文件名;
- 搜寻文件的完整文件名可以使用 whereis 找特定目录或 locate 到数据库去搜寻,而不实际搜寻文件系统;
- 利用 find 可以加入许多选项来直接查询文件系统,以获得自己想要知道的文件名。