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以來統計人數
計數器
其他連結
環境工程模式篇
鳥園討論區
鳥哥舊站

今日 人數統計
昨日 人數統計
本月 人數統計
上月 人數統計