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

测验练习二:期末考练习

就要期末考了,所以这个练习很重要!不要忽略实做的帮助!

最近更新时间: 2017/06/07

总共 14 堂课的基础练习已经结束了!现在就来统一整理整理整个考试吧!前面七堂课都在打基础,后面七堂课则是比较牵涉到管理员的工作。 所以期末考大部分还是着重在管理员的角度来思考喔!

期末考练习

前置动作:请使用 practice2 的硬盘进入操作系统,然后依据底下的注意事项与相关解释来进行所有的题目。

  • 重要注意事项:
  • 请以 student 登录系统后,切换身份为 root 以进行底下的所有动作喔。
  • 若发生底下的问题,则此次练习为 0 分
    • root 设置密码错误
    • IP 设置错误
    • 缺省出现图形界面 (如果开机不是纯文本界面,也是 0 分)
    • 若无法发送成绩,此次考试亦为 0 分
  • 某些题目是具有连续性的,因此请看懂题目后再进行。
  • 开始考试的练习:
  1. 系统救援
    • 你目前这个系统上,由于某些缘故, initramfs 文件已经失效,所以应该是无法顺利开机成功。
    • 请进入系统救援的模式,并依据系统既有的内核版本,将 initramfs 重建
    • 注意,重建时,应考虑 grub2 的原本设置档,以找到正确的文件名,方可顺利成功开机喔
  2. 系统初始化设置
    1. 这部 Linux 主机的 root 密码已经遗失,请重新设置 root 密码为:『 062727175 』
    2. 我需要每次开机都可以缺省的进入纯文本界面而非现行的图形界面
    3. 你系统的时间好像怪怪的,时区与时间好像都错乱了!请改回台北的标准时区与时间。
    4. 我需要设置好这部主机的网络参数成为:
      1. 使用的适配器为 eth0 这个适配器,且因为系统为拷贝而来的,因此这个网络连接请删除后重建另一个新的 eth0
      2. 需要开机就自动启动这个连接
      3. 网络参数的设置方式为手动设置,不要使用自动取得喔
      4. IP address 为: 192.168.251.XXX/24 (XXX 为上课时,老师给予的号码)
      5. Gateway 为: 192.168.251.250
      6. DNS server IP为:请依据老师课后说明来设置 (若无规定,请以 168.95.1.1 及 8.8.8.8 这两个为准)
      7. 主机名称:请设置为 stdXXX.book.vbird (其中 XXX 为上课时,老师给予的号码)
    5. 请使用网络校时 (chronyd) 的方式,使用贵校 (以昆山来说,就是 ntp.ksu.edu.tw) 作为服务器,主动更新你的系统时间。(若贵校并无 NTP 服务器,则以 time.stdtime.gov.tw 作为来源)
    6. 请使用 vbird_book_setup_ip 设置好你的学号数据。
  3. 文件系统方面的处理,包含分割(注意primary, extended, logical的限制)、格式化、挂载等
    1. 目前的系统有个出现磁盘出问题而快要损毁 (degrade) 的软件磁盘数组,找出并修复好该系统。
      • 该磁盘似乎已经被拔除一个 partition
      • 找出系统中具有的跟 RAID 内的 partition 容量相同,且没有被使用的 partition,那就是这个 RAID 缺乏的磁盘槽 (假设已经被修理好了)
      • 请将该磁盘槽加入原本的系统中,以救援这个磁盘数组 (让他变成 clean 的状态,改变 degraded 的困扰)
    2. 创建一个名为 /dev/md1 的磁盘数组,这个磁盘数组的建置方式如下:
      • 使用 5 颗 500M 的磁盘组成的 raid5
      • 每个 chunk 设置为 512K
      • 需要有 1 颗 spare disk (容量一样需要 500M)
      • 分割不足请自行设法建置、且软件磁盘数组文件名务必为 /dev/md1(设置完毕最好开机测试文件名正确性),另外, 不需要针对此软件磁盘数组进行格式化的动作。
    3. 以上题创建的 /dev/md1 为磁盘来源,并依据底下的说明,重新创建一个 LVM 的文件系统
      • VG 名称请取为 myvg 容量请自订,但是 PE 需要具有 8MB 的大小
      • LV 名称请取为 mylv,容量须有 200 个 PE 才行。
      • 这个文件系统请格式化为 ext4 文件系统,且挂载到 /data/ 目录中,每次开机都会自动挂载。
    4. 在目前的系统中,挂载在 /home 的LVM格式数据,请将它的容量变成 5GB左右,且这个目录内的数据并不会消失(无须重新格式化的意思)。
    5. 你的系统中有个文件名 /root/mybackup 的文件,这个文件原本是备份系统的数据,但扩展名不小心写错了! 请将这个文件修订成为比较正确的扩展名 (例如 /root/mybackup.txt 之类的模样),并且将该文件在 /srv/testing/ 目录中解开这个文件的内容。
    6. 找出 /etc/services 这个文件内含有『开头是 http 的关键字』那几行,并将该数据转存成 /data/myhttpd.txt 文件
  4. 帐号与权限控管方面的问题,包括新建帐号、帐号相关权限设置等
    1. 请让 student 可以通过 sudo 变身成为 root 的功能。
    2. 有个名为 alex 的帐号,他的密码为 mygodhehe ,这个帐号有点怪异,因此身为管理员的你,得要将该帐号暂时锁定。 意思是说,这个帐号的所有资源都不变,但是该帐号无法顺利使用密码登录的意思(密码锁定)
    3. 创建一个名为 mysys1 的系统帐号,且这个系统帐号 (1)不需要家目录 (2)给予 /sbin/nologin 的 shell (3)也不需要密码
    4. 创建新用户时,新用户的家目录应该都会出现一个名为 newhtml 的子目录存在
    5. 让 /home 这个目录支持 Quota 的文件系统功能
    6. 增加一个名为 examgroup 的群组
    7. 请写一只名为 /root/scripts/addusers.sh 的脚本,这个脚本将用来处理帐号的建置。 你应该使用 for…do…done 循环的方式来创建这只脚本,而 for 循环内的代码,请依序使用如下的方式来建置妥当
      1. 创建帐号时的相关参数设计:
        • 帐号名称为: examuser11 ~ examuser70 共 60 个帐号
        • 创建帐号时,每个帐号都要加入一个名为 examgroup 的次要群组支持
        • 每个帐号的全名说明就是该帐号的名称
      2. 每个帐号的密码均为 myPassWord
      3. 并且每个帐号首次登录系统时,都会被强迫要求更改密码 (chage ??)
      4. 每个帐号的 Quota 为 soft --> 120MB, hard --> 150MB
      5. 修改每位帐号家目录 (例如 examuser11 家目录在 /home/examuser11/ ) 的权限成为 drwx--x--x 的模样
      6. 脚本建置完毕后,请务必运行一次,以确定帐号可以顺利被创建!
    8. 请创建一个名为 /data/myexam 的目录,这个目录的权限设置是这样的:
      1. 关于 examgroup 群组内的用户权限:
        • 该目录可以让 examgroup 的用户具有完整的权限
        • 而其他人不具备任何权限
        • 在该目录底下新建的数据(不论文件还是目录),新数据的拥有群组都会是 examgroup
      2. 关于 examuser70 与 student 这两个帐号的特定要求:
        • 因为 examuser70 帐号被盗,因此 examuser70 针对 /data/myexam 设置为不具备任何权限
        • 因为 student 是管理员的一般帐号,该帐号也需要查找 /data/myexam 目录下的信息。 因此也 (1)请让 student 可以读、进入该目录,但不可以写入该目录。而且, (2)未来在此目录底下新建的任何数据, 缺省 student 都具有读与进入目录的权限(没有写入的权限喔!)。
  5. 系统基本操作,包括系统备份、自动化脚本、时间自动更新等机制
    1. 找出在/usr/bin, /usr/sbin 目录下,具有 s 或 t 等特殊权限的文件名 (SUID/SGID/SBIT),将这些文件名输出到/data/findperm.txt
    2. 由于系统上面有非常多的重要数据必须要进行备份,因此我们想要使用一支 script 来进行备份的动作,且将该 script 定时运行:
      1. 请撰写一只名为 /root/backup_system.sh 的脚本,来进行备份的工作
      2. 需要备份的目录有:/etc, /home, /var/spool/mail/, /var/spool/cron/, /var/spool/at/, /var/lib/,脚本的内容为:
        • 第一行一定要声明 shell 喔!
        • 自动判断 /backups 目录是否存在,若不存在则 mkdir 创建她,若存在则不进行任何动作
        • 设计一个名为 source 的变量,变量内容以空格隔开所需要备份的目录
        • 设计一个名为 target 的变量,该变量为 tar 所创建的文件名,文件名命名规则 /backups/mysystem_20xx_xx_xx.tar.gz , 其中 20xx_xx_xx 为西元年、月、日的数字,该数字依据你备份当天的日期由 date 自行取得。
        • 开始利用 tar 来备份
      3. 请注意,撰写完毕之后,一定要立刻运行一次该脚本!确认实际有创建 /backups 以及相关的备份数据喔!
    3. 排定上述的备份指令在每个星期 6 的凌晨 2 点进行这个备份的动作,且这个script在运行的时候:
      • 备份指令运行的过程请使用数据流重导向将过程完整的保存在/backups/backup.log 这个文件中(包括正确与错误信息)
      • 使用NI值 10 来运行此指令。
    4. 关于 CentOS7 的软件仓储功能,与网络安装/自动更新机制:
      1. 请以贵校的 FTP 或 http 为主,设置好你的 CentOS server 的 YUM 设置档。以昆山来说,可使用 http://ftp.ksu.edu.tw/ 来查找所需要的三个软件仓库。(缺省的有 base, updates, extras 共有三个软件仓储!)
      2. 请至少升级内核 (kernel) 到最新版本,且升级完毕后,需要重新开机为宜
      3. 请设置每天凌晨 3 点自动背景进行全系统升级。
      4. 这部主机需要作为未来开发软件之用,因此需要安装一个开发用的软件群组,请安装他。
    5. 关于开机菜单调整
      1. timeout时间设置为 15 秒,
      2. 缺省所有的内核参数都会加入 noapic 及 noacpi 两个参数
      3. 开机菜单多一个回到MBR的设置,菜单名称内亦须包含『 MBR 』字样
      4. 开机菜单在最后多一项可以进入图形界面模式,这个图形界面请使用原有的内核版本 (不是刚刚升级的内核版本), 且title必须含有『 mygraphical 』的字样才行!使用的是新内核来进行这项工作
    6. 我的 /usr/sbin/setquota 这个文件不小心删除了,该如何救回来?(可以使用 rpm 去追踪是哪个软件提供的文件后,移除再安装该软件即可完成此题目。)
    7. 服务的管理部份:
      1. 请让你的Linux变成 WWW 服务器,且首页的内容会是你的姓名与学号 (可以使用英文),同时,整个 Internet 应该都要能够连接到你的 WWW 服务器才对。(注意上课提到的服务建置五个步骤!)
      2. 请关闭右列的各项服务:cups.*, rpcbind.*, bluetooth.*
  6. 脚本创建与系统管理
    1. 你的系统将在 7 月的 20 号 08:00 进行关机的岁修工作,请以『单次』工作调度来设计关机的动作 (poweroff)
    2. 系统开机之后,会自动寄出一封 email 给 root,说明系统开机了。指令可以是『 echo "reboot new" | mail -s 'reboot message' root 』, 请注意,这个动作必须是系统『自动于开机完成后就动作』,而不需要用户或管理员登录喔! (hint: rc.local)
    3. 为了方便大家使用 ps 外带的参数来查找系统的进程,因此管理员创建一只名为 /usr/local/bin/myprocess 的脚本让大家方便使用,脚本内容主要为:
      1. 第一行一定要声明 shell 为 bash 才行;
      2. 主要仅运行『 /bin/ps -Ao pid,user,cpu,tty,args 』
      3. 这只脚本必须要让所有人都可以运行才行!
    4. 写一只名为 /usr/local/bin/myans.sh 的脚本,这只脚本的运行结果会这样:
      1. 脚本内第一行一定要声明 shell 为 bash
      2. 当运行 myans.sh true 时,屏幕会输出『 Answer is true 』,且消息为缺省的 Standard output
      3. 当运行 myans.sh false 时,屏幕会输出『 Answer is false 』,且消息输出到 starndard error output
      4. 当外带参数不是 true 也不是 false 时,屏幕会输出『 Usage: myans.sh true|false 』
  7. 完成上述所有的题目后,请重新开机,并请在开机后 5 分钟内运行上传脚本,否则系统不允许你上传喔!

作业结果传输:请以 root 的身分运行 vbird_book_check_unit 指令上传作业结果。 正常运行完毕的结果应会出现【XXXXXX;aa:bb:cc:dd:ee:ff;unitNN】字样。若需要查阅自己上传数据的时间, 请在操作系统上面使用: http://192.168.251.250 检查相对应的课程文件。

修改历史:
  • 2017/03/23:是期中考仿真题!将前面的题目全部集成在一起~说麻烦也不麻烦~说难也有点难!大家加油吧!
2017/03/23以来统计人数
计数器
其他链接
环境工程模式篇
鸟园讨论区
鸟哥旧站

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