etc目錄詳解(轉)

post0發表於2007-08-09
etc目錄詳解(轉)[@more@]

在 Linux 系統管理中, /etc 下面的檔案無疑的伴演了極端重要的角色, 在這篇文

章中, 將為各位介紹 /etc 下每個檔案的用途, 及相關指令的運用, 希望能為大家在成

為 System Administrator 的路上有所助益.

特別要說明的是, 在這篇文章中, 有些檔案仍然沒有提到, 這是因為, 這些檔案都

不是一二十行的描述就可以講完的! 如 /rc.d 下的檔案, inittab 這兩個最好就要合

起來講, 因為這些牽扯到 bootstrapping, 絕對不是三言兩語就可以講完的. 凡是有這

種特性的檔案, 有機會的話將再為各位介紹......

本文 :

/etc/DIR_COLORS : 設定在用 ls 時 , 各種不同檔案型態所用的顏色 , 但是不能用

pipe 再導向輸出, 否則就沒有各種顏色了. 由檔案的內容可以很

輕易的瞭解, 如 default 的 directory 是藍色, 具有可執行檔權

限的是綠色, 而壓縮檔是紅色...... 這些都可依個人喜好來加以

更改. 這個檔案內容寫得很清楚, 想必各位一眼也就可以看得出來

, 在顏色的組成方面, 我們常用 RGB 三原色的成份值來組合出各

種不同的顏色. 由 R,G,B 這個 bit 是 0 或是 1 三個值組合出顏

色這個道理雖淺顯, 但假如我們更瞭解 R,G, B 的加權值分別是

1,2,4 的話, 那就再也不用翻書查顏色了...... 選擇自己的調色

盤來取代預設的調色盤, 是經常會做的事.

/etc/HOSTNAME : 記錄完整的 hostname 與 domain name , 這個檔案在須要 hostname

的場合會用得到 , 如 /etc/rc.d/rc.M 等 ......

/etc/NETWORKING : YES , 沒什麼用 , 改成 NO 會怎樣呢 ? 會對網路的使用會造成影

響嗎 ? 答案是否定的 .

/etc/X11 : link 到 /var/X11/lib/X11

/etc/at.deny : 在這個檔案中可記載那些人不能使用at這個命令來做一些 later job

, 假如 at.deny 是空的, 而且 at.allow 也不存在的話. 那就是每個

人都可以用 at 這個命令.

/etc/at.allow : 相對於 at.deny , 這個檔案記載那些人可以使用 at 這個指令關於

at 這個指令, 我想它的重要性是無庸置疑的, 各位應該要會這個指

令的用法, 會了這個指令, 可以在工作的執行上會更有彈性而關於

at.deny 與 at.allow, at 會先去找 at.allow, 假如存在而且有記

錄一些人的話, 那就只有這些人能使用 at 這個指令, 但假如

at.allow 並不存在的話, 那 at 就會去找 at.deny, 沒有在

at.deny 中的人都可以使用 at 這個指令了! 特別要說明的是, at

的執行時間也許會不如你所預期的, 比如說明明一個檔你叫它在

7:02 執行, 但它卻會等到 7:05 才執行, 這是因為 crond 是每五分

鍾才去看看 at 的 queue 中是否有要執行的 job. 當然, 你也可以

改成每分鐘都去 check, 但這樣似乎沒有很大的意義, 除非你對時間

的準確度要求的很嚴格, 否則應該沒有必要去動才是. 各位可去看看

/var/spool/cron/crontabs/root 中就有詳細記載, 每五分鐘 run

一次 atrun, 所以 at 命令的執行可看成以每五分鐘為一單位.

/var/spool/atjobs: 當你使用 at 來安排一件工作時, 系統會把

你目前的環境變數及所要用 at 執行的工作

抄一份到這個目錄下的檔案中 .

/var/spool/atspool : 使用 at 命令之後所得到的一些訊息 , 會被

記錄在這裡 . 可能是 at 所要執行的命令傳

回的錯誤訊息 , 或傳回執行成功的訊息 .

/etc/csh.cshrc :

/etc/csh.login :這兩個檔案應該很熟悉羅! 它就是各位常見到的.cshrc 及.login,

不過大家通常只注意到自己的 home directory 有這兩個檔, 但

/etc 下也有這兩個檔, 不過 /etc 下的這兩個檔絕大部份的情況下

都是由 system administrator 在 maintain, 一般 user 不應該有

權力去改. 順便一提的是, 系統會先去找 /etc 下這兩個檔, 接著才

加上自己 home directory 中那兩個檔的設定. 當然, 有了.login

也有.logout,.logout 中可以寫一些 message, 或執行一些命令, 當

你下達 logout 之後,.logout 就會被執行.

/etc/disktab : ( disk parameter table ) 假如你在剛開機有 pass 磁碟機的一些引數

給 kernel 的話 ( 通常是你的硬碟比較奇怪 , 需要 pass cylinders ,

heads , sectors 給 kernel 才抓的到 , 或者是 SCSI 的硬碟有時

有時也要用到一些引數 ) 那這些引數就會被記錄在這裡 .

/etc/exports : 這個檔案記錄著你要給別人 mount 的檔案系統 , 這就是典型 NFS

系統所存在的檔案 , TCP/IP for OS/2 若要使用 network file system

而要把自己的 filesystem 讓別人 mount 的話 ,

這個檔案也是不可或□

比如說 , 我所在的 domain name 為 dorm10.nctu.edu.tw , 我要把

我 /usr 下的 filesystem 開放給十舍的人 mount , 那我在

exports □

要這樣寫 :

/usr *.dorm10.nctu.edu.tw(ro)

接著 , 在 /etc/rc.d/rc.inet2 中 , 找到下面的段落 , 這些段落本來

每一列的前面都有 # , 現在 , 依照下面的內容 , 把這些 # 拿掉 .

......

......

......

# Start the SUN RPC Portmapper.

if [ -f ${NET}/rpc.portmap ]

then

echo -n " portmap"

${NET}/rpc.portmap

fi

......

......

......

# # Start the various SUN RPC servers.

if [ -f ${NET}/rpc.portmap ]

then

# if [ -f ${NET}/rpc.ugidd ]

# then

# echo -n " ugidd"

# ${NET}/rpc.ugidd -d

# fi

if [ -f ${NET}/rpc.mountd ]

then

echo -n " mountd"

${NET}/rpc.mountd

fi

if [ -f ${NET}/rpc.nfsd ]

then

echo -n " nfsd"

${NET}/rpc.nfsd

fi

# # Fire up the PC-NFS daemon(s).

if [ -f ${NET}/rpc.pcnfsd ]

then

echo -n " pcnfsd"

${NET}/rpc.pcnfsd ${LPSPOOL}

fi

# if [ -f ${NET}/rpc.bwnfsd ]

# then

# echo -n " bwnfsd"

# ${NET}/rpc.bwnfsd ${LPSPOOL}

# fi

fi

echo

# Done!

在 client 端可用如 :

mount -vt nfs rebel.dorm10.nctu.edu.tw:/usr /tmp

將 server 端的 /usr 掛到 client 端的 /tmp

/etc/fastboot : 這個檔案是使用 shutdown -f 所產生的 , -f means "fastboot"

在重新 reboot 之後 , 系統會去檢查這個檔是否存在 , 以決定

是否要 run fsck .

/etc/fdprm : floopy disk parameter table . 一般情況下是不須要更動的 , 除非

你有很奇怪格式的軟碟 , 或者你想做出不符合一般格式的磁碟片 .

/etc/nologin : 你也許會感到奇怪 , 我的 /etc 這個 directory 下並沒有這個檔啊?

沒錯 , 它平常是不存在的 , 通常會看到這個檔的話 , 那表示系統大

概要 shutdown 了 , 因為系統要 shutdown 了 , 自然不希望有人又

login 進來 , 所以在我們執行 shutdown 時 , nologin 這個檔會自動

的被 create , 裡面放著 shutdown message . 實際上 , 當我們在

login 時 , 系統會去檢查有沒有這個檔 , 假如有的話 , 那就會印出

這個檔案中的 message , 然後不讓你 login .

nologin 也有可能是為了某種理由被製造的 , 比如說系統在 maintain

暫時不希望有人 login . 無論如何 nologin 若存在 , 就不能

login .

/etc/fstab : 記錄開機要 mount 上來的 filesystem, 這個檔案相當重要! 各位可以

在 /etc/rc.d/rc.S 中找到 /sbin/mount -avt nonfs 這一列, 當執行

到這一列時, mount 就依據 /etc/fstab 中的記載, 自動的將檔案系統

mount 上來. 下面就是一個頗為典型的□例. 假如你一開機就想自動

mount 一些 filesystems, 而不要等到開機後再以手動 mount 的話那把

這些 filesystems 及相關資訊寫在這個檔, 是不錯的選擇. 在檔案格式

方面, 每一列有六個欄位, 不過後面兩個欄位常被省略所以我們只看到

有四個欄位. 其它的兩欄分別為 dump-freq 及 pass-number.

dump-freq 預設值為 0; 而 pass-number 是 fsck 所會參考到的地方,

數字可為 0,1,2...... 1 表示這個 filesystem 將首先被 fsck check,

2 表其次, 餘類推......

# 要掛上的檔案系統 掛在那裡 檔案系統格式 讀寫狀況

/dev/hdb2 swap swap defaults

/dev/hdb1 / ext2 defaults

/dev/sbpcd /mnt/cdrom iso9660 ro

/dev/hda1 /mnt/dosc msdos rw

/dev/hda5 /mnt/dosd msdos rw

/dev/hda6 /mnt/dose msdos rw

none /proc proc defaults

/etc/ftpusers : 這個檔案記錄那些人不可以 ftp 簽入系統 , 預設值有 root , uucp

news . 這些都是為了 security 方面的考量 , 你可以在這裡加入

不可 ftp 進來的 user id .

/etc/gateways : 顧名思義 , 這個檔案記錄一些 gateways 的 information

這個檔案的格式如下 :

name1 gateway name2 metric value

當 routed 啟動時, 它會去讀 /etc/gateways 這個檔. 若一個 gateway

並不做 routing information 交換的話, 那它就會被標示成 passive,

假如有做 routing information 的交換 ( 這臺機器上有 run routed )

, 那就會標示成 active net 或 host 這個關鍵字是指出 route 是到網

路或是到一臺特定的機器上. name1 就是目地網路或目地機器的名字.

這個名字可用 /etc/hosts 或是 /etc/networks 中的 symbolic host

name. name2 就是訊息將被送往之 gateway 的 name 或 IP address.

/etc/named.boot : 假如你要建立 name server 的話 , 那這個檔就是你要修改的地方

詳細的情況可以去看 named 的 manual 就知道了 .

/etc/named.pid : named process id

/etc/networks : 這個檔與 hosts 有點像 , 都是在 boot 的時候會用到的東西 ,

在這裡可以定義一個子網路與其 IP address 的資訊 .

/etc/nntpserver : 這個檔案記錄著 news server , 當我們使用 tin -r ( read news

remotely ) 時, 這個檔案會被參考到, 或者若這個檔案不存在的

話, 那環境變數 NNTPSERVER 所指定的 server 就會被當成要去取

得 news 的 server. 譬如說, 你要將 140.111.1.11 當成 news

server, 那 /etc/nntpserver 中就可寫:

140.111.1.11

/etc/nologin : 你也許會感到奇怪 , 我的 /etc 這個 directory 下並沒有這個檔啊?

沒錯, 它平常是不存在的, 要是你看到這個檔的話, 那表示系統大概

要 shutdown 了, 因為系統要 shutdown 了, 自然不希望有人又

login 進來, 所以在我們執行 shutdown 時, nologin 這個檔會自動

的被 create, 裡面放著 shutdown message. 實際上, 當我們在

login 時, 系統會去檢查有沒有這個檔, 假如有的話, 那就會印出這

個檔案中的 message, 然後不讓你 login. nologin 也有可能是為了

某種理由被製造的, 比如說系統在 maintain 暫時不希望有人 login.

無論如何 nologin 若存在, 就不能 login.

/etc/passwd : 呵呵 , 這個檔案可重要了 . 一個 system administrator 最初要學的

常常就是這個檔案的內容! 這個檔案記錄著系統可以認得的 user, 當

然啦, 也包括一些非人的 login name, 但這是有特殊用途的. 檔案內

容每列的格式如下:

Login Name:Encrypted Password:UID:GID:GCOS:Home Directory:Login Shell

(1)login name: 在 login name 方面 , 每個 login name 必須是唯一的 ,

而且不能超過 8 個字元, 一般說來, login name 雖然可以

大小寫混合, 但平常的情況下都用小寫. 順便一提的是

/usr/lib/aliases 這個檔案, 修改這個檔案的內容可以使

mail 時用超過 8 個字元的檔案. 如平常 mail

jhhsu@dorm10 .nctu.edu.tw 可變成 mail

Jin-Hwa-Sheu@dorm10.nctu.edu. tw.

(2)Encrypted Password: 這欄是編碼過的密碼 , 在新增一個 new user 時

應該在這欄填上 * , 更改 password 可用 passwd

這個指令 . passwd 這是一個 setuid 的指令 ,

關於 setuid , setgid , stickybit , 各位可去

參考 Unix Security 方面的書籍 .

(3)UID: user id , 每個"人"都要不一樣 , 習慣上 , 100 以前被保留做為

特殊的 user id , 而 root 總是 0.

(4)GID: group id , 在比較早期的系統 , 一個 user 同時只能在一個 group

不過現在就沒有這種限制了 .

(5)GCOS: 這欄基本上沒有特殊格式限制 , 在這裡可以寫上你的 full name

家中電話, 住址等...... 愛寫什麼就寫什麼. 雖然你可以亂寫一

通, 但若你用到逗號, 系統會把它當成區間. 如你寫: Jin-Hwa

Sheu, NCTU, 80317, (02)1234123 這些都會被當成 Full Name,

Office, Home Phone. finger 這個指令會去讀這地方的資訊. 用

chfn 可改變這欄.

(6)Home Directory: 這欄沒什麼 , 就是記錄 user 的 home directory 而已

利用 cd 或 cd~ 都可回到 home directory .

(7)Login Shell: 設定使用者所使用的 shell , 預設值是 /bin/bash . 當

然 , 你也可以自己改成 csh 或 tcsh , zsh 也是不錯 ,

假如有 free 版的 korn Shell 也可拿來用用 . 用 chsh

可改變你的 login shell .

為了 security 方面的考量 , 各位可以安裝 shadow , 將 passwd 這個檔

完全的與一般 user 隔絕開來 , 連讀也沒有辦法讀 passwd 這個檔 .

/etc/profile : profile 這個檔是 bash 這個 shell 所用的 , profile 之於 bash

就?

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

相關文章