對RedHat 系統的一些概括性描述(轉)

ba發表於2007-08-11
對RedHat 系統的一些概括性描述(轉)[@more@]RedHat使用RPM作為軟體組織方式, 其啟動風格是SYSV的. 我在這裡
就我所理解的東東作一個描述.



1. 啟動
------

在/etc/rc.d/--有下列目錄rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d
init.d
還有下列檔案
rc rc.local rc.sysinit

rcn.d (n為1到6) 是對應於不同的runlevel下起不同的服務. 這些目錄下都
是一些符號連線, 連線到init.d下的一些檔案.以S開頭的表示要啟動, 以K開頭的不啟動.
第一個字母后面的數值是一個優先順序, 這個優先順序是用chkconfig來維護的. init.d下
的每一個檔案都有類似下面的話:

# chkconfig: 2345 20 80
# description: Saves and restores system entropy pool for
# higher quality random number generation.

看有chkconfig的那一行, 2345表示在runlevel 2 3 4 5下被啟動, 20 80 是優先順序
20為啟動, 80為關閉. 即在rc3.d你可能看到 S20 或 K80. Redhat下的setup也是用
它處理的. 你可以再參考一下man chkconfig. 有一點注意, 優先即是一個兩位數.

RedHat下啟動網路一定要啟動network的服務, 該服務會執行
/etc/sysconfig/network, 並用ifup載入所有的/etc/sysconfig/network-script
下定義的網路卡. 注意, 在預設配置中這些定義檔名中不可以有. 象ipforward這樣的定義
也是在它中完成的. 你可以看看它的原始檔. 它還定義了一個重要的變數$NETWORK, 其他的所
有網路服務都透過檢查該變數來決定是否啟動.

另外的三個檔案是這樣的

先執行rc.sysinit 完成了包括mount分割槽 啟用swap 載入modules等重要的工作.
再執行rc.local 完成一些本地的處理, 預設情況下, 它幾乎什麼都沒作.
最後是執行rc 啟動所有的服務.

2. 文件
------

最常用的是man手冊, 在/usr/doc下有一些HOWTO, 和一些軟體的文件. 實際上最
方便的是info系統, 如果你沒用過的話, 執行一下info. 看一看熱鍵的幫助. 裡面的文件非常
多. 許多的軟體的說明檔案有多種格式, text-info是很普通的, 特別是在一些大的軟體中.
你可以使用 install-info 命令來安裝新的text-info檔案. 另一種比較通用的格式是SGML,
它可以被方便的轉化為其他格式的檔案 如:html info lyx latex txt rtf.

tex和latex也是一種比較通用的格式, 他們最終被處理成dvi檔案來觀看.
ps(postscript)使用gv(ghostview)來觀看.
pdf 使用xpdf或acroread來看, xpdf的速度要快一些, 但對新的pdf格式不支援.
這三種格式主要是圖形格式, 解析度比較高. 但大部分的說明是純文字的, 這時, info
是最爽的.

3. 關閉
------
halt reboot shutdown Ctrl_Alt_Del這三個命令都完成了那些工作?
它們同屬於SysVinit包. reboot是一個連向halt的符號連線.

我這裡講的是RedHat 6.0所帶的SysVinit2.74.

先說明幾個小問題:
runlevel是從wtmp中找到的. 在啟動時, 由init寫入.
runlevel 0 是 halt mode,
1 是 single mode or maintenance mode
6 是 reboot mode.

halt(reboot)
如果系統的runlevel不是0或6, halt會exec shutwon -h,
而reboot會exec shutdown -r.
主要的工作都是由shutdown來完成的. halt的引數都被整理後
發到shutdown(exec時的引數).

shutdown
大部分程式碼用於處理引數等等, 核心工作是由shutdown來完成的.
shutdown主要是呼叫execv init來修改runlevel. 它也完成
下列工作: warn 系統上的每一個使用者. 處理幾個檔案:
/etc/nologin
/fastboot
/forcefsck
引數-n, 這是, 它自己來完成所有的工作, 而不呼叫init.

Ctrl-Alt-Del實際上是由init程式直接處理的, 它通知kernel將
Ctrl-Alt-Del訊號轉化為SIGINT發到它.


4. 口令的長度和加密演算法
-------------------

很多人在說Linux使用了DES加密演算法, 最多隻能用8個字元的口令. 但這是不對的,
Linux的認證都是透過pam來作的, 它使用了兩種演算法 bigcrypt和md5, 前一種支援到128個字
符, 後一種是無限長. 事實上在UNIX中只需要一種單向的演算法即可, 它並不需要一種可以加密解
密的演算法. RedHat中用setup來修改級認證機制時, 它只修改了三個檔案
/etc/pam.d/login
/etc/pam.d/rlogin
/etc/pam.d/passwd
中的一行:
passwd /lib/security/pam_pwdb.so shadow md5
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pam中的auth並不需要這樣的設定, 它會根據crypted passwd中的salt來判斷是那一種演算法,
因此檔案中兩種演算法是可以並存的,
cat /etc/shadow
friday:$1$I92CumQb$I./BJehrqEKIUX9vNmZcL/:10832:0:99999:7:-1:-1:134538420
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
md5以$1$開頭, 其salt為$1$I92CumQb$.

5. Shadow 和 Unshadow
---------------------

將當前的passwd狀態在兩種格式之間轉換, 可以用下列命令來完成.
pwconv
unpwdconv

不過, 我實在看不出後者有什麼用.

6. make install
---------------
在你安裝軟體的最後一步往往是make install.
這時, 通常有兩種做法:
1. cp execfile /usr/bin/execfile
2. 使用 install 命令 如:
install execfile /usr/bin/execfile

事實上, 後一種更廣泛. 它有一些引數可以設定檔案的屬主, 檔案的模
式等.

7. vi 中的顏色
------------
在~/.exrc加入下面一行
syntax on

8. Xemacs 的中文環境
------------------
Emacs使用Mule來處理多國語言.
如果你已經安裝好了帶Mule的Xemacs. 在你的~/.emacs 加入如下一行.
(setup-chinese-gb-environment)
這樣, 每次啟動會自動的設製成中文環境.
你可以從Mule->Describe labguage support中來選擇一個合適的輸入法.
Ctrl- 用於啟用或關閉中文輸入.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-947768/,如需轉載,請註明出處,否則將追究法律責任。

相關文章