【目標】
我們在成為一個真正的管理員之前,應該了解“管理的真正含義是什么?管理員應該做什么?”等問題,在這里我們討論系統(tǒng)管理員的工作職責及管理工作的模式。當系統(tǒng)管理員維護一個Linux系統(tǒng)的時候,涉及到很多的工作,如備份、增加用戶、安裝和配置軟件。本章也介紹了管理員可以利用的Linux文檔體系。
【重點內(nèi)容】
系統(tǒng)管理員職責
超級用戶
文檔
系統(tǒng)管理員維護一個Linux系統(tǒng)的時候,涉及到備份、增加用戶、安裝和配置軟件等工作。如果是一個小型企業(yè),那么系統(tǒng)管理員的職責一般會覆蓋差不多全部與系統(tǒng)相關的工作,包括系統(tǒng)日常維護、保持服務正常運行、面向用戶的操作、軟件與系統(tǒng)安裝升級,和解決復雜的技術問題等。系統(tǒng)管理員要確保計算機能夠向用戶正常地提供服務。這里涉及到各種類型的工作:
在系統(tǒng)中增加新用戶、配置用戶的運行環(huán)境,如shell、主目錄和各種權限;
安裝新的軟件。其中包括應用軟件、操作系統(tǒng)的升級、補丁和bug修復等;
安裝新的硬件設備;
監(jiān)控文件系統(tǒng)的使用情況,確保系統(tǒng)中有足夠的磁盤空間,確保所有的備份正常;
解決用戶的問題,盡量找到問題所在,必要時可以與產(chǎn)品提供商聯(lián)系來解決問題;
確保所有網(wǎng)絡服務正常運行。如電子郵件和遠程系統(tǒng)的存取。
做為一名系統(tǒng)管理員,需要搞清楚的是,我們的管理職責范圍中包括哪些工作?管理的用戶有哪些?他們的權限都是什么?
做為一個系統(tǒng)管理員,我們還要考慮另外一些問題:
誰來負責硬件支持?
誰會使用系統(tǒng)?
系統(tǒng)要隨時升級嗎?
是否可以申請其他硬件設備嗎?
從哪里可以獲得其他的幫助?
Linux 系統(tǒng)是一個多用戶系統(tǒng)。通過授予不同的用戶權限,可以讓不同的用戶執(zhí)行不同的任務。如果一個 Linux 系統(tǒng)有很多人使用,管理任務會更復雜,因此需要系統(tǒng)能夠支持用戶的添加與管理,來完成日常的管理任務。
做為一名系統(tǒng)管理員,一個重要的任務就是合理管理系統(tǒng)上的用戶。在Linux 系統(tǒng)中,這些工作主要包括建立賬號、設置口令、分配用戶使用權限、管理用戶組、管理用戶磁盤配額以及用戶賬號的使用期限等等。
設備管理包括兩部分內(nèi)容:軟件與硬件維護。
硬件設備要發(fā)揮其作用,與其在操作系統(tǒng)中的配置是分不開的。我們在安裝了新的硬件之后,如一塊網(wǎng)卡,就要安裝驅(qū)動程序,進行相關參數(shù)設置,這就是軟件設置的問題。同樣的硬件由于軟件設置有可能在工作效率和狀態(tài)好壞上都有所區(qū)別,正確地對各種硬件進行軟件方面的安裝和配置對管理員來說是不可忽視的。
系統(tǒng)中的硬件都需要維護。管理員應每隔1到3個月(取決于系統(tǒng))做一次預防性的維護工作,這就象汽車與飛機的保養(yǎng)一樣,我們需要檢查系統(tǒng)的功能是否正常,檢查并清潔風扇、主板、磁帶機等。一些大型的企業(yè)訂有硬件維護合同,其中包含出現(xiàn)問題時的快速解決方案,報價中會包括更換某些硬件的費用和人工費用,在公司可以負擔的情況我們可以訂購,但系統(tǒng)管理員依然需要監(jiān)督、配合這些外來的保養(yǎng)服務。
Linux具備強大、高效而且靈活的網(wǎng)絡功能,常常成為網(wǎng)絡的心臟和靈魂,向網(wǎng)絡中其他計算機提供服務。系統(tǒng)管理員必須保證服務器與網(wǎng)絡正常連接并且通訊正常,提供的服務當然也需要正常。網(wǎng)絡管理通常包括以下幾個方面:
網(wǎng)絡設備配置
以何種方式接入及相關工作。如網(wǎng)卡、MODEM、ADSL等。
網(wǎng)絡協(xié)議配置
通常是TCP/IP設置。如地址、網(wǎng)關、掩碼及有關參數(shù)。
基本服務管理
包括DNS、NFS、DHCP、NIS、Xinetd等。
應用服務管理
包括WWW、FTP、Samba等。
在關注網(wǎng)絡服務正常的前提下,還需要保證系統(tǒng)的性能。維護Linux系統(tǒng)時要經(jīng)常對系統(tǒng)的性能進行監(jiān)視和測試,準確無誤的進行系統(tǒng)應用和硬件的調(diào)優(yōu),最大限度的優(yōu)化系統(tǒng)中計算機的性能使之為用戶服務。
操作系統(tǒng)發(fā)揮作用需要依靠軟件,Linux也同樣涉及大量軟件安裝的工作。而一般用戶所熟悉的在Windows平臺上、點擊執(zhí)行程序安裝的方式,在Linux計算機中無法使用。做為系統(tǒng)管理員的基本技能之一,如何在Linux平臺中進行軟件包的安裝與管理是必須掌握的。我們需要知道rpm、tarball、deb的安裝方式,尤其要掌握rpm方式,這是當前最流行使用最廣泛的。此外對使用源代碼編譯的操作也應掌握,做為rpm方式的補充。
系統(tǒng)日志是對特定事件的記錄。我們會遇到一些奇怪的問題,如網(wǎng)絡無法連通、PPP不能用了、X
Window無法啟動等。這時候通常需要借助日志文件來幫我們解決問題。為了保證系統(tǒng)正常運行,處理每一天可能遇到的各種問題,認真地讀取和分析日志文件是系統(tǒng)管理員的一項非常重要的任務。日志對于系統(tǒng)安全來說尤其重要,由于日志記錄了系統(tǒng)每天發(fā)生的各種各樣的事情,你可以通過他來檢查錯誤發(fā)生的原因,或者受到攻擊時攻擊者留下的痕跡。日志可以幫助我們審計和監(jiān)測,還可以實時地監(jiān)測系統(tǒng)狀態(tài),監(jiān)測和追蹤侵入者等。
我們需要對在Linux系統(tǒng)中的三個主要的日志子系統(tǒng):連接時間日志、進程統(tǒng)計日志、錯誤日志有所了解。了解重要的dmesg和messages日志文件,能夠讀懂其中的信息,并根據(jù)其中的內(nèi)容進行處理操作。同時對日志相關的工具也應掌握和熟練使用。
系統(tǒng)中的數(shù)據(jù)不論對用戶還是企業(yè)來說,是最有意義和價值的,如果因為系統(tǒng)故障或其它意外,導致數(shù)據(jù)丟失,那么要花很多時間和精力才能恢復。
系統(tǒng)的備份與恢復是Linux系統(tǒng)管理一項不可缺少的工作。備份工作的目的是為了盡可能快速和方便地恢復單個文件或整個文件系統(tǒng)及相關數(shù)據(jù),備份對于文件和數(shù)據(jù)的安全恢復是非常重要的。一名系統(tǒng)管理員平時養(yǎng)成良好的備份習慣,將對于以后的系統(tǒng)遇到意外緊急故障能否安全恢復運行是非常關鍵的。
隨著網(wǎng)絡技術的快速發(fā)展和應用的日漸普及,駭客工具不僅變得越來越先進,而且也越來越容易被一般人獲取和濫用,造成各行各業(yè)大量的企業(yè)、機構的電腦系統(tǒng)遭受程度不同的入侵和攻擊,或面臨隨時被攻擊的危險。管理員也需要對系統(tǒng)安全有所認識,可以處理常見的安全問題。包括文件系統(tǒng)、網(wǎng)絡設置、用戶管理等方面的安全問題,也需要學會常見安全工具的使用。
在剛成為一個系統(tǒng)管理員的時候,由于經(jīng)驗的缺乏,我們往往感到很多問題無法入手。下面的內(nèi)容給出一些Linux管理中經(jīng)常使用的獲得幫助的方式,大家可以根據(jù)自己的情況選用。
現(xiàn)在有關Linux的參考書越來越多,這些資料涉及面廣,從Linux快速入門到關于Kernel、編程、NFS/NIS這些專題的介紹,各方面的書都有。如果系統(tǒng)管理員想查閱某些特殊功能或解決某些難題,書籍是很好的參考資料。
對系統(tǒng)管理來說,系統(tǒng)手冊是不可缺少的工具,用戶要確保有一套。通常這些手冊分為兩種:
參考書:提供與聯(lián)機指南一樣的信息
指導書:告訴用戶如何對系統(tǒng)進行管理,經(jīng)常會有理論性的討論以及實際的操作。
對管理員而言,Internet可以說是最有用的工具。通過聊天室和大型新聞組,用戶可以輕松得到Internet上豐富的Linux資源和成千上萬的Linux管理員的技術經(jīng)驗。在這里可以提出任何問題,也許幾分鐘之內(nèi)就會得到答案。另外,Internet提供了很多免費的最新軟件的文檔,對管理員們很有用。在Internet上這些文檔大多來源于非贏利組織The Linux Documentation
Project(TLDP),這個組織發(fā)布了很多文檔來介紹Linux的特點和應用,還介紹如何安裝和配置不同的軟件包。
man命令可以向用戶提供快速的在線幫助,這也是Unix早期的賣點之一。用戶可以從“man pages”中得到很多幫助信息。實際上,Unix的很多書籍就是從這些man pages中取得的內(nèi)容。
Linux是類Unix操作系統(tǒng),所以Linux包括了一套完整的man和man幫助文檔。這些man幫助文檔涉及Linux系統(tǒng)的命令、程序、配置文件和程序庫的功能等說明。一直以來,這些文檔都是某些操作系統(tǒng)書籍的主要資料來源,自從有了Internet和圖形用戶界面后,直接使用這些文檔的人減少了,但它仍是很重要的信息來源。操作系統(tǒng)安裝好之后,這些文檔就可以馬上使用。
man的幫助文件有很多個,通常以章節(jié)分類,存放在/usr/share/man目錄中,每個章節(jié)節(jié)討論一項專題,分為man1、man2、man3、.....、man9和mann等子目錄。章節(jié)的劃分符合AT&T Unix的文檔結構,繼承了其方便使用的特點,并且保持向后兼容(Unix經(jīng)常保持向后兼容)。大多數(shù)的用戶命令可以在man1中找到。
我們可以用以下命令來得到man幫助文檔:
$ man <section> 命令名
其中<section>參數(shù)是可選的,可以從1、2、3....、9、n中選擇。如果系統(tǒng)找到了與之命令名相匹配的命令,man就把幫助文檔組織成troff格式(或類似的其他格式)顯示出來。如果沒有給出<section>參數(shù),有些系統(tǒng)會從所有章節(jié)中找到匹配的文檔顯示出來。
在一個系統(tǒng)中可能會有成千上萬的man幫助文檔,為了節(jié)省磁盤空間,數(shù)據(jù)文件都是以壓縮格式(.gz)存儲的,數(shù)據(jù)文件名的格式是“命令名.section.gz”,例如,“zcat.1.gz”就是zcat命令的幫助文件。如果用戶要創(chuàng)建自己的man幫助文檔最好也遵循這種格式。
需要注意的是,man的幫助文檔常常是過時的,因為更新這些文檔是一件吃力不討好的工作。如果man幫助文檔沒有更新,管理員會發(fā)現(xiàn)系統(tǒng)中有些命令的功能和選項與在線文檔上所描述的不同。所以更新重要的系統(tǒng)命令或數(shù)據(jù)庫之后,一定要注意更新一下相應的man幫助文檔。
有時候用戶可能沒有準確地記往某個命令的名字,但知道它是做什么用的,這時可以通過apropos或whatis命令來從whatis數(shù)據(jù)庫中查找:
$ apropos <搜索字符串>
$ whatis <搜索字符串>
whatis數(shù)據(jù)庫包含了系統(tǒng)中不同的命令和功能,有簡短的描述使用戶可以識別它們。這些描述在man幫助文檔中說明得更加詳細。用戶不僅可以對命令名進行搜索,還可以對針對描述進行模糊搜索。也就是說,如果用戶知道某個命令是做什么的,但不知道其名字,仍然能用apropos或whatis命令查找到該命令。
在使用whatis之前,必須首先運行以下命令來初始化whatis數(shù)據(jù)庫:
$ make whatis
在增加新的man幫助文檔之后,也需要運行一次這個命令,才可以在whatis數(shù)據(jù)庫中查找到該命令。
man文檔的顯示格式
man幫助文檔的格式特殊,我們在線查看的時候,是通過 troff文本格式化程序顯示出來的,是很容易閱讀的格式,包括加亮區(qū)、縮排等。不過這種格式不易于存成文本格式來編輯或打印。為了達到這個目的,用戶可以使用col命令來過濾掉man文檔中的特殊字符,產(chǎn)生一個清晰的文本格式的man幫助文檔:
$ man ls |
col –b > ls.txt
使用上面的命令,就可以把ls的幫助文檔轉(zhuǎn)化成為易于打印和保存的文本格式。
man各章節(jié)的簡介
man的每一章節(jié)都是有相關性的,一節(jié)的內(nèi)容在其他章節(jié)里也可以得到。這些章節(jié)簡介是根據(jù)Linux Documentation
Project來劃分的,分為基本章節(jié)(第1節(jié)和第8節(jié))和擴展章節(jié)(第6節(jié)和第7節(jié))。章節(jié)里的內(nèi)容也有可能會改變。
man1(可執(zhí)行程序或shell命令)
在這里可以找到大多數(shù)普通用戶的可執(zhí)行命令(shell命令)。例如ls、grep、find等。它還包含了普通用戶所使用的shell命令的文檔。
man2(程序員的系統(tǒng)調(diào)用)
本李包含了用戶在編寫Linux程序的過程中所需要的系統(tǒng)調(diào)用的文檔。
man3(程序員的庫調(diào)用)
本節(jié)包含了Linux共享庫和靜態(tài)庫調(diào)用的文檔。
man4(特殊文件)
本節(jié)包含了特殊文件(FIFOs、sockets等)的文檔。從理論上講,所有/dev下的文件都應該包括在這里,但在man4中常常不包含這部分的內(nèi)容。
man5(文件格式和習慣用法)
這是一個重要的章節(jié),用戶能找到重要的系統(tǒng)文件(如hosts、inetd.conf、smb.conf)的描述,同時還包含有進程間通訊、圖形文件的格式、終端定義文件的信息等等。但是本節(jié)中的很東內(nèi)容用戶在其他地方也可以找到(如xforms庫的參考文件里)。
man6(游戲)
本節(jié)包含了系統(tǒng)測試程序方面的man幫助文檔。
man7(其他)
本節(jié)包含了不同的標準和術語方面的信息,包括協(xié)議、字符集、文件系統(tǒng)的層次結構、文本格式的宏、boot參數(shù)和一些Unix的信號量。
man8(系統(tǒng)管理命令)
本節(jié)包含超級用戶常用的命令,如mount、lilo、route等。
man9(核心程序)
本節(jié)包括核心內(nèi)部程序的信息。在多數(shù)Linux系統(tǒng)中,對這部分的描述或者沒有,或者是分開寫的。
mann(Tcl/tk)
傳統(tǒng)的Unix系統(tǒng)中,本節(jié)是專為新命令而保留的(至少到目前為止是這樣),但現(xiàn)在越來越傾向于在Linux下使用Tcl/tk程序工具。提供了Tcl/tk之后,用戶的編程環(huán)境就會好得多。如果系統(tǒng)中還沒有安裝Tcl/tk開發(fā)環(huán)境,就不會有本節(jié)的內(nèi)容。
info是man的下一個版本。不過目前只有少數(shù)的命令有與man不同的info信息頁。如果用戶使用info命令沒有找到相應命令的信息,系統(tǒng)就會調(diào)用相應的man命令,所以這時會顯示這些命令的man幫助內(nèi)容。對于某些命令來說,info信息會比man信息更新更有用一些。
在我們下載了某個軟件包,想知道如何安裝、配置和使用此軟件的時候,通常都可以使用軟件包中自帶的一些說明文檔。一般這些文檔都命名為README、Readme-first或how-to-install等等顯著的字樣。有些軟件包中還會把所有的幫助文件放在單獨的子目錄中,如readme、help,方便用戶使用。
How-to和guide都是LDP(Linux文檔計劃)中的一部分,對全世界的Linux使用者的幫助非常大。我們可以在www.tldp.org找到最新的how-to和guide內(nèi)容。
How-to是關于linux中某個特定工作的,一步一步操作的詳細描述。如Linux Installation How-to就是幫助我們在計算機中安裝Linux系統(tǒng)的。類似的還有,如:
Apache-Compile-HOWTO 解釋如何在Linux上編輯安裝apache服務器
Bootdisk-HOWTO 如何為自己的計算機制做啟動盤
Samba-HOWTO 如何安裝和配置samba服務器
mini-HOWTO
How-to文檔一般比較詳細,從各方面論述相關主題。對于一些比較簡單的主題,為了方便用戶使用,有的How-to使用了比較簡潔的方式和語言把相關主題的最主要內(nèi)容寫出來,這就是mini-HOWTO。如:
Xterminals-mini-HOWTO 如何使用nfs, xfs,
xdm和xdmcp連接Linux的X客戶端。
LILO-mini-HOWTO lilo的安裝與使用。
相對于How-to來講,Guide對某個主題的討論一般篇幅更長,涵蓋的內(nèi)容更廣,可以成為一本書了。如Network Administration or User Guide,是指導一個用戶如何去掌握網(wǎng)絡管理的方方面面的內(nèi)容,而不只是象apache、NFS這樣單個的服務。如:
Linux From Scratch Guide 如何只從源代碼定制出完全適合你自己需要的Linux系統(tǒng)。
Advanced Bash-Scripting Guide Shell的高級使用。