鳥哥私房菜 習題答案(服務篇)

PART I、網絡基礎篇

1  架站之前所需的技能分析

1. 請簡述架設網站前,應該具備何種基本技能?

基本技能有:
1.   至少需要了解賬號管理、文件屬性與權限、程序與資源管理、硬盤掛載與軟件包的安裝,如RPM套件管理程序等,而viShell也是不可忽略的基本技能,更重要的是,日誌管理及系統服務的原理(如stand alonesuper deamon 服務啓動的方式差異等)需要理清,以方便未來架設網站時進行除錯;
2.   在網絡基礎知識上,TCP/IP的概念及路由概念相當重要,此外,DNS的概念也很重要。
3.   在心態調整方面,系統管理員需要的道德意識及使命感要求較高。

2. 如果我有一塊硬盤在A主機上安裝了Linux之後,拿到另一臺配備相同的B主機上進行開機,結果竟然無法順利開機,你認爲可能的原因是什麼?

由於配備相同,所以排除硬件問題,不過,考慮到IDE數據線與分區代號及/etc/fstab的對應,所以應該是由IDE插槽放置錯誤所致(Linux系統下,每個IDE插槽對應的分區名稱皆不相同)。此外,上次不正常關機也可能造成硬盤損害而無法開機成功!

3. 一般來說,在Linux系統上,用戶默認的根目錄在哪個目錄下?另外,新增一個用戶時,該用戶默認的根目錄內容來自哪個目錄?

/etc/default/useradd文件裏會規範用戶的默認根目錄及默認根目錄的內容,一般來說,用戶默認根目錄爲/home,至於根目錄內的文件則複製來源在/etc/skel裏。

4. 磁盤配額(quota)能否針對某個特定目錄進行限制?Quota有什麼較特殊的使用限制?

Quota目前僅能針對整個分區進行限額配置,如果該特定目錄是一個分區,則可以進行quota設定,否則無法針對特定目錄!此外,Quota除了特定目錄及只能識別ext2ext3等磁盤格式外,也需要核心的支持。

5. Linux系統下,要尋找一個文件名爲vbird.document的文件,可以使用什麼指令?另外,如果要尋找在一天內更動過的文件,又該如何進行?

如果是執行文件,可以使用which command來搜尋,如果是文件,就必須使用locate vbird.documentwhereis vbird.documentfind / -name vbird.document。如果要查找一天內更動過的文件,可以使用find配合參數,如:「find / -ctime 1 」。

6. Linux系統中,常見的套件管理程序有RPMTarball,請分別說明這兩個套件管理程序的優缺點。

         RPM在安裝套件時,會將該套件的文件名稱、套件功能與信息等記錄在/var/lib/rpm目錄內,由於有這些套件的基本信息,因此在系統內很容易進行RPM的升級、安裝、移除等動作。不過,由於RPM文件之間的相依性較強,因此常會有版本不合或欠缺某樣前驅套件的問題。
         至於Tarball則是源代碼,用戶可以自行配置套件的編譯參數,以符合自己的Linux平臺。此外,由於Tarball是源代碼,因此需要在你的系統上進行編譯,編譯過程中需要gccmakekernel source等套件,還有你想安裝的套件所需的前驅套件也需要先安裝,這樣才能進行Tarball的安裝。注意,幾乎每個Tarballtar程序解壓後,在新增目錄下均會生成READMEINSTALL文件,請務必先查閱後再進行編譯工作。

7. 如果我下載了一個文件名爲httpd-2.0.52.tar.gz的文件,一般來說,這個文件代表的意義爲何?如何讓這個文件能夠在我的Linux系統上安裝?

由於後綴名是.tar.gz.tgz的文件,所以可以認定該文件爲一個Tarball文件。至於文件名的配置,httpd爲套件名稱,2.0.52則通常爲該套件的版本名稱!那麼如何安裝?由於該文件爲httpd這個套件,且格式爲Tarball,所以你必須:
1.   系統上務必具有tarmakegcc等相關編譯包;
2.   使用tar解開httpd-2.0.52.tar.gz後,務必進入該目錄內讀取REAME/INSTALL文件,以瞭解是否還需要其他的相關套件;
3.   ./configure --help查閱是否有相關可以加入或取消的編譯內容;
4.   使用make 讀取Makefile來編譯程序;
5.   使用make install來安裝程序!

8. 我以源代碼方式安裝一個套件,但是在分析系統時,分析程序一直告訴我找不到cc指令,請問這是什麼問題?爲何需要cc?另外,我該如何解決這個問題,好讓套件可以順利安裝在我的Linux上?

如前面幾個題目所說,因爲是源代碼,所以還需要編譯程序將該源代碼編譯爲可以在Linux系統上運行的二進制文件,在Linux上默認的編譯程序就是gcc編譯器。如果你在安裝Linux時,使用LinuxInstaller 默認選擇的套件,那通常會沒有安裝gccmake等套件,此時,請拿出你的原版光盤,以mount指令掛載後,使用RPM 將一個一個相關的套件安裝即可。

9. 我發現我的Linux系統怪怪的,似乎有什麼不知名的程序在內存中運行,我該如何將這個不知名的程序捕捉出來,並且將它移除?

如果要捕捉程序(process),可以使用ps -aux或直接輸入top來查詢程序的IDPID),找到PID 號碼後,再以kill -9 PID刪除該程序即可。

10. 我總是無法編輯某個文件,你認爲是什麼問題造成的?怎麼解決?

無法編輯某個文件,可以先使用file指令查詢該文件的格式,例如想查看/etc/shadow的格式,可以輸入file /etc/shadow,如果是文本文件,卻還是無法編輯,那麼最可能發生的就是權限問題。可以使用ls -l filename查看文件權限,再以chmodchown修訂該文件的權限。此外,該文件也可能含有隱藏屬性,可以使用lsattr filename查閱,再以chattr修訂隱藏屬性。

11. 什麼是UIDGIDUID有哪些等級?

Linux系統下,用戶與羣組其實都是以ID(數字)格式來設定的,所以用戶與羣組其實都是UIDGIDUser IDGroup ID),Linux對於文件權限也是使用UID/GID來分辨。不過人類習慣使用文字來記憶,所以纔會有/etc/passwd/etc/groupID轉譯成相應的UserGroup,這也可以解釋爲什麼將從Internet上下載下來的Tarball解壓之後,其文件擁有者與羣組往往爲數字形式,因爲你的Linux系統上的/etc/passwd/etc/group沒有相關的對應文字。UID的等級主要有兩種,分別是超級管理員(root),其UID0;其他非0UID身份基本上是相同的!不過Linux通常會將小於500UID保留給系統使用。

12. 用戶的根目錄參數、UIDGID及其他相關參數,還有密碼文件,放置在哪些文件裏?

放置在/etc/passwd /etc/shadow中,當然還有 /etc/login.defs

13. 你認爲一個稱職的網管人員應該具備什麼能力?

能力要求相當高,如(1)操作系統的基礎知識(不論是Linux/Unix/MAC/MS);(2)網絡基礎知識;(3)個別Internet服務的運作知識;(4)身心保持在備戰狀態;(5)具有相當高的道德感、責任感與使命感。

14. 我要啓動一個系統默認的服務,請問可以通過執行或修改哪些目錄下的文件來啓動?

         如果是stand alone服務,可以通過/etc/rc.d/init.d/*裏的文件,如/etc/rc.d/init.d /syslog start
         如果是Super daemon服務,就必須先到/etc/xinetd.d/etc/inetd.conf修改相關文件或參數,再以/etc/rc.d/init.d/xinetd restart來啓動。

15. 我要關掉cron服務,應該怎麼關掉它?如果以正常方法無法關閉這個服務,可以使用什麼方法來關閉?

因爲cron是一個stand alone服務,所以可以使用/etc/rc.d/init.d/cron stop來關閉;如果還是無法正常關閉,可以使用ps -aux | grep cron提出該程序的PID,然後以kill -9 PID關閉。

16. 如果一開機就要執行某個程序,應該將該程序寫入哪個文件?

可以直接在/etc/rc.d/rc[run-level].d里加入以S開頭的文件,不過,更簡單的做法是直接將該程序寫入/etc/rc.d/rc.local,不過,請注意該程序必須具有可執行權限,且rc.local也必須是可執行的。

2章、簡易網絡基礎架構

1. 請簡述OSI網絡七層協議每一層的功能;

OSI網絡七層協議主要又分爲兩大部分,網絡層與用戶應用層。至於每一層的相關功能請參考本章表一所示。

2. ISP提供的網絡服務中,它們提到傳輸速度爲1.5M/382K,請問這個數據的單位爲何?

由於電子信號的基本單位爲bits,所以一般ISP提供的傳輸速度單位均爲bits/second,並非我們常用的文件計數單位Bytes

3. 什麼是MACMedia Access Control),MAC主要的功能是什麼?

在網絡媒體上,數據要傳輸時,必須知道下一個節點的地址才能順利傳送,這個節點的地址(如網卡的硬件地址)就是MAC。硬件地址是在網卡出廠時就已經焊死在上面(某些筆記本電腦的MAC則可以經由特殊軟件修改),而軟件地址則是我們常說的IP,這兩個並不相同。MACIP互相的對應是以ARP Table進行轉譯。

4. 請解釋什麼是物理廣播(Physical Broadcast),它與邏輯廣播(Logical Broadcast)有什麼不同?

物理廣播主要與網絡媒體有關,在同一個網絡媒體上同一時間僅能有一臺主機使用這個網絡共享媒體,而要判斷目前有沒有其他主機在使用這個網絡媒體時,就是利用Physical Broadcast
至於邏輯廣播,就是在查詢到底網域上有沒有我們這臺主機想要連接的相關協議或同一網域內的其他主機。它主要與MACARP及軟件地址(IP)有關。

5. 什麼是包碰撞?爲什麼會發生包碰撞?

當兩臺主機同時在一個網絡媒體上進行數據傳輸時,兩個數據包就會發生碰撞,這就是包碰撞。在網絡媒體流量很高、網絡媒體的聯機長度過長時,都容易發生數據包碰撞。

6. ARP Table的作用爲何?如何在我的Linux查看我的ARP表?

ARP Tables主要用於對應IPMAC,當主機將數據包送到下個節點時,必須知道下個節點的MAC,如果不知道MAC,就需要使用邏輯廣播來查詢IPMAC的對應。不過,當你的主機內部的ARP table已經記錄了IP對應的MAC,那麼該數據包則可以立即傳送到下個節點,而不需要再次進行邏輯廣播。要知道目前的ARP table內有多少記錄,可以使用arp -a

7. 簡略說明Netmask的作用與優點。

Netmask可以有效增加網絡的效率,這是因爲Netmask 可以定義一個網域的大小,那麼用在廣播的時間就可以大大降低。一般來說,我們如果要將一個大網域再細分爲小網域,也需要藉由Netmask進行subnet的切割。

8. 我有一組網域爲192.168.0.0/28,請問這個網域的Network, Netmask, Broadcast各爲多少?可以使用的IP數量與範圍各是多少?

因爲共有28位是不可動的,所以Netmask 地址的最後一個數字爲11110000,也就是(128+64+32+16=240),所以:
Network192.168.0.0
Netmask
255.255.255.240
Broadcast
192.168.0.15
IP
:由192.168.0.1 ~ 192.168.0.14 14個可用IP

9. 承上題,如果網域是192.168.0.128/29呢?

因爲有29位不可動,所以最後一個Netmask的地址爲11111000,也就是(128+64+32+16+8=248),所以:
Network192.168.0.128
Netmask
255.255.255.248
Broadcast
192.168.0.135
IP
:由192.168.0.129 ~ 192.168.0.134 6個可用的IP

10. 我要將192.168.100.0/24這個C Class網域分爲4個子網域,請問這4個子網域要如何表示?

既然要分爲4個網域,也就是還需要藉助Netmask的兩個位(22次方爲4啊),所以Netmask會變成255.255.255.192,每個子網域會有256/4=64IP,而必須扣除NetworkBroadcast,所以每個子網域會有62個可用IP!因此,4個子網域的表示方法爲:
192.168.100.0/26, 192.168.100.64/26, 192.168.100.128/26,
192.168.100.192/26

11. 如何觀察Linux主機上的路由信息(route table)?

可以通過輸入route來直接查看路由信息,或輸入route –n

12. TCP包上的SYNACK標誌代表的意義爲何?

         SYN代表該包爲該系列聯機的第一個包,即主動聯機;
         ACK則代表該包爲確認包,即迴應包。

13. 什麼是三次握手?在哪一種包格式上纔會有三次握手?

使用TCP包纔會有三次握手。TCP包的三次握手是一個確認包正確性的重要步驟,通過SYNSYN/ACKACK三個包確認無誤後,才能夠建立聯機。至於UDP包,則沒有三次握手。

3章、局域網架構簡介

1. 幻想自己是一個私人公司的老闆,員工有20人,如果我想讓公司的員工都可以連上Internet,並且控管每個員工的對外聯機,請問我的硬件聯機應該怎麼配置?另外,應該申請的線路頻寬應該多大?而我的內部網域(IPNetmask……)又該如何設定?

因爲只有20個員工,事實上,人員並不多,所以並不需要在內部加設router來隔開不同的網域。不過,由於想要管理員工的上網功能,因此最好以第三章圖三的架構,以一臺主機內含兩塊網卡隔開IntranetInternet 兩個網段,便於管理;至於對外聯機的頻寬方面,如果Linux主機需要進行網絡服務功能,那麼最好能夠有512/512頻寬,因爲可能會有Client端下載的問題,如果單純地僅下載(公司沒有額外的網絡服務),可以考慮使用T1/384之類的頻寬,比較省錢;而在內部網域設定上,如同本章節使用的網域192.168.0.0/24來設定即可,如果公司內部尚有移動裝置(NoteBook),則可以在Linux上加裝DHCP(參考第16章)服務器。

2. 承上題,假如我的私有網域內有較大的網絡流量,那麼我的網絡媒體應該怎麼選擇?

如果私有網域內的流量較大,那麼網絡媒體需要選擇Switch而不要使用Hub!另外,整體包括網線也需要使用能夠負載10/100 Mbps的流量纔好。

4章、連接Internet

1. 我要如何確定我在Linux系統上的網卡已經被Linux識別並驅動了?

網卡能不能被識別可以使用dmesg|grep eth來判斷,有沒有驅動則可以使用lsmod 看看模塊有沒有加載核心!最後,以ifconfig eth0 192.168.0.10測試看看!

2. 假設我的網絡參數爲IP 192.168.100.100Netmask 255.255.255.0 ,請問我要如何在Linux上設定這些網絡參數(未提及的網絡參數請自行定義)? 請使用手動與文件設定方法分別說明。

         手動設定爲:ifconfig eth0 192.168.100.100 netmask 255.255.255.0 up
         文件設定爲:vi /etc/sysconfig/network-scripts/ifcfg-eth0,內容爲:
DEVICE=eth0

ONBOOT=yes

BOOTPROTO=static

IPADDR=192.168.100.100

NETMASK=255.255.255.0

NETWORK=192.168.100.0

BROADCAST=192.168.100.255

要啓動則使用ifup eth0即可!

3. 我要將我的Linux主機名稱改名,步驟爲何?(更改哪個文件?如何啓用?)

Linux主機名稱在/etc/sysconfig/network文件裏通過“HOSTNAME=主機名稱”來設定,先以vi修改,之後再使用/etc/rc.d/init.d/network restart或直接reboot啓動主機名稱!

4. /etc/resolv.conf/etc/hosts的功能爲何?

以主機名稱查找IP的方法,/etc/resolv.conf內填寫DNS主機名稱,至於/etc/hosts則直接填寫主機名稱對應的IP即可!

5. 我使用ADSL撥號連接Internet,請問撥號成功之後,我的Linux上會有幾個網絡接口(假設我只有一個網卡)?

因爲撥號是使用PPP(點對點)協議,所以撥號成功後會多出一個ppp0接口,此外,系統原本即有eth0lo這兩個接口,所以共有三個接口。

6. Linux上進行ADSL撥號應該使用什麼軟件?

請用rp-pppoe,官方網站:http://www.roaringpenguin.com/pppoe/

7. 一般來說,如果撥號成功,也取得了ppp0接口,但是無法對外聯機成功,你認爲是哪裏出了問題?該如何解決?

因爲撥號成功,表示物理對外聯機沒有問題,那麼可能的問題應該發生在網關上!確認方法請使用route -n查閱路由信息,然後修訂/etc/syscon- fig/network-scripts/ifcfg-eth0

5章、Linux常用網絡指令介紹

1. 我要增加一個路由規則,以eth0連接192.168.100.0/24網域,應該如何輸入指令?

手動方法爲:route add -net 192.l68.100.0 netmask 255.255.255.0 dev eth0

2. 我的網絡停頓很厲害,尤其是連接到tw.yahoo.com時,那麼應該如何檢查是哪個環節出了問題?

使用traceroute尋找到底是哪個環節出問題:traceroute tw.yahoo.com

3. 我發現我的Linux主機上有個聯機很怪異,想將它斷線,應該如何進行?

root身份進行netstat -anp |more,查出該聯機的PID,然後以kill -9 PID踢掉該聯機。

4. 你如何知道green.ev.ncku.edu.tw這臺主機的IP

方法很多,可以利用host green.ev.ncku.edu.twdig green.ev.ncku.edu.twnslookup green.ev.ncku.edu.tw等方法找出!

5. 請找出你的機器上最適當的MTU應該是多少?

請利用ping -c 3 -M do -s MTU yourIP找出你的IPMTU數值。

6. 如何在終端機接口上進行WWW瀏覽?又該如何下載WWW上提供的文件?

要瀏覽可以使用lynx,要下載則使用wget軟件。如果想在終端機上看到中文,還可以安裝JCMME

7. 在終端機接口中,如何連接bbs.sayya.org這個BBS

利用telnet bbs.sayya.org 即可連接上,同樣地,要看到中文,還是得安裝JCMME
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章