FreeBSD中/etc下的文件可以說(shuō)是紛繁復(fù)雜,對(duì)熟悉它的人來(lái)講不算什么,但對(duì)于一個(gè)新手來(lái)說(shuō)就。。。太亂了,下面是一些經(jīng)常用到的配置文件的作用和配置方法,但愿能給你一點(diǎn)幫助。
1. aliases
2. crontab
3. csh.cshrc
4. csh.login
5. csh.logout
6. daily
7. defaultdomain
8. exports
9. fbtab
10.fstab
11.ftpusers
12.group
13.host.conf
14.hosts
15.inetd.conf
16.localtime
17.login.conf
18.make.conf
19.monthly
20.motd
21.netstart----新版已改名為/etc/rc.network
22.passwd
23.printcap
24.profile
25.rc
26.rc.conf----代替原來(lái)的/etc/sysconfig
27.rc.conf.local----代替原來(lái)的/etc/rc.local
28.rc.i386
29.rc.local----新版改名為/etc/rc.conf.local
30.rc.network----代替原來(lái)的/etc/netstart
31.resolv.conf
32.services
33.shells
34.sysconfig----新版已改名為/etc/rc.conf
35.syslog.conf
36.termcap
37.ttys
38.weekly
1. aliases
這個(gè)檔案主要是告訴 sendmail 要將信轉(zhuǎn)寄給哪些使用者, 或是交由哪個(gè)程式處理.
如. root: user1,name2,user3
usenet: "|/usr/local/bin/mail-post.pl"
如上范例, sendmail 會(huì)將原先寄給的 root 的信分送給 user1 和 name2 和 user3, 而把寄給 usenet 的信交由 mail-post.pl 處理.
在你修改完之後, 要記得執(zhí)行 "newaliases" 來(lái)更新 /etc/aliases.db
關(guān)於 aliases 之詳細(xì)說(shuō)明, 請(qǐng) man aliases 查詢(xún).
2. crontab
這是給 root 用的 crontab file, 你也可以殺掉這個(gè)檔案以 "crontab -e" 來(lái)替代.
格式如下...
#分 小時(shí) 天 月 禮拜幾 用誰(shuí)的身份 命令
*/5 * * * * root /usr/libexec/atrun
minute: 分鐘/小時(shí), 范圍自 0 至 59
hour: 小時(shí)/天, 范圍自 0 至 23
mday: 天/月, 范圍自 0 至 31
month: 月/年, 范圍自 0 至 12
wday: 天/周, 范圍自 0 至 7 (0, 7 表示星期天)
who: 表是以誰(shuí)的身份執(zhí)行這個(gè) command
(這只對(duì) /etc/crontab 有用, crontab -e 無(wú)此欄位)
command: 命令或是 shell script
*/N: 表示每 N 一算, 像小時(shí)而言, */3 指的是 0,3,6,9,12
請(qǐng) man 5 crontab 去看詳細(xì)說(shuō)明.
3. csh.cshrc
# 系統(tǒng)內(nèi)定給 csh shell 用的 .cshrc 檔
## 確定 HOME 目錄
setenv HOME $HOME
set home=$HOME
cd $HOME
## 檔案權(quán)限設(shè)定
umask 022
## 就是 Aliases 嘛
alias pftp '/usr/local/bin/pftp'
alias free 'pstat -s|grep -v not'
alias talk ytalk
alias ruptime '/usr/bin/ruptime|grep -v down'
alias ftp ncftp
alias rwho '/usr/bin/rwho -a|grep -v LOGIN'
alias more less
alias zmore zless
alias m less
alias pss 'ps auxw|sort -k 2|grep $USER'
alias psm 'ps auxw|sort -k 1,2|more'
alias psl psm
alias psv 'ps auxw|grep -v $USER|sort -k 2|more'
alias d '/usr/local/bin/colorls -G -alFgk \!* | more'
alias dir '/usr/local/bin/colorls -G -alFgk \!*'
alias rd rmdir
alias md mkdir
alias cls clear
alias cd.. 'cd ..'
alias del '/bin/rm -i'
alias xdel '/bin/rm -rf'
alias mv 'mv -i'
alias dir/w '/bin/ls -aFgk'
alias dw '/bin/ls -aFgk'
#alias x '(startx &)>&/dev/console;sleep 300;lo'
#alias lpr 'lpr -m'
alias cp 'cp -i'
alias rm 'rm -i'
alias lo 'clear;exit'
alias bye 'clear;exit'
#alias vi cvi
alias unlo 'unset autologout;unsetenv autologout'
alias q joe
alias .. 'cd ..'
alias ... 'cd ../..'
#alias ku 'ku -W'
alias tin rtin
#alias s 'exec screen'
## 環(huán)境設(shè)定
set path = (/sbin /usr/sbin /bin /usr/bin /usr/local/sbin /usr/local/bin)
set path = ($path /etc /usr/etc /usr/local/etc)
set path = ($path /usr/X11R6/bin /usr/games)
set path = ($path ~ ~/bin .)
set mail = (10 /var/mail/$USER)
set recexact
set autolist
set matchbeep = ambiguous
set autoexpand
set autocorrect
set ignoreeof
set noclobber
set notify
set correct = all
if ( ! $?WINDOW ) then
# set prompt = "%B%m [%/] [%?] -%n- "
set prompt = "%B%m [%/] -%n- "
else
set prompt = "%B%m [%/] -%n- [W$WINDOW] "
endif
set prompt2 = "(%t %m)%~ #%% "
set prompt3 = "%SDo you mean [%R] (y/n/e) ? "
set history = 500
set savehist = 500
set time=100
#set watch=(1 any any)
set symlinks = ignore
set listlinks
set listjobs
set rmstar
set showdots
#set tperiod = 30
# set autologout = (60 2)
#setenv MANPATH /usr/man:/usr/local/man:/usr/man/preformat:/usr/X11/man:/usr/openwin/man
setenv EDITOR /usr/local/bin/joe
setenv VISUAL /usr/local/bin/joe
setenv EXINIT 'set ai'
setenv LESS "-EsPm-LESS-"
setenv LESSCHARDEF "8bcccbcc18b95.."
setenv PAGER "less -Em"
#setenv PAGER more
setenv LC_CTYPE lt_LN.ISO_8859-1
setenv LANG C
setenv BLOCKSIZE 1k
setenv MACHINE_ARCH i386
setenv MACHINE i386
setenv ORGANIZATION "交大資工 ADONIS"
## X 相關(guān)設(shè)定
setenv XWINHOME '/usr/X11R6'
setenv X11HOME '/usr/X11R6'
setenv OPENWINHOME '/usr/X11R6'
setenv XKEYSYMDB /usr/X11R6/lib/X11/XKeysymDB
setenv XNLSPATH /usr/X11R6/lib/X11/nls
#setenv LD_LIBRARY_PATH /usr/lib:/usr/X11R6/lib:/usr/local/lib
stty erase '^?'
if ( $?TERM ) then
if ($TERM == "xterm" || $TERM == "xterms") then
stty erase '^H'
endif
endif
## 雜七雜八設(shè)定
#set term = vt100
#set TERM = vt100
#setenv term vt100
#setenv TERM vt100
#stty extb
stty 38400
stty crt
stty -tabs
stty -istrip
stty pass8
unlo
#bindkey "[HOME]" beginning-of-line
#bindkey "[ESC]" keyboard-quit
limit coredumpsize 0
# 給 FSP Client 用
setenv FSP_PORT 21
setenv FSP_HOST nctuccca.edu.tw
setenv FSP_DIR /
setenv FSP_TRACE
setenv FSP_DELAY 3000
# Aii.. 就是 fsp aliases :)
alias fcat '(set noglob; exec fcatcmd \!*)'
alias fcd 'setenv FSP_DIR `(set noglob; exec fcdcmd \!*)`;fpwd'
alias fdu \(set noglob\; exec fducmd \!\*\)
alias ffind \(set noglob\; exec ffindcmd \!\*\)
alias fget '(set noglob; exec fgetcmd \!*)'
alias fgrab '(set noglob; exec fgrabcmd \!*)'
alias fls '(set noglob; exec flscmd -F \!*)'
alias fll '(set noglob; exec flscmd -l \!*)'
alias fdir '(set noglob; exec flscmd -l \!*)'
alias fmore \(set noglob\; exec fcatcmd \!\* \| more\)
alias fpro '(set noglob; exec fprocmd \!*)'
alias fpwd 'echo "$FSP_HOST ($FSP_PORT): $FSP_DIR"'
alias frm '(set noglob; exec frmcmd \!*)'
alias frmdir '(set noglob; exec frmdircmd \!*)'
alias fhost 'setenv FSP_HOST \!*;setenv FSP_DIR /'
4. csh.login
# 系統(tǒng)內(nèi)定的 .login 檔.
#stty extb
stty 38400
#stty crt
#stty -tabs
stty -istrip
stty pass8
# Mesg y if not console
mesg y
if ( `tty | cut -c 6-` == console ) then
mesg n
endif
msgs -fp
5. csh.logout
# 系統(tǒng)內(nèi)定的 .logout
clear
.
6. daily
cron 會(huì)依照 /etc/crontab 去做每日例行的工作. 注意一下有些 commands 對(duì)你的硬盤(pán)造成很大的負(fù)荷, 像是最後一
行的 "sh /etc/security", 他會(huì)從你的根目錄開(kāi)始查詢(xún). 你可以加些每天你想要執(zhí)行的commands, 像是
"quotacheck -a", "bin/rm/-f /tmp*junk*.
7. defaultdomain
這個(gè)檔案記載你的 domainname, 你有跑 yp (nis) 時(shí)才有用. 當(dāng)然閑閑填一填也沒(méi)差啦.
8. exports
這個(gè)檔案定義哪些目錄可經(jīng)由 NFS 給別人使用.
例如 /cdrom -ro host1,host2
/home -maproot=root host3
Notice: 若你沒(méi)加 "-ro" 表示可以寫(xiě)入, 所以你應(yīng)當(dāng)小心點(diǎn).
做完修正後, "kill -1 $mountd_pid", 然後用 "showmount -e" 去看看 NFS 是否做的正確. 如果有錯(cuò), 用 "tail /var/log/messages" 來(lái)看錯(cuò)誤訊息.
你應(yīng)該要將 /etc/rc.conf 中的 nfs_client_enable, nfs_server_enable 設(shè)為 YES.
詳細(xì)說(shuō)明請(qǐng) man 5 exports.
9. fbtab
/dev/ttyv0 0600 /dev/console
/dev/ttyv1 0600 /dev/console
/dev/ttyv2 0600 /dev/console
/dev/ttyv3 0600 /dev/console
#/dev/ttyv0 0600 /dev/pcaudio:/dev/pcaudioctl
10.fstab
這個(gè)檔案定義當(dāng)你開(kāi)機(jī)時(shí), 你想 mount 哪些 partition.
例如.
/dev/sd0a / ufs rw 1 1
/dev/sd0e /dos msdos ro,-gmsdos,-m750 1 1
/dev/sd0g /usr/local ufs rw,userquota 1 1
/dev/sd0h /home ufs rw,userquota,groupquota 1 1
/dev/sd0b none swap sw 0 0
proc /proc procfs rw 0 0
kern /kern kernfs rw 0 0
詳情請(qǐng) man fstab.
如果你的 /usr 沒(méi)有跟 / 放在一起,要特別注意,/usr 不可以放在使用 LKM 載入的 filesystem 後面。例如,你的 MSDOSFS 是利用 LKM 載入的(也就是說(shuō),你沒(méi)有把 MSDOSFS 編譯在 kernel 中),你的 /dos
一定要放在 /usr 後面,不然開(kāi)機(jī)會(huì)失敗,例如:
modload:exec(/usr/bin/ld):NO such file or directiory
msdos:vfsload(msdos):Operation not permitted
Filessystem mount failed,startup aborted
Enter pathname of shell or RETURN for sh
11.ftpusers
這個(gè)檔注明的 users 將無(wú)法 ftp 這臺(tái)機(jī)器. 只要寫(xiě) username 即可. 算是禁止 ftp 進(jìn)來(lái)的黑名單吧.
12.group
這個(gè)檔案主要記載著 group 名稱(chēng), group id 以及隸屬於該 group 的使用者.
要記得在 FreeBSD 中, 只有屬於 wheel group 的使用者才能 su 成 root.
在升級(jí)時(shí)特別注意 /usr/src/etc/group 中是否有新增系統(tǒng) group, 如 network 這個(gè) group 就是最近新增的 group.
其他詳細(xì)請(qǐng)用 man group.
13.host.conf
這個(gè)檔案決定 DNS-name-lookup 的先後順序. 你最好先 "hosts", 其次 "bind", 最後用 "nis".
hosts: 自 /etc/hosts 查詢(xún).
bind: 自 nameserver (參考 /etc/resolv.conf 設(shè)定) 查詢(xún).
nis: 自 nis server 查詢(xún).
14.hosts
這個(gè)檔案記載了你所需要的 ip 和 hostname, 最少要包括 localhost 和你自己的 hostname, 通常是提供優(yōu)先於 nameserver 的查詢(xún), 或是沒(méi)有 nameserver 時(shí)的查詢(xún).
格式如下:
IP-addr full-hostname alias
如. 123.456.789.123 heaven.net.com heaven
請(qǐng) man hosts 去看詳細(xì)說(shuō)明.
15.inetd.conf
這個(gè)檔案定義由 inetd 所提供的服務(wù), 應(yīng)該要和 /etc/services 保持一致性.
當(dāng)你修改這個(gè)檔案的時(shí)候, 記得要 kill -1 $inetd_pid 去知會(huì) inetd 要重新更新資料.
你可以安裝 tcp-wrapper (tcpd) 以增加安全性.
16.localtime
這個(gè)檔記載你所在的時(shí)區(qū)資料, 你可以從 /usr/share/zoneinfo 中選一個(gè)適合的來(lái)用.
就臺(tái)灣而言, 你應(yīng)該用 /usr/share/zoneinfo/Asia/Taipei, 正常來(lái)說(shuō), 在 install 時(shí)會(huì)自動(dòng)將此檔案 copy 到 /etc/localtime.
17.login.conf
此檔案可控制系統(tǒng)資源與帳號(hào)各方面的限制,亦可設(shè)定內(nèi)定之環(huán)境變數(shù)。
"man login.conf" for detail.
18.make.conf
當(dāng)你用 make 時(shí), 這個(gè)定義檔將被參考.
如果不是以 BSD 格式撰寫(xiě)的 Makefiles, 你應(yīng)該安裝 gmake (GNU)
19.monthly
每月例行的 jobs.
20.motd
Message Of Today, 顧名思義, 就是當(dāng)你 login 時(shí)所出現(xiàn)的畫(huà)面.
假如你要有自己的 motd, 你必須把 /etc/rc.local 前面幾行在開(kāi)機(jī)時(shí)會(huì)更改 motd 的命令拿掉, 否則你每次開(kāi)機(jī) motd 會(huì)被亂改.
21.netstart----新版已改名為/etc/rc.network
目前此檔已由 /etc/rc.network 取代 目前此檔只作為 root 在 single user mode 要手動(dòng)啟動(dòng)網(wǎng)路服務(wù)
時(shí)使用。 這個(gè)檔案不要做更動(dòng), 應(yīng)該去修改 /etc/rc.conf
22.passwd
/etc/passwd /etc/master.passwd /etc/spwd.db /etc/pwd.db 都是 由 vipw 所產(chǎn)生的. 關(guān)於怎樣去建一個(gè)帳號(hào), 請(qǐng)參考 HOW-TO-adduser.
你可以 man passwd, vipw, chpass, chfn 查詢(xún)?cè)敿?xì)說(shuō)明.
23.printcap
這個(gè)檔案定義印表機(jī)的設(shè)定, 在修改後, 試著用 lpr 去列印一些東西, 假如你覺(jué)得很慢, 試著用 lptcontrol -p 去改變
/dev/lpt0 到 poll 模式, 當(dāng)然, 你可以將 lptcontrol -p 加到 /etc/rc.local 里 以使每次開(kāi)機(jī)都有
效.
man lptcontrol 查詢(xún)?cè)敿?xì)說(shuō)明.
24.profile
這是 /bin/sh 的 default 設(shè)定.
25.rc
當(dāng)系統(tǒng)開(kāi)機(jī)時(shí), kernel 會(huì)先去載入 /sbin/init, 然後 /sbin/init 會(huì)去執(zhí)行 /etc/rc, 所以
/etc/rc 相對(duì)於 DOS 而言就好像 AUTOEXEC.BAT. 這個(gè)檔案不要去更改, 假如你不希望每次開(kāi)機(jī)時(shí) /tmp 會(huì)被清乾凈,
那你可以將跟 /tmp 相關(guān)的幾行給砍掉. (個(gè)人偏好)
26.rc.conf----代替原來(lái)的/etc/sysconfig
這主要用來(lái)做系統(tǒng)開(kāi)機(jī)時(shí)的環(huán)境設(shè)定. /etc/rc, /etc/rc.i386, /etc/rc.conf.local, /etc/rc.network, /etc/[bla bla] 都會(huì)參考這個(gè)檔案. 所以這個(gè)檔案可以說(shuō)非常重要.
大多都有注解, 以下列舉一些你該注意的地方...
1) hostname : 你的完整 hostname (FQDN: 像是 freebsd.csie.nctu.edu.tw)
2) network_interfaces : 網(wǎng)路卡的 device name, 像是 "ed0 lnc0".
3) ifconfig_xxx : 定義網(wǎng)路卡及其 ip address.
像是 ifconfig_ed0="inet 140.113.145.1 netmask 0xffffff00"
ifconfig_ed1="inet 140.113.190.1 netmask 0xffffff00"
方法如下...
ifconfig_$device-name="inet $IP netmask $netmask",
netmask 0xffffff00 就是 255.255.255.0 表 Class C 網(wǎng)路.
4) defaultrouter: 內(nèi)定的 router IP.(比如: 140.113.122.254)
5) routdflags : 通常 NO. 但是假如你想要跑 routed, 則用 "-s" 或 "-q".
詳細(xì)說(shuō)明請(qǐng) man routed.
6) rwhod : YES 執(zhí)行 rwho daemon. rwho 跟 ruptime 須此 daemon.
7) sendmail_flags : 執(zhí)行 sendmail daemon, 通常設(shè)為 "-db -q30m"
8) nfs_* : 執(zhí)行 nfs client 或 server
9) check_quotas : enable 檔案系統(tǒng) quotas
10) accountint : enable command accounting, "lastcomm" 須要.
11) firewall_enable : enable firewall 的功能
firewall_type : 指定 firewall 的形態(tài)
你應(yīng)該設(shè)定完後再重新開(kāi)機(jī)以測(cè)試是否每個(gè)改變都合乎你的要求.
27.rc.conf.local----代替原來(lái)的/etc/rc.local
在這個(gè)檔案加入你個(gè)人的設(shè)定, 你可以將開(kāi)機(jī)時(shí)想要執(zhí)行的動(dòng)作放在這里. 像 gopherd, lptcontrol, swap-on-file 等.
28.rc.i386
這個(gè)檔案不要更動(dòng).
29.rc.local----新版改名為/etc/rc.conf.local
新版已由/etc/rc.conf.local所取代。
30.rc.network----代替原來(lái)的/etc/netstart
有關(guān)網(wǎng)路方面各項(xiàng)設(shè)定請(qǐng)由 /etc/rc.conf 設(shè)定,原則上此檔不需更動(dòng)
31.resolv.conf
這定義 DNS 查詢(xún) nameserver 的先後順序.
1. domain : 將你的 domainname 放這兒.
2. nameserver : 將你的 nameservers 放這兒, 最前面的會(huì)被當(dāng)成主要的nameserver.
3. search : 將 domainnames 放這兒, 當(dāng)你沒(méi)有輸入完整的 hostname 時(shí), 他會(huì)將 domainnames 附加上去. 例如: search csie.NCTU.edu.tw NCTU.edu.tw edu.tw tw
詳情請(qǐng) man resolver.
32.services
定義 service 名字以及 port. 不需要更動(dòng)。
33.shells
所有的 shell 都應(yīng)該放在這個(gè)檔案里, 像是 /bin/sh, /bin/tcsh, /home/bbs/bin/bbsrf 等等.
假如說(shuō)有某個(gè)使用者的 shell 沒(méi)有列在這個(gè)檔案中, 有些程式如 ftpd 會(huì)拒絕該使用者 ftp, 如 adduser 將會(huì)拒絕執(zhí)行.
man shells 查詢(xún)?cè)敿?xì)說(shuō)明.
34.sysconfig----新版已改名為/etc/rc.conf
參考 rc.conf。
35.syslog.conf
這個(gè)檔案指出系統(tǒng)的 log 應(yīng)該儲(chǔ)存在哪兒.
36.termcap
這個(gè)應(yīng)該 link 到 /usr/share/misc/termcap.
37.ttys
定義 tty 的形式及某些 tty 允不允許 root login. 假如某些 ttys 後面加有 "secure", 表示 root 可以 login. 你應(yīng)當(dāng)多加些, 如 /dev/tty[pqrs][0-9a-v]
詳情請(qǐng) man ttys。
38.weekly
每周例行的工作。