# 111 LSA 期中考題 - 上機考 ###### tags: `lsa` - Book mode https://hackmd.io/@ncnu-opensource/book ## 規則 ![](https://i.imgur.com/hJueRO7.png) - 如有問題請舉手發問。 - 請勿編輯本頁面。 - 請勿以私訊或聊天室等任何方式彼此溝通。 - 當然也請不要直接實體溝通啦... 那算作弊哦 - 可以上網自由地找資料、補充這學期相對應的共筆頁面。 - 上機需要 DEMO,DEMO 時若助教發現答案錯誤,學生可以有一次修正機會。 :::warning 本次考試作答環境以 Ubuntu 20.04 為主 ::: **We Are Watching You.** ## 上機 53% + 12% ### web server(21%)+(7%) :::info **配分標準 (7%)** * 連線成功且網頁顯示無誤 (7%) * 連線成功但網頁顯示有誤 (4%) * 連線失敗、配置錯誤 (0%) ::: ![](https://i.imgur.com/FCGqrAK.png) - 使用 nginx 設定以下 domain name 使他們連到對應的網頁 - `s<學號>.lsa.lb` - `:80`:load balance - `s<學號>.lsa.proxy` - `:80`:proxy 到 `ammon.bluet.org` - `s<學號>.lsa.apache` - `:8071`:課程資訊 - `s<學號>.lsa.lighttpd` - `:8072`:老師資訊 - `s<學號>.lsa.lighttpd/~<username>` - `:8072/~<username>`:學生資訊 - apache (8071) - 連線 8071 port,會顯示課程資訊 ```html= <head> <meta charset='UTF-8'> <h2>本課程的</h2> <h2>中文名稱: (請填寫內容) </h2> <h2>英文名稱: (請填寫內容) </h2> <h2>英文縮寫: (請填寫內容) </h2> </head> ``` - lighttpd (8072) - 連線 8072 port,會顯示老師資訊 ```=html <head> <meta charset='UTF-8'> <h1>LSA 的老師</h1> <h2>中文名字:(請作答)</h2> <h2>英文全名:(請作答)</h2> <h2>常用 ID:(請作答)</h2> </head> ``` - [加分題] 在網址後加入 `/~<username>`,顯示學生資訊 :::info 啟動模組 ``` #enable lighttpd config sudo lighttpd-enable-mod Enable module: <userdir> ``` 模組名稱:<userdir> ```s= sudo service lighttpd force-reload ``` **記得看指令輸出的訊息** ::: ```html= <head> <meta charset='UTF-8'> <h1>學生資訊</h1> <h2>學號</h2> <h2>姓名</h2> </head> ``` ### iptables (14%) (在七點講解前可以先跳過) > [橋接網路卡問題](https://hackmd.io/8dPDrWxhS-el-BchF5G5HQ?view) > [virtualbox NAT 設置](https://hackmd.io/@chofinn/ry42_JHvo) - 開放 NAT 的 80 port,透過連到 NAT 80 port, 可以連到 webServer 的 80 port (3%) - 開放 NAT 的 2222 port,連到此可以 ssh 進 webServer (3%) - 禁止外部 ssh 進 NAT (3%) - webServer 到 NAT 的流量都允許 (3%) - 其餘進來的流量或轉發都禁止 (2%) ### 你的是我的,我的還是我的(3%) 先用 c 寫出以下程式,然後透過 gcc compile 出 `whoareyou`,之後把執行檔的權限設為只有擁有者可以讀寫執行,其餘人能讀能執行,然後任何人執行該程式的時候都是印出擁有者的 uid。 - `vim SUID.c` ```c----= #include <stdio.h> #include <unistd.h> int main() { printf("The uid is: %d\n", geteuid()); return 0; } ``` - `gcc SUID.c -o whoareyou` - `./whoareyou` ![](https://i.imgur.com/ClhiMmh.png) ![](https://i.imgur.com/vxeEaee.png) ### 自動記時 (5%) 請使用 `crontab` 與 `date` 每隔一分鐘將檔案 `time.txt` 的內容設為當下時間。 :::info >瘟腥提示: >兩個命令如何使用,可以透過 `man` 查閱[name=蓬萊人偶] ::: ### God is always true (3%) 這裡有一個 `god.py` 的內容 ```=py execute(617) ``` 執行命令 `python god.py` 後會有錯誤訊息 請問要下甚麼命令,才可以把錯誤訊息存到 `OK.txt`,然後不會顯示錯誤訊息在畫面上 ### 火車快飛 (3%) 在主機新建一個使用者 `train`,登入此使用者之後會直接自動執行印出火車的命令 (sl),執行結束後,就直接登出 ### 無限列車 (4%) ![](https://i.imgur.com/eZjEbjp.png =70%x) >[圖片來源](https://kimetsu-no-yaiba.fandom.com/zh/wiki/%E9%AD%98%E5%A4%A2) + 魘夢收到無慘命令要去殺死柱和炭治郎,請你修改某個檔案,讓之後新增的使用者,預設每次開 `terminal` 的時候都會自動跑小火車 (sl) ### (加分題)Memento mori (5%) :::danger **準備好作答之後,請先找助教交卷,然後立即做答此題** **本題作答之後視為交卷,不可再繼續作答,須離開考場** **請最後再做這一題** **本題請以虛擬機作答** ::: :::danger **準備好作答之後,請先找助教交卷,然後立即做答此題** **本題作答之後視為交卷,不可再繼續作答,須離開考場** **請最後再做這一題** **本題請以虛擬機作答** ::: :::danger **準備好作答之後,請先找助教交卷,然後立即做答此題** **本題作答之後視為交卷,不可再繼續作答,須離開考場** **請最後再做這一題** **本題請以虛擬機作答** ::: 在 Ubuntu 20.04 應該下甚麼命令清除電腦裡該系統的所有檔案?