PART I 架站前進修篇: }%z%}V@(&
K8Q3~bMf
第一章、架站之前所需的技能分析 bkc*it
.rITzwgB
請簡述進行網站架設前,應該具備何種基本技能? \7%#4@;?
基本的技能需要有: <_ENC>NP
Linux 系統操作上,至少需要瞭解帳號管理、檔案屬性與權限、程序與資源管理、硬體如硬碟之掛載與軟體套件之安裝如RPM套件管理員等等,而 vi 與 Shell 亦是不可忽略之基本技能,更重要者,日誌的管理以及系統服務的原理(如 stand alone 與 super deamon 服務啟動的方式差異等)亦需同時釐清,以方便未來架設網站時除錯的技巧; shw"TF>?zG
在網路的基礎知識上,TCP/IP 的觀念以及路由的概念相當的重要,此外,DNS 的概念也很重要。 H\qZu%F'
在心態的調整上面,系統管理員需要的道德感以及使命感需要較高的標準。 /&<V5?1|
!/!ga)Y
如果我有一顆硬碟在 A 主機上面安裝了 Linux 之後,拿到另一台配備相同的 B 主機上面去進行開機,結果竟然無法順利開機,您認為可能的原因是什麼? _6V1oe2
由於配備相同,所以排除硬體的問題,不過,考慮到 IDE 排線與 partition 的代號,以及 /etc/fstab 的對應,所以應該是由於 IDE 插槽放置錯誤所致(Linux 系統下,每個 IDE 插槽對應的 partition 名稱皆不相同喔!)。此外,上次不正常關機也可能造成硬碟損害而無法開機成功! iEZ+Znon
m[KmXPFht1
一般來說,在 Linux 系統上,使用者預設的家目錄在那個目錄下?另外,新增一個使用者時,該使用者預設的家目錄內容來自那個目錄下? JXMH7
在 /etc/default/useradd 這個檔案裡面會規範使用者的預設家目錄以及預設家目錄的內容,一般來說,使用者預設家目錄在 /home ,至於家目錄內的檔案則複製來源在 /etc/skel 裡面。 gb|;]mk*"
IxS%V31
磁碟配額 ( quota ) 能否針對某個特定的目錄進行限制?Quota 有什麼較為特殊的使用限制? iPCCTs
Quota 目前僅能針對整個 partition 進行限額配置,如果該特定目錄是一個 partition 那就可以進行 quota 設定,否則無法針對特定目錄!此外, Quota 除了特定目錄以及需要 ext2, ext3 等磁碟格式才支援之外,也需要核心的支援喔! ,wM4X']HR
&x[7?Y L
在 Linux 系統下,要尋找一個檔名為 vbird.document 的檔案,可以使用什麼指令進行搜尋?又,如果要尋找在一天內更動過的檔案,又該如何進行? 0#DEh|?
如果是執行檔可以使用 which command 來搜尋,如果是檔案,就必須要使用 locate vbird.document 或 whereis vbird.document 或 find / -name vbird.document 。如果要找到一天內更動過的檔案,可以使用 find 配合參數,如:『 find / -ctime 1』。 nJGs ,~"
X9NP,6
在 Linux 系統中,常見的套件管理員有 RPM 與 Tarball ,請分別說明這兩個套件管理員的優缺點。 e0h[(3bXs$
RPM 套件管理員在安裝套件的時候,會將該套件的檔案名稱、套件功能與訊息等等資訊記錄於 /var/lib/rpm 目錄內,由於有這些套件的資本資訊,因此在系統內很容易進行 RPM 的升級、安裝、移除等動作。不過,由於 RPM 檔案之間的相依性相當的強,因此常常會有版本不合或者是欠缺某樣前驅套件的問題發生。 +'-.c"
至於 Tarball 則是原始碼,使用者可以自行設定套件的編譯參數,以符合自己的 Linux 平台。此外,由於 Tarball 是原始碼,因此需要在您的系統上面進行編譯,編譯的過程中需要 gcc, make, 以及 kernel source 等套件,還有您所想要安裝的套件所需要的前驅套件也同時需要先安裝後,才能進行 Tarball 的安裝。注意,幾乎每個 Tarball 以 tar 程式解開後,在新增的目錄下均會有 README 以及 INSTALL 檔案,請務必先查閱過後才進行編譯工作。 @"MQ6u G>
[8^q3o7n
如果我下載了一個檔名為 httpd-2.0.52.tar.gz 的檔案,一般來說,這個檔案代表的意義為何?我該如何讓這個檔案能夠在我的 Linux 系統上面安裝? hl7 z1h
由於附檔名是 .tar.gz 或者是 .tgz 的檔案,所以可以認定該檔案為一個 Tarball 的檔案。至於檔名的配置方面,httpd 為套件名稱,2.0.52 則通常為該套件的版本名稱了!那如何安裝?由於該檔案為 httpd 這個套件,且格式為 Tarball ,所以您必須要: M2N8?Ycv3
系統上面務必具有 tar, make, gcc 等相關的編譯套件; jz![#-G
使用 tar 解開 httpd-2.0.52.tar.gz 之後,務必進入該目錄內讀取 REAME 或/與 INSTALL 檔案,以瞭解是否還需要其他的相關套件的搭配安裝; WubV?NX;EF
以 ./configure --help 查閱一下是否有相關可以加入或者取消的編譯內容; yW(|auq
使用 make 讀取 Makefile 來編譯程式; S<-nlBs.
使用 make install 來安裝程式! 0#Lmajs
aZCq{7Xs
我以原始碼的方式進行一個套件的安裝,但是在分析系統的時候,分析程式一直告訴我找不到 cc 這個指令,請問這是什麼問題?為何需要 cc ?又,我該如何解決這個問題,好讓套件可以順利的被安裝在我的 Linux 上面? W7
dSx
如前面幾個題目所說的,因為是原始碼,所以還需要編譯程式來將該原始碼編譯成為可以在您的 Linux 系統上面跑的 binary 檔案,在 Linux 上頭預設的編譯程式就是 gcc 這個編譯器(compiler)。如果您在安裝 Linux 的時候,使用 Linux Installer 預設的套件選擇,那通常會沒有安裝 gcc 以及 make 等套件,此時,請拿出您的原版光碟,以 mount 指令掛載後,使用 RPM 將一個一個相關的套件安裝即可(過程會蠻複雜的!)^_^ k}Q<#
I8j:{*h
我發現我的 Linux 系統怪怪的,似乎有什麼不知名的程序在記憶體當中跑,我該如何將這個不知名的程序捉出來,並且將他移除? kaXq.
如果要捉出程序(process)的話,可以使用 ps -aux 或者是直接輸入 top 來查詢 process 的 ID (PID),找到 PID 號碼後,再以 kill -9 PID 來刪除該程序即可。 pmvd%X\f
];4!0\M
我總是無法編輯某個檔案,您認為應該是什麼問題造成的?那又要怎麼解決? U: Wet,
無法編輯某個檔案,可以先使用 file 這個指令來查詢一下該檔案的格式,例如想察看 /etc/shadow 的格式,可以下達:『file /etc/shadow』,如果是文字檔,卻還是無法編輯,那麼最可能發生的原因就是『權限』的問題了。可以使用 ls -l filename 察看檔案權限,再以 chmod 或 chown 來修訂該檔案的權限。此外,該檔案也可能含有隱藏屬性,可以使用 lsattr filename 查閱,再以 chattr 來修訂隱藏屬性。 ~mARgv
AB`.K{h
什麼是 UID 與 GID ?UID 有哪些等級? ~r!(V;k{
在 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 保留給系統使用。 *<!q@r<d
)S(Ly.
使用者的家目錄參數、UID、GID以及其他相關參數,還有密碼檔案,放置在哪些檔案裡面? XC)9aC@s
放置在 /etc/passwd 與 /etc/shadow 當中。當然還有 /etc/login.defs 喔! *;]}`r
}ePl&-9T
你認為一個稱職的網管人員應該具備什麼能力? *=2W:,$
能力需求相當高,如了(1)作業系統的基礎知識(不論是 Linux/Unix/MAC/MS);(2)網路基礎的知識;(3)個別 Internet Services 的運作知識之外,還需要(4)身心保持在備戰狀態,以及(5)具有相當高程度的道德感、責任感與使命感。 <JH,B91
[#q]B=JB
我要啟動一個系統預設的 Service,請問我可能可以由執行或修改哪些目錄底下的檔案來啟動? eu9*3'@A
如果是 stand alone 的服務,可以經由 /etc/rc.d/init.d/* 裡面的檔案,如 /etc/rc.d/init.d/syslog start; |:&6eDlR
如果是 Super daemon 的服務,就必須(1)先到 /etc/xinetd.d 或者是 /etc/inetd.conf 修改相關檔案或參數;(2)以 /etc/rc.d/init.d/xinetd restart 來啟動。 r+8D|stS
cl2_"O
我要關掉 cron 這個服務,應該怎麼關掉他?如果正常的方法無法關閉這個服務,可以使用什麼方法來關閉? Y55u-9|N
因為 cron 是一個 stand alone 的服務,所以可以使用 /etc/rc.d/init.d/cron stop 來關閉;如果還是無法正常關閉,可以使用 ps -aux | grep cron 捉出該程序的 PID ,然後以 kill -9 PID 來關閉。 ,d,2Q
Xs2 jR14`
如果一開機就要執行某個程式,應該要將該程式寫入那個檔案裡面? w|-3X
可以直接在 /etc/rc.d/rc[run-level].d 裡面加入 S 開頭的檔案,不過,更簡單的作法是直接將該程式寫入 /etc/rc.d/rc.local ,不過,請注意該程式必須要具有可執行的權限,且 rc.local 也必須要是可執行喔!