6.8 本章习题
( 要看答案请将鼠标移动到“答:”下面的空白处,按下左键圈选空白处即可察看 )
情境仿真题一:假设系统中有两个帐号,分别是 alex 与 arod ,这两个人除了自己群组之外还共同支持一个名为 project 的群组。假设这两个用户需要共同拥有 /srv/ahome/ 目录的开发权,且该目录不许其他人进入查阅。 请问该目录的权限设置应为何?请先以传统权限说明,再以 SGID 的功能解析。
目标:了解到为何专案开发时,目录最好需要设置 SGID 的权限!
前提:多个帐号支持同一群组,且共同拥有目录的使用权!
需求:需要使用 root 的身份来进行 chmod, chgrp 等帮用户设置好他们的开发环境才行! 这也是管理员的重要任务之一!
首先我们得要先制作出这两个帐号的相关数据,帐号/群组的管理在后续我们会介绍, 您这里先照着下面的指令来制作即可:
然后开始来解决我们所需要的环境吧!
首先创建所需要开发的专案目录:
从上面的输出结果可发现 alex 与 arod 都不能在该目录内创建文件,因此需要进行权限与属性的修改。 由于其他人均不可进入此目录,因此该目录的群组应为project,权限应为770才合理。
实际分别以两个使用者来测试看看,情况会是如何?先用 alex 创建文件,然后用 arod 去处理看看。
由上面的结果我们可以知道,若单纯使用传统的 rwx 而已,则对刚刚 alex 创建的 abcd 这个文件来说, arod 可以删除他,但是却不能编辑他!这不是我们要的样子啊!赶紧来重新规划一下。
加入 SGID 的权限在里面,并进行测试看看:
所以最终的结果显示,此目录的权限最好是“2770”,所属文件拥有者属于root即可,至于群组必须要为两人共同支持的project 这个群组才行!
简答题部分:
什么是绝对路径与相对路径绝对路径的写法为由 / 开始写,至于相对路径则不由 / 开始写!此外,相对路径为相对于目前工作目录的路径!
如何更改一个目录的名称?例如由 /home/test 变为 /home/test2mv /home/test /home/test2
PATH 这个环境变量的意义?这个是用来指定可执行文件执行的时候,指令搜寻的目录路径。
umask 有什么用处与优点?umask 可以拿掉一些权限,因此,适当的定义 umask 有助于系统的安全, 因为他可以用来创建默认的目录或文件的权限。
当一个使用者的 umask 分别为 033 与 044 他所创建的文件与目录的权限为何?在 umask 为 033 时,则默认是拿掉 group 与 other 的 w(2)x(1) 权限,因此权限就成为“文件 -rw-r--r-- , 目录 drwxr--r-- ”而当 umask 044 时,则拿掉 r 的属性,因此就成为“文件 -rw--w--w-,目录 drwx-wx-wx”
什么是 SUID ?当一个指令具有 SUID 的功能时,则:
SUID 权限仅对二进制程序(binary program)有效;
执行者对于该程序需要具有 x 的可执行权限;
本权限仅在执行该程序的过程中有效 (run-time);
执行者将具有该程序拥有者 (owner) 的权限。
当我要查询 /usr/bin/passwd 这个文件的一些属性时(1)传统权限;(2)文件类型与(3)文件的隐藏属性,可以使用什么指令来查询?ls -al file lsattr
尝试用 find 找出目前 linux 系统中,所有具有 SUID 的文件有哪些?find / -perm +4000 -print
找出 /etc 下面,文件大小介于 50K 到 60K 之间的文件,并且将权限完整的列出 (ls -l):find /etc -size +50k -a -size -60k -exec ls -l {} \; 注意到 -a ,那个 -a 是 and 的意思,为符合两者才算成功
找出 /etc 下面,文件大小大于 50K 且文件所属人不是 root 的文件名,且将权限完整的列出 (ls -l);find /etc -size +50k -a ! -user root -exec ls -ld {} \; find /etc -size +50k -a ! -user root -type f -exec ls -l {} \; 上面两式均可!注意到 ! ,那个 ! 代表的是反向选择,亦即“不是后面的项目”之意!
找出 /etc 下面,容量大于 1500K 以及容量等于 0 的文件:find /etc -size +1500k -o -size 0 相对于 -a ,那个 -o 就是或 (or) 的意思啰!
Last updated