PART I 架站前進修篇: JANP_b:t
OE8H |?%
第一章、架站之前所需的技能分析 F7N4qq1
#- z(]Y,y
請簡述進行網站架設前,應該具備何種基本技能? ;e#bl1%#
基本的技能需要有: I]jK]]@
Linux 系統操作上,至少需要瞭解帳號管理、檔案屬性與權限、程序與資源管理、硬體如硬碟之掛載與軟體套件之安裝如RPM套件管理員等等,而 vi 與 Shell 亦是不可忽略之基本技能,更重要者,日誌的管理以及系統服務的原理(如 stand alone 與 super deamon 服務啟動的方式差異等)亦需同時釐清,以方便未來架設網站時除錯的技巧; 8 aC]" C
在網路的基礎知識上,TCP/IP 的觀念以及路由的概念相當的重要,此外,DNS 的概念也很重要。 qJ5gdID1 _
在心態的調整上面,系統管理員需要的道德感以及使命感需要較高的標準。 *<IQ+oat,a
U66}nN9
如果我有一顆硬碟在 A 主機上面安裝了 Linux 之後,拿到另一台配備相同的 B 主機上面去進行開機,結果竟然無法順利開機,您認為可能的原因是什麼? zKf.jpF^
由於配備相同,所以排除硬體的問題,不過,考慮到 IDE 排線與 partition 的代號,以及 /etc/fstab 的對應,所以應該是由於 IDE 插槽放置錯誤所致(Linux 系統下,每個 IDE 插槽對應的 partition 名稱皆不相同喔!)。此外,上次不正常關機也可能造成硬碟損害而無法開機成功! D Kng.P
B`;DAsmT
一般來說,在 Linux 系統上,使用者預設的家目錄在那個目錄下?另外,新增一個使用者時,該使用者預設的家目錄內容來自那個目錄下? V+dFL9
在 /etc/default/useradd 這個檔案裡面會規範使用者的預設家目錄以及預設家目錄的內容,一般來說,使用者預設家目錄在 /home ,至於家目錄內的檔案則複製來源在 /etc/skel 裡面。 =7P(T`j
#fkOm
Y7X
磁碟配額 ( quota ) 能否針對某個特定的目錄進行限制?Quota 有什麼較為特殊的使用限制? 4SGF8y@WU
Quota 目前僅能針對整個 partition 進行限額配置,如果該特定目錄是一個 partition 那就可以進行 quota 設定,否則無法針對特定目錄!此外, Quota 除了特定目錄以及需要 ext2, ext3 等磁碟格式才支援之外,也需要核心的支援喔! t=6Wk4
SHt#%3EU
在 Linux 系統下,要尋找一個檔名為 vbird.document 的檔案,可以使用什麼指令進行搜尋?又,如果要尋找在一天內更動過的檔案,又該如何進行? $@}\T
如果是執行檔可以使用 which command 來搜尋,如果是檔案,就必須要使用 locate vbird.document 或 whereis vbird.document 或 find / -name vbird.document 。如果要找到一天內更動過的檔案,可以使用 find 配合參數,如:『 find / -ctime 1』。 ZnXq+^Z4
]>"q>XgnI
在 Linux 系統中,常見的套件管理員有 RPM 與 Tarball ,請分別說明這兩個套件管理員的優缺點。 KX $Q`lM
RPM 套件管理員在安裝套件的時候,會將該套件的檔案名稱、套件功能與訊息等等資訊記錄於 /var/lib/rpm 目錄內,由於有這些套件的資本資訊,因此在系統內很容易進行 RPM 的升級、安裝、移除等動作。不過,由於 RPM 檔案之間的相依性相當的強,因此常常會有版本不合或者是欠缺某樣前驅套件的問題發生。 'X]my
至於 Tarball 則是原始碼,使用者可以自行設定套件的編譯參數,以符合自己的 Linux 平台。此外,由於 Tarball 是原始碼,因此需要在您的系統上面進行編譯,編譯的過程中需要 gcc, make, 以及 kernel source 等套件,還有您所想要安裝的套件所需要的前驅套件也同時需要先安裝後,才能進行 Tarball 的安裝。注意,幾乎每個 Tarball 以 tar 程式解開後,在新增的目錄下均會有 README 以及 INSTALL 檔案,請務必先查閱過後才進行編譯工作。 2I
qvd
wJb"X=i*
如果我下載了一個檔名為 httpd-2.0.52.tar.gz 的檔案,一般來說,這個檔案代表的意義為何?我該如何讓這個檔案能夠在我的 Linux 系統上面安裝? {z0PB] U
由於附檔名是 .tar.gz 或者是 .tgz 的檔案,所以可以認定該檔案為一個 Tarball 的檔案。至於檔名的配置方面,httpd 為套件名稱,2.0.52 則通常為該套件的版本名稱了!那如何安裝?由於該檔案為 httpd 這個套件,且格式為 Tarball ,所以您必須要: M
hJ;)(
系統上面務必具有 tar, make, gcc 等相關的編譯套件; S/)J<?<b
使用 tar 解開 httpd-2.0.52.tar.gz 之後,務必進入該目錄內讀取 REAME 或/與 INSTALL 檔案,以瞭解是否還需要其他的相關套件的搭配安裝; *s}j:fJ
以 ./configure --help 查閱一下是否有相關可以加入或者取消的編譯內容; r<XlIi
使用 make 讀取 Makefile 來編譯程式; DNp4U9
使用 make install 來安裝程式! TkjPa};R
|vf /M|
我以原始碼的方式進行一個套件的安裝,但是在分析系統的時候,分析程式一直告訴我找不到 cc 這個指令,請問這是什麼問題?為何需要 cc ?又,我該如何解決這個問題,好讓套件可以順利的被安裝在我的 Linux 上面? o ImW
如前面幾個題目所說的,因為是原始碼,所以還需要編譯程式來將該原始碼編譯成為可以在您的 Linux 系統上面跑的 binary 檔案,在 Linux 上頭預設的編譯程式就是 gcc 這個編譯器(compiler)。如果您在安裝 Linux 的時候,使用 Linux Installer 預設的套件選擇,那通常會沒有安裝 gcc 以及 make 等套件,此時,請拿出您的原版光碟,以 mount 指令掛載後,使用 RPM 將一個一個相關的套件安裝即可(過程會蠻複雜的!)^_^ fNZ:l=L3):
z ;KUIWg
我發現我的 Linux 系統怪怪的,似乎有什麼不知名的程序在記憶體當中跑,我該如何將這個不知名的程序捉出來,並且將他移除? v:w $l{7
如果要捉出程序(process)的話,可以使用 ps -aux 或者是直接輸入 top 來查詢 process 的 ID (PID),找到 PID 號碼後,再以 kill -9 PID 來刪除該程序即可。 F)Qj<6
u*C"d1v=
我總是無法編輯某個檔案,您認為應該是什麼問題造成的?那又要怎麼解決? C~([aH@-I
無法編輯某個檔案,可以先使用 file 這個指令來查詢一下該檔案的格式,例如想察看 /etc/shadow 的格式,可以下達:『file /etc/shadow』,如果是文字檔,卻還是無法編輯,那麼最可能發生的原因就是『權限』的問題了。可以使用 ls -l filename 察看檔案權限,再以 chmod 或 chown 來修訂該檔案的權限。此外,該檔案也可能含有隱藏屬性,可以使用 lsattr filename 查閱,再以 chattr 來修訂隱藏屬性。 ab-MEN`5
*d/,Y-tl
什麼是 UID 與 GID ?UID 有哪些等級? |=U(8t
在 Linux 系統下,使用者與群組其實都是以『ID(數字)』的格式來設定的,所以使用者與群組其實都是 UID 或 GID (User ID 與 Group ID),Linux 對於檔案權限也都是使用 UID/GID 來分辨。不過人類習慣使用文字來記憶,所以才會有 /etc/passwd 與 /etc/group 來轉譯 ID 與 User 及 Group 之間,這也才會發生為何在 Internet 上面捉下來的 Tarball 解開之後,往往會有檔案擁有人與群組為數字的型態,因為您 Linux 系統上面的 /etc/passwd 與 /etc/group 沒有相關的對應文字說。至於 UID 的等級主要有兩種,分別是超級管理員(root),其 UID 為 0,其他非為 0 的 UID 基本上身份是相同的!不過 Linux 通常會將小於 500 的 UID 保留給系統使用。 /@~&zx&_
y+D"LeCAad
使用者的家目錄參數、UID、GID以及其他相關參數,還有密碼檔案,放置在哪些檔案裡面? j6.'7f5M<H
放置在 /etc/passwd 與 /etc/shadow 當中。當然還有 /etc/login.defs 喔! PdNxuy
.jps6{
你認為一個稱職的網管人員應該具備什麼能力? ukH?O)0O
能力需求相當高,如了(1)作業系統的基礎知識(不論是 Linux/Unix/MAC/MS);(2)網路基礎的知識;(3)個別 Internet Services 的運作知識之外,還需要(4)身心保持在備戰狀態,以及(5)具有相當高程度的道德感、責任感與使命感。 *iW$>Yjb
M!E#T-)
我要啟動一個系統預設的 Service,請問我可能可以由執行或修改哪些目錄底下的檔案來啟動? 76M`{m
如果是 stand alone 的服務,可以經由 /etc/rc.d/init.d/* 裡面的檔案,如 /etc/rc.d/init.d/syslog start; i[M]d`<36
如果是 Super daemon 的服務,就必須(1)先到 /etc/xinetd.d 或者是 /etc/inetd.conf 修改相關檔案或參數;(2)以 /etc/rc.d/init.d/xinetd restart 來啟動。 kFi^P~3D[
2xJT!lN
我要關掉 cron 這個服務,應該怎麼關掉他?如果正常的方法無法關閉這個服務,可以使用什麼方法來關閉? ~!G&K`u
因為 cron 是一個 stand alone 的服務,所以可以使用 /etc/rc.d/init.d/cron stop 來關閉;如果還是無法正常關閉,可以使用 ps -aux | grep cron 捉出該程序的 PID ,然後以 kill -9 PID 來關閉。 q*kieqG
SjRR8p<
如果一開機就要執行某個程式,應該要將該程式寫入那個檔案裡面? !&=%#i
可以直接在 /etc/rc.d/rc[run-level].d 裡面加入 S 開頭的檔案,不過,更簡單的作法是直接將該程式寫入 /etc/rc.d/rc.local ,不過,請注意該程式必須要具有可執行的權限,且 rc.local 也必須要是可執行喔!