期中考练习
作业硬盘一般操作说明:
- 打开云端虚拟机前,请务必确认你打开的硬盘是『practice1』,否则就会做错题目
- 若要使用图形界面,请务必使用 student 身份登录,若需要切换身份,再激活终端机处理。
- 若有简答题需要使用中文,请自行以第一堂课的动作自行处理输入法安装。
- 每部虚拟机均有独特的网卡地址,请勿使用他人硬盘上传,否则计分为 0 分。
- 每位同学均有自己的 IP 尾数,请先向老师询问您的 IP 尾数,才可以进行作业上传。
- 最终上传作业结果,请务必使用 root 身份上传。
- 进入作业硬盘后,先用 root 身份运行 vbird_book_setup_ip ,
运行流程请参考:vbird_book_setup_ip
作业当中,某些部份可能为简答题~若为简答题时,请将答案写入 /home/student/ans.txt 当中,并写好正确题号,方便老师订正答案。
请注意,文件名写错将无法上传!
重要注意事项:
- 请以 student 登录系统后,切换身份为 root 以进行底下的所有动作喔。
- 若无法开机进入正常模式,则此次考试为 0 分
- 若无法发送成绩,此次考试亦为 0 分
开始考试的练习:
- 系统救援
- 问题: 因为某些缘故,目前这个操作系统应该是无法顺利开机的。
- 思考: 根据猜测,可能的原因与 (1)管理员曾经动过 chsh ,(2)管理员似乎也更动过 fstab 这个设置档。
- 救援: 请依据这些之前的可能举动,来恢复系统的可登录状态。
- 提醒注意: 千万不要忘记 .autorelabel 的动作!
- 成功开机登录后: 顺利登录系统后,再使用 root 身份处理 vbird_book_setup_ip 的脚本设置。
- 管理员的操作环境整理: (底下的动作每次登录都可以生效,须修改设置档喔!)
- 当你用 student 转成 root 之后,会发现很奇怪的现象,就是很多指令都不能运行了。
这应该与上次登录管理员的用户处理到错误的 bash 环境设置档有关。请查找 root 可能的设置档后,将这个问题解决。
- 增加 histroy 的输出,让 root 自己最大可达 10000 笔纪录,且 (1)其他用户保留默认值 (2)纪录档内也要纪录 10000 笔。
- 创建一个命令别名 myerr 这个指令,这个指令会运作『 echo "I am error message" 』这个指令串。
- 当 root 运行『 cd ${mywork} 』时,工作目录会跑去 /usr/local/libexec/ 当中
- 文件系统的整理:
- 系统内有个名为 /dev/vda4 (或 /dev/sda4) 的分区,这个分区是做错的,因此,请将这个分区卸载,
然后删除分割,将磁盘容量释放出来。
- 完成上面的题目之后,请依据底下的说明创建好所需要的文件系统(所有的新挂载,应该使用 UUID 来挂载较佳。)
1GB | XFS | /mydata/xfs | nosuid |
2GB | VFAT | /mydata/vfat | uid均为student |
1GB | EXT4 | /mydata/ext4 | noatime |
1GB | swap | - | - |
上述四个添加的数据都能够开机后自动的挂载或激活。
- 有个光盘映像档 /mycdrom.iso 的文件,请将他挂载到 /mydata/cdrom 里面,而且每次开机都能自动挂载上来。
(请自行查找光盘文件挂载时所需要的文件系统类型)
- 创建一个名为 /mydata.img 的 200MB 大文件,这个文件格式化为 xfs ,且开机会主动的挂载于 /mydata/xfs2/ 目录中
- 基础帐号管理,请依据底下的说明,创建或恢复许多帐号:
- 请删除系统中的 baduser 这个帐号,同时将这个帐号的家目录与邮件文件同步删除。
- 有个帐号 gooduser 不小心被管理员删除了,但是这个帐号的家目录与相关邮件都还存在。请参考这个帐号可能的家目录所保留的 UID 与 GID,
并尝试以该帐号原有的 UID/GID 信息来重建该帐号。而这个帐号的密码请给予 MyPassWord 的样式。
- 新建群组名称为: mygroup, nogroup
- 新建帐号名称为: myuser1, myuser2, myuser3 ,通通加入 mygroup,且密码为 MyPassWord
- 新建帐号名称为: nouser1, nouser2, nouser3 ,通通加入 nogroup,且密码为 MyPassWord
- 新建帐号名称为: ftpuser1, ftpuser2, ftpuser3,无须加入次要群组,密码为 MyPassWord,且这三个帐号主要用来作为 FTP 传输用的帐号,
因此需要不能交互的 shell。
- 管理群组共用数据的权限设计:
- 创建一个名为 /srv/myproject 的目录,这个目录可以让 mygroup 群组内的用户完整使用,且【新建的文件拥有群组】为
mygroup 。不过其他人不能有任何权限
- 虽然 nogroup 群组内的用户对于 /srv/myproject 应该没有任何权限,但当 nogroup 内的用户运行 /usr/local/bin/myls
时,可以产生与 ls 相同的信息,且暂时拥有 mygroup 群组的权限,因此可以查找到 /srv/myproject 目录内的文件名信息。
也就是说,当你使用 nouser1 的身分运行【myls /srv/myproject】时,应该是能够查阅到该目录内的文件名信息。
- 创建一个名为 /srv/change.txt 的空文件,这个文件的拥有者为 myuser1,拥有群组为 nogroup,myuser1 可读可写, nouser1 可读,其他人无权限。
这个文件所有人都不能运行。此外,这个文件的最后修改时间请调整成 2020 年 02 月 5 日的 13 点 0 分。
- 文件的搜索与管理:
- 将 /usr/sbin 与 /usr/bin 里面,只要是具有 SUID 与/或 SGID 的权限文件,就将该文件连同权限,全部拷贝到 /root/findperm 目录中。
- 找出系统中文件拥有者为 examuserya 的文件名,并将这些找到的文件名(含权限)拷贝到 /root/finduser/ 目录内
- 有个名为 /srv/mylink.txt 文件,这个文件似乎有许多的实体链接档。请将这个文件的所有实体链接档的文件名(含该文件本身),通通拷贝到
/root/findlink 目录下。
- 想办法创建一个文件名 /srv/mail ,当用户进入 (cd) 这个文件名时,就会被导向 /var/spool/mail 去。(考虑是 symbolic link
还是 hard linke 呢?)
- 在 root 家目录下,创建一个名为 -hidden 的目录(开头为减号),并将 root 家目录底下的隐藏档中,以 .b 为开头的文件,
通通拷贝到 -hidden 目录内。
- 在 root 家目录下,创建一个名为 mydir 的目录,在该目录底下创建 userid01, userid02... 到 userid50 的 50 个空目录
- 在 root 家目录下,创建一个名为 myfile 的目录,在该目录底下,创建『 file_XXX_YYY_ZZZ.txt 』的文件,其中 XXX 代表 mar, apr, may 三个字符串,
YYY 代表 first,second,third 三个字符串, ZZZ 代表 paper, photo, chart 三个字符串。
- 在 root 家目录下有个名为 ~myuser1 的目录,请删除该目录。
- 文件内容的处理:
- 通过 date 的功能,将目前的时间以『 YYYY-MM-DD HH:MM 』的格式,使用『覆盖』的方法记载进 /root/mytext.txt 文件中。
- 使用一个单一指令,将 /etc/services, /etc/fstab, /etc/passwd, /etc/group 这四个文件的最后 4 行截取下来后
(所以应该会有 4*4=16 行,同时会有该文件名记载,与一些空白行),『累加』转存到 /root/mytext.txt 当中。
- 使用 ll 的方式,将 /etc/selinux/ 的所有文件列出(不含子目录内容),但是时间需要使用完整格式
(类似『2020-04-20 23:17:46.363000000 +0800』的格式),并将输出结果『累加』转存到 /root/mytext.txt 当中。
- 问答题:请将底下的问题的答案写入 /home/student/ans.txt 文件中:
- 当你登录系统,系统会给予一个名为 mykernel 的变量,请将这个变量的内容写下来。
- 格式化ext4文件系统后,主要有superblock, inode与block区块,请问这些区块主要放置哪些东西?
- 使用任何你知道的进程观察指令,找到名为 sleep 200h 的进程,找出他的 NI 值是多少?
- 在 /srv/ 底下有个隐藏档的目录存在,请列出该『目录』的完整文件名。
- 有一个文件名称为:/mydir/myfile(假设文件是存在的,直接思考题),若 student 用户想要修改myfile的内容,那么
student 『至少』需要具有什么权限才能够修改该文件?
- 有一个文件文件名为 /usr/local/etc/myhosts,请问 student 对这个文件具有什么权限?
- 目前你的系统上,哪两个重要的目录是(i)内存内信息与(ii)硬件信息,因此这两个目录不占硬盘空间?
- 完成上述所有的题目后,请重新开机,并请在开机后 5 分钟内运行上传脚本,否则系统不允许你上传喔!
作业结果传输:请以 root 的身分运行 vbird_book_check_unit 指令上传作业结果。
正常运行完毕的结果应会出现【XXXXXX_aa:bb:cc:dd:ee:ff_unitNN】字样。若需要查阅自己上传数据的时间,
请在操作系统上面使用浏览器查找: http://192.168.251.254 检查相对应的课程文件。
相关流程请参考: vbird_book_check_unit