期末考練習
前置動作:請使用 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 檢查相對應的課程檔案。