Linux 基礎學習訓練教材 - RockyLinux 9.x

測驗練習一:期中考練習

做完訓練之後,要看看成果,最好就是繼續實做!這個實做是期中考的相關模擬題,請務必進行練習喔!

最近更新時間: 2023/03/03

已經過了 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 ,(2)管理員似乎也更動過 fstab 這個設定檔。
    • 救援: 請依據這些之前的可能舉動,來恢復系統的可登入狀態。
    • 提醒注意: 千萬不要忘記 .autorelabel 的動作!
    • 成功開機登入後: 順利登入系統後,再使用 root 身份處理 vbird_book_setup_ip 的腳本設定。
  2. 管理員的操作環境整理: (底下的動作每次登入都可以生效,須修改設定檔喔!)
    1. 當你用 student 轉成 root 之後,會發現很奇怪的現象,就是很多指令都不能執行了。 這應該與上次登入管理員的用戶處理到錯誤的 bash 環境設定檔有關。請查詢 root 可能的設定檔後,將這個問題解決。
    2. 增加 histroy 的輸出,讓 root 自己最大可達 10000 筆紀錄,且 (1)其他用戶保留預設值 (2)紀錄檔內也要紀錄 10000 筆。
    3. 建立一個命令別名 myerr 這個指令,這個指令會運作『 echo "I am error message" 』這個指令串。
    4. 當 root 執行『 cd ${mywork} 』時,工作目錄會跑去 /usr/local/libexec/ 當中
  3. 檔案系統的整理:
    1. 系統內有個名為 /dev/vda4 (或 /dev/sda4) 的分割槽,這個分割槽是做錯的,因此,請將這個分割槽卸載, 然後刪除分割,將磁碟容量釋放出來。
    2. 完成上面的題目之後,請依據底下的說明建立好所需要的檔案系統(所有的新掛載,應該使用 UUID 來掛載較佳。)
      容量檔案系統掛載點掛載額外參數
      1GBXFS/mydata/xfsnosuid
      2GBVFAT/mydata/vfatuid均為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. 問答題:請將底下的問題的答案寫入 /home/student/ans.txt 檔案中:
    1. 當你登入系統,系統會給予一個名為 mykernel 的變數,請將這個變數的內容寫下來。
    2. 格式化ext4檔案系統後,主要有superblock, inode與block區塊,請問這些區塊主要放置哪些東西?
    3. 使用任何你知道的程序觀察指令,找到名為 sleep 200h 的程序,找出他的 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

修改歷史:
  • 2023/03/01:主要是格式轉為 RockyLinux 9 而已,大部分的題目都沒有重大的變化喔!
  • 2023/03/03:將作業硬碟做個完整的重新處理,偵測的情況好上很多!
2023/03/03 以來統計人數
計數器
其他連結
環境工程模式篇
鳥園討論區
鳥哥舊站

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