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