FreeBSD中/etc下的文件簡(jiǎn)介
FreeBSD中/etc下的文件可以說(shuō)是紛繁復雜,對熟悉它的人來(lái)講不算什么,但對于一個(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要將信轉寄給哪些使用者, 或是交由哪個(gè)程序處理。
如. root: user1,name2,user3
usenet: "|/usr/local/bin/mail-post.pl"
如上范例,sendmail會(huì )將原先寄給的root的信分送給user1和name2和user3,而把寄給usenet的信交由mail-post.pl處理。
在你修改完之后,要記得執行"newaliases"來(lái)更新/etc/aliases.db
關(guān)于aliases之詳細說(shuō)明,請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í)的身份執行這個(gè)command
(這只對/etc/crontab有用,crontab -e無(wú)此欄位)
Command:命令或是 shell script
*/N: 表示每N一算,像小時(shí)而言,*/3 指的是 0,3,6,9,12
請man 5 crontab去看詳細說(shuō)明。
3. csh.cshrc
# 系統內定給csh shell用的cshrc檔
## 確定HOME目錄
setenv HOME $HOME
set home=$HOME
cd $HOME
## 檔案權限設定
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)境設定
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)設定
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
## 雜七雜八設定
#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
# 系統內定的 .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
# 系統內定的 .logout
clear
6. daily
cron會(huì )依照/etc/crontab 去做每日例行的工作。注意一下有些commands對你的硬盤(pán)造成很大的負荷,像是最后一行的"sh /etc/security",他會(huì )從你的根目錄開(kāi)始查詢(xún)。你可以加些每天你想要執行的commands,像是"quotacheck -a","bin/rm/-f /tmp*junk*。
7. defaultdomain
這個(gè)檔案記載你的domainname,你有跑yp (nis)時(shí)才有用。當然閑閑填一填也沒(méi)差啦。
8. exports
這個(gè)檔案定義哪些目錄可經(jīng)由NFS給別人使用。
例如 /cdrom -ro host1,host2
/home -maproot=root host3
Notice: 若你沒(méi)加 "-ro" 表示可以寫(xiě)入,所以你應當小心。
做完修正后,"kill -1 $mountd_pid",然后用"showmount -e"去看看NFS是否做的正確。如果有錯,用"tail /var/log/messages"來(lái)看錯誤訊息。
你應該要將/etc/rc.conf中的nfs_client_enable,nfs_server_enable設為YES。
詳細說(shuō)明請 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è)檔案定義當你開(kāi)機時(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
詳情請 man fstab.
如果你的/usr 沒(méi)有跟/放在一起,要特別注意,/usr不可以放在使用LKM載入的 filesystem后面。例如,你的MSDOSFS是利用LKM載入的(也就是說(shuō),你沒(méi)有把MSDOSFS 編譯在kernel中),你的/dos一定要放在/usr后面,不然開(kāi)機會(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這臺機器。只要寫(xiě)username即可。算是禁止ftp進(jìn)來(lái)的黑名單吧。
12. group
這個(gè)檔案主要記載著(zhù)group名稱(chēng),group id以及隸屬于該group的使用者。要記得在FreeBSD中,只有屬于wheel group的使用者才能su成root。
在升級時(shí)特別注意/usr/src/etc/group中是否有新增系統group,如network這個(gè)group就是最近新增的group。
其它詳細請用 man group.
13. host.conf
這個(gè)檔案決定DNS-name-lookup的先后順序.。最好先"hosts",其次"bind",最后用"nis"。
Hosts:自/etc/hosts查詢(xún)。
Bind:自nameserver(參考/etc/resolv.conf設定)查詢(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
請 man hosts 去看詳細說(shuō)明.
15. inetd.conf
這個(gè)檔案定義由inetd所提供的服務(wù),應該要和/etc/services保持一致性。當你修改這個(gè)檔案的時(shí)候,記得要kill -1 $inetd_pid去知會(huì )inetd要重新更新資料。
你可以安裝tcp-wrapper (tcpd)以增加安全性。
16. localtime
這個(gè)檔記載你所在的時(shí)區資料,你可以從/usr/share/zoneinfo中選一個(gè)適合的來(lái)用。就臺灣而言,你應該用/usr/share/zoneinfo/Asia/Taipei,正常來(lái)說(shuō),在install時(shí)會(huì )自動(dòng)將此檔案copy 到/etc/localtime。
17. login.conf
此檔案可控制系統資源與賬號各方面的限制,亦可設定內定之環(huán)境變數。
"man login.conf" for detail.
18. make.conf
當你用make時(shí),這個(gè)定義檔將被參考。如果不是以BSD格式撰寫(xiě)的Makefiles,你應該安裝gmake (GNU)
19. monthly
每月例行的jobs。
20. motd
Message Of Today,顧名思義,就是當你login時(shí)所出現的畫(huà)面。
假如你要有自己的motd,你必須把/etc/rc.local前面幾行在開(kāi)機時(shí)會(huì )更改motd的命令拿掉,否則你每次開(kāi)機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),應該去修改/etc/rc.conf
22. passwd
/etc/passwd /etc/master.passwd /etc/spwd.db /etc/pwd.db都是由vipw所產(chǎn)生的。關(guān)于怎樣去建一個(gè)賬號,請參考 HOW-TO-adduser.
你可以man passwd, vipw, chpass, chfn 查詢(xún)詳細說(shuō)明。
23. printcap
這個(gè)檔案定義印表機的設定,在修改后,試著(zhù)用lpr去打印一些東西,假如你覺(jué)得很慢,試著(zhù)用lptcontrol -p去改變/dev/lpt0到poll模式,當然,你可以將lptcontrol -p加到/etc/rc.local 里,以使每次開(kāi)機都有效。
man lptcontrol 查詢(xún)詳細說(shuō)明.
24. profile
這是/bin/sh的default設定。
25. rc
當系統開(kāi)機時(shí),kernel會(huì )先去載入/sbin/init,然后/sbin/init會(huì )去執行/etc/rc,所以/etc/rc相對 DOS而言就好像AUTOEXEC.BAT。這個(gè)檔案不要去更改,假如你不希望每次開(kāi)機時(shí) /tmp會(huì )被清干凈,那你可以將跟/tmp相關(guān)的幾行給砍掉。(個(gè)人偏好)
26. rc.conf----代替原來(lái)的/etc/sysconfig
這主要用來(lái)做系統開(kāi)機時(shí)的環(huán)境設定。/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:內定的 router IP.(比如: 140.113.122.254)
5) routdflags:通常NO。但是假如你想要跑routed,則用 "-s" 或 "-q"。
詳細說(shuō)明請 man routed。
6) rwhod:YES執行rwho daemon. rwho跟ruptime須此daemon。
7) sendmail_flags:執行sendmail daemon,通常設為"-db -q30m"
8) nfs_* :執行 nfs client 或 server
9) check_quotas:enable檔案系統 quotas
10) accountint:enable command accounting,"lastcomm" 須要。
11) firewall_enable:enable firewall 的功能
firewall_type:指定 firewall 的形態(tài)
你應該設定完后再重新開(kāi)機以測試是否每個(gè)改變都合乎你的要求.
27. rc.conf.local----代替原來(lái)的/etc/rc.local
在這個(gè)檔案加入你個(gè)人的設定,你可以將開(kāi)機時(shí)想要執行的動(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)路方面各項設定請由 /etc/rc.conf 設定,原則上此檔不需更動(dòng)
31. resolv.conf
這定義 DNS 查詢(xún) nameserver 的先后順序.
1. domain:將你的 domainname 放這兒。
2. nameserver:將你的 nameservers 放這兒,最前面的會(huì )被當成主要的nameserver。
3.search:將domainnames放這兒,當你沒(méi)有輸入完整的hostname時(shí),他會(huì )將domainnames附加上去。例如: search csie.NCTU.edu.tw NCTU.edu.tw edu.tw tw
詳情請 man resolver.
32. services
定義 service 名字以及 port。不需要更動(dòng)。
33. shells
所有的 shell 都應該放在這個(gè)檔案里,像是 /bin/sh,/bin/tcsh,/home/bbs/bin/bbsrf 等等。
假如說(shuō)有某個(gè)使用者的shell沒(méi)有列在這個(gè)檔案中,有些程序如ftpd會(huì )拒絕該使用者 ftp,如 adduser 將會(huì )拒絕執行。
man shells 查詢(xún)詳細說(shuō)明.
34. sysconfig----新版已改名為/etc/rc.conf
參考 rc.conf。
35. syslog.conf
這個(gè)檔案指出系統的log應該儲存在哪兒。
36. termcap
這個(gè)應該 link 到 /usr/share/misc/termcap。
37. ttys
定義tty的形式及某些tty允不允許root login。假如某些ttys后面加有"secure",表示 root 可以login。你應當多加些,如/dev/tty[pqrs][0-9a-v]
詳情請 man ttys。
38. weekly
每周例行的工作。