Linux 基础学习训练教材 - CentOS 8.x

测验练习一:期中考练习

做完训练之后,要看看成果,最好就是继续实做!这个实做是期中考的相关仿真题,请务必进行练习喔!

最近更新时间: 2020/04/21

已经过了 7 堂课,现在应该进入期中考旺季了!来来来!先来练习一下怎么处理期中考啰!

期中考练习

  • 作业之一 (不提供学生答案,仅提供教师参考答案)

作业硬盘一般操作说明:

  • 打开云端虚拟机前,请务必确认你打开的硬盘是『practice1』,否则就会做错题目
  • 若要使用图形界面,请务必使用 student 身份登录,若需要切换身份,再激活终端机处理。
  • 若有简答题需要使用中文,请自行以第一堂课的动作自行处理输入法安装。
  • 每部虚拟机均有独特的网卡地址,请勿使用他人硬盘上传,否则计分为 0 分。
  • 每位同学均有自己的 IP 尾数,请先向老师询问您的 IP 尾数,才可以进行作业上传。
  • 最终上传作业结果,请务必使用 root 身份上传。
  • 进入作业硬盘后,先用 root 身份运行 vbird_book_setup_ip , 运行流程请参考:vbird_book_setup_ip

作业当中,某些部份可能为简答题~若为简答题时,请将答案写入 /home/student/ans.txt 当中,并写好正确题号,方便老师订正答案。 请注意,文件名写错将无法上传!

重要注意事项:

  • 请以 student 登录系统后,切换身份为 root 以进行底下的所有动作喔。
  • 若无法开机进入正常模式,则此次考试为 0 分
  • 若无法发送成绩,此次考试亦为 0 分

开始考试的练习:

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

作业结果传输:请以 root 的身分运行 vbird_book_check_unit 指令上传作业结果。 正常运行完毕的结果应会出现【XXXXXX_aa:bb:cc:dd:ee:ff_unitNN】字样。若需要查阅自己上传数据的时间, 请在操作系统上面使用浏览器查找: http://192.168.251.254 检查相对应的课程文件。 相关流程请参考: vbird_book_check_unit

修改历史:
  • 2017/03/23:是期中考仿真题!将前面的题目全部集成在一起~说麻烦也不麻烦~说难也有点难!大家加油吧!
  • 2020/04/21:主要是格式转为 CentOS8 而已,大部分的题目都没有重大的变化喔!
2017/03/23 以来统计人数
计数器
其他链接
环境工程模式篇
鸟园讨论区
鸟哥旧站

今日 人数统计
昨日 人数统计
本月 人数统计
上月 人数统计