FreeBSD中/etc下的文件简介

2005-03-28 10:35:42  作者
FreeBSD中/etc下的文件可以说是纷繁复杂,对熟悉它的人来讲不算什么,但对于一个新手来说就。。。太乱了,下面是一些经常用到的配置文件的作用和配置方法,但愿能给你一点帮助。

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----代替原来的/etc/sysconfig
27.rc.conf.local----代替原来的/etc/rc.local
28.rc.i386
29.rc.local----新版改名为/etc/rc.conf.local
30.rc.network----代替原来的/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

这个档案主要是告诉sendmail要将信转寄给哪些使用者,或是交由哪个程式处理.

如.root:user1,name2,user3
usenet:"|/usr/local/bin/mail-post.pl"

如上范例,sendmail会将原先寄给的root的信分送给user1和name2和user3,而把寄给usenet的信交由mail-post.pl处理.

在你修改完之後,要记得执行"newaliases"来更新/etc/aliases.db

关於aliases之具体说明,请manaliases查询.

2.crontab

这是给root用的crontabfile,你也可以杀掉这个档案以"crontab-e"来替代.
格式如下...

#分小时天月礼拜几用谁的身份命令
*/5****root/usr/libexec/atrun

minute:分钟/小时,范围自0至59
hour:小时/天,范围自0至23
mday:天/月,范围自0至31
month:月/年,范围自0至12
wday:天/周,范围自0至7(0,7表示星期天)
who:表是以谁的身份执行这个command
(这只对/etc/crontab有用,crontab-e无此栏位)
command:命令或是shellscript

*/N:表示每N一算,像小时而言,*/3指的是0,3,6,9,12

请man5crontab去看具体说明.

3.csh.cshrc

#系统内定给cshshell用的.cshrc档

##确定HOME目录
setenvHOME$HOME
sethome=$HOME
cd$HOME

##档案权限设定
umask022

##就是Aliases嘛
aliaspftp'/usr/local/bin/pftp'
aliasfree'pstat-s|grep-vnot'
aliastalkytalk
aliasruptime'/usr/bin/ruptime|grep-vdown'
aliasftpncftp
aliasrwho'/usr/bin/rwho-a|grep-vLOGIN'
aliasmoreless
aliaszmorezless
aliasmless
aliaspss'psauxw|sort-k2|grep$USER'
aliaspsm'psauxw|sort-k1,2|more'
aliaspslpsm
aliaspsv'psauxw|grep-v$USER|sort-k2|more'
aliasd'/usr/local/bin/colorls-G-alFgk\!*|more'
aliasdir'/usr/local/bin/colorls-G-alFgk\!*'
aliasrdrmdir
aliasmdmkdir
aliasclsclear
aliascd..'cd..'
aliasdel'/bin/rm-i'
aliasxdel'/bin/rm-rf'
aliasmv'mv-i'
aliasdir/w'/bin/ls-aFgk'
aliasdw'/bin/ls-aFgk'
#aliasx'(startx%26amp;)%26gt;%26amp;/dev/console;sleep300;lo'
#aliaslpr'lpr-m'
aliascp'cp-i'
aliasrm'rm-i'
aliaslo'clear;exit'
aliasbye'clear;exit'
#aliasvicvi
aliasunlo'unsetautologout;unsetenvautologout'
aliasqjoe
alias..'cd..'
alias...'cd../..'
#aliasku'ku-W'
aliastinrtin
#aliass'execscreen'

##环境设定
setpath=(/sbin/usr/sbin/bin/usr/bin/usr/local/sbin/usr/local/bin)
setpath=($path/etc/usr/etc/usr/local/etc)
setpath=($path/usr/X11R6/bin/usr/games)
setpath=($path~~/bin.)
setmail=(10/var/mail/$USER)
setrecexact
setautolist
setmatchbeep=ambiguous
setautoexpand
setautocorrect
setignoreeof
setnoclobber
setnotify
setcorrect=all
if(!$?WINDOW)then
#setprompt="%B%m[%/][%?]-%n-"
setprompt="%B%m[%/]-%n-"
else
setprompt="%B%m[%/]-%n-[W$WINDOW]"
endif
setprompt2="(%t%m)%~#%%"
setprompt3="%SDoyoumean[%R](y/n/e)?"
sethistory=500
setsavehist=500
settime=100
#setwatch=(1anyany)
setsymlinks=ignore
setlistlinks
setlistjobs
setrmstar
setshowdots
#settperiod=30
#setautologout=(602)
#setenvMANPATH/usr/man:/usr/local/man:/usr/man/preformat:/usr/X11/man:/usr/openwin/man
setenvEDITOR/usr/local/bin/joe
setenvVISUAL/usr/local/bin/joe
setenvEXINIT'setai'
setenvLESS"-EsPm-LESS-"
setenvLESSCHARDEF"8bcccbcc18b95.."
setenvPAGER"less-Em"
#setenvPAGERmore
setenvLC_CTYPElt_LN.ISO_8859-1
setenvLANGC
setenvBLOCKSIZE1k
setenvMACHINE_ARCHi386
setenvMACHINEi386
setenvORGANIZATION"交大资工ADONIS"

##X相关设定
setenvXWINHOME'/usr/X11R6'
setenvX11HOME'/usr/X11R6'
setenvOPENWINHOME'/usr/X11R6'
setenvXKEYSYMDB/usr/X11R6/lib/X11/XKeysymDB
setenvXNLSPATH/usr/X11R6/lib/X11/nls
#setenvLD_LIBRARY_PATH/usr/lib:/usr/X11R6/lib:/usr/local/lib
sttyerase'^?'

if($?TERM)then
if($TERM=="xterm"||$TERM=="xterms")then
sttyerase'^H'
endif
endif

##杂七杂八设定
#setterm=vt100
#setTERM=vt100
#setenvtermvt100
#setenvTERMvt100
#sttyextb
stty38400
sttycrt
stty-tabs
stty-istrip
sttypass8
unlo
#bindkey"[HOME]"beginning-of-line
#bindkey"[ESC]"keyboard-quit
limitcoredumpsize0

#给FSPClient用
setenvFSP_PORT21
setenvFSP_HOSTnctuccca.edu.tw
setenvFSP_DIR/
setenvFSP_TRACE
setenvFSP_DELAY3000

#Aii..就是fspaliases:)
aliasfcat'(setnoglob;execfcatcmd\!*)'
aliasfcd'setenvFSP_DIR`(setnoglob;execfcdcmd\!*)`;fpwd'
aliasfdu\(setnoglob\;execfducmd\!\*\)
aliasffind\(setnoglob\;execffindcmd\!\*\)
aliasfget'(setnoglob;execfgetcmd\!*)'
aliasfgrab'(setnoglob;execfgrabcmd\!*)'
aliasfls'(setnoglob;execflscmd-F\!*)'
aliasfll'(setnoglob;execflscmd-l\!*)'
aliasfdir'(setnoglob;execflscmd-l\!*)'
aliasfmore\(setnoglob\;execfcatcmd\!\*\|more\)
aliasfpro'(setnoglob;execfprocmd\!*)'
aliasfpwd'echo"$FSP_HOST($FSP_PORT):$FSP_DIR"'
aliasfrm'(setnoglob;execfrmcmd\!*)'
aliasfrmdir'(setnoglob;execfrmdircmd\!*)'
aliasfhost'setenvFSP_HOST\!*;setenvFSP_DIR/'

4.csh.login

#系统内定的.login档.

#sttyextb
stty38400
#sttycrt
#stty-tabs
stty-istrip
sttypass8

#Mesgyifnotconsole
mesgy
if(`tty|cut-c6-`==console)then
mesgn
endif

msgs-fp

5.csh.logout

#系统内定的.logout
clear
.

6.daily

cron会依照/etc/crontab去做每日例行的工作.注重一下有些commands对你的硬盘造成很大的负荷,像是最後一行的"sh/etc/security",他会从你的根目录开始查询.你可以加些天天你想要执行的commands,像是"quotacheck-a","bin/rm/-f/tmp*junk*.

7.defaultdomain

这个档案记载你的domainname,你有跑yp(nis)时才有用.当然闲闲填一填也没差啦.

8.exports

这个档案定义哪些目录可经由NFS给别人使用.
例如/cdrom-rohost1,host2
/home-maproot=roothost3

Notice:若你没加"-ro"表示可以写入,所以你应当小心点.

做完修正後,"kill-1$mountd_pid",然後用"showmount-e"去看看NFS是否做的正确.假如有错,用"tail/var/log/messages"来看错误讯息.

你应该要将/etc/rc.conf中的nfs_client_enable,nfs_server_enable设为YES.

具体说明请man5exports.

9.fbtab

/dev/ttyv00600/dev/console
/dev/ttyv10600/dev/console
/dev/ttyv20600/dev/console
/dev/ttyv30600/dev/console
#/dev/ttyv00600/dev/pcaudio:/dev/pcaudioctl

10.fstab

这个档案定义当你开机时,你想mount哪些partition.
例如.

/dev/sd0a/ufsrw11
/dev/sd0e/dosmsdosro,-gmsdos,-m75011
/dev/sd0g/usr/localufsrw,userquota11
/dev/sd0h/homeufsrw,userquota,groupquota11
/dev/sd0bnoneswapsw00
proc/procprocfsrw00
kern/kernkernfsrw00

详情请manfstab.

假如你的/usr没有跟/放在一起,要非凡注重,/usr不可以放在使用LKM载入的filesystem後面。例如,你的MSDOSFS是利用LKM载入的(也就是说,你没有把MSDOSFS编译在kernel中),你的/dos
一定要放在/usr後面,不然开机会失败,例如

modload:exec(/usr/bin/ld):NOsuchfileordirectiory
msdos:vfsload(msdos):Operationnotpermitted
Filessystemmountfailed,startupaborted
EnterpathnameofshellorRETURNforsh

11.ftpusers

这个档注明的users将无法ftp这台机器.只要写username即可.算是禁止ftp进来的黑名单吧.

12.group

这个档案主要记载著group名称,groupid以及隶属於该group的使用者.

要记得在FreeBSD中,只有属於wheelgroup的使用者才能su成root.

在升级时非凡注重/usr/src/etc/group中是否有新增系统group,如network这个group就是最近新增的group.

其他具体请用mangroup.

13.host.conf

这个档案决定DNS-name-lookup的先後顺序.你最好先"hosts",其次"bind",最後用"nis".

hosts:自/etc/hosts查询.
bind:自nameserver(参考/etc/resolv.conf设定)查询.
nis:自nisserver查询.

14.hosts

这个档案记载了你所需要的ip和hostname,最少要包括localhost和你自己的hostname,通常是提供优先於nameserver的查询,或是没有nameserver时的查询.

格式如下
IP-addrfull-hostnamealias
如.123.456.789.123heaven.net.comheaven

请manhosts去看具体说明.

15.inetd.conf

这个档案定义由inetd所提供的服务,应该要和/etc/services保持一致性.

当你修改这个档案的时候,记得要kill-1$inetd_pid去知会inetd要重新更新资料.

你可以安装tcp-wrapper(tcpd)以增加安全性.

16.localtime

这个档记载你所在的时区资料,你可以从/usr/share/zoneinfo中选一个适合的来用.

就台湾而言,你应该用/usr/share/zoneinfo/Asia/Taipei,正常来说,在install时会自动将此档案copy到/etc/localtime.

17.login.conf

此档案可控制系统资源与帐号各方面的限制,亦可设定内定之环境变数。

"manlogin.conf"fordetail.

18.make.conf

当你用make时,这个定义档将被参考.

假如不是以BSD格式撰写的Makefiles,你应该安装gmake(GNU)

19.monthly

每月例行的jobs.

20.motd

MessageOfToday,顾名思义,就是当你login时所出现的画面.

假如你要有自己的motd,你必须把/etc/rc.local前面几行在开机时会更改motd的命令拿掉,否则你每次开机motd会被乱改.

21.netstart----新版已改名为/etc/rc.network

目前此档已由/etc/rc.network取代目前此档只作为root在singleusermode要手动启动网路服务
时使用。这个档案不要做更动,应该去修改/etc/rc.conf

22.passwd

/etc/passwd/etc/master.passwd/etc/spwd.db/etc/pwd.db都是由vipw所产生的.关於怎样去建一个帐号,请参考HOW-TO-adduser.

你可以manpasswd,vipw,chpass,chfn查询具体说明.

23.printcap

这个档案定义印表机的设定,在修改後,试著用lpr去列印一些东西,假如你觉得很慢,试著用lptcontrol-p去改变/dev/lpt0到poll模式,当然,你可以将lptcontrol-p加到/etc/rc.local里以使每次开机都有效.

manlptcontrol查询具体说明.

24.profile

这是/bin/sh的default设定.

25.rc

当系统开机时,kernel会先去载入/sbin/init,然後/sbin/init会去执行/etc/rc,所以/etc/rc相对於DOS而言就似乎AUTOEXEC.BAT.这个档案不要去更改,假如你不希望每次开机时/tmp会被清乾净,那你可以将跟/tmp相关的几行给砍掉.(个人偏好)

26.rc.conf----代替原来的/etc/sysconfig

这主要用来做系统开机时的环境设定./etc/rc,/etc/rc.i386,/etc/rc.conf.local,/etc/rc.network,/etc/[blabla]都会参考这个档案.所以这个档案可以说非常重要.

大多都有注解,以下列举一些你该注重的地方...
1)hostname:你的完整hostname(FQDN:像是freebsd.csie.nctu.edu.tw)
2)network_interfaces:网路卡的devicename,像是"ed0lnc0".
3)ifconfig_xxx:定义网路卡及其ipaddress.
像是ifconfig_ed0="inet140.113.145.1netmask0xffffff00"
ifconfig_ed1="inet140.113.190.1netmask0xffffff00"
方法如下...
ifconfig_$device-name="inet$IPnetmask$netmask",
netmask0xffffff00就是255.255.255.0表ClassC网路.
4)defaultrouter:内定的routerIP.(比如:140.113.122.254)
5)routdflags:通常NO.但是假如你想要跑routed,则用"-s"或"-q".
具体说明请manrouted.
6)rwhod:YES执行rwhodaemon.rwho跟ruptime须此daemon.
7)sendmail_flags:执行sendmaildaemon,通常设为"-db-q30m"
8)nfs_*:执行nfsclient或server
9)check_quotas:enable档案系统quotas
10)accountint:enablecommandaccounting,"lastcomm"须要.
11)firewall_enable:enablefirewall的功能
firewall_type:指定firewall的形态

你应该设定完後再重新开机以测试是否每个改变都合乎你的要求.

27.rc.conf.local----代替原来的/etc/rc.local

在这个档案加入你个人的设定,你可以将开机时想要执行的动作放在这里.像gopherd,lptcontrol,swap-on-file等.

28.rc.i386

这个档案不要更动.

29.rc.local----新版改名为/etc/rc.conf.local

新版已由/etc/rc.conf.local所取代。

30.rc.network----代替原来的/etc/netstart

有关网路方面各项设定请由/etc/rc.conf设定,原则上此档不需更动

31.resolv.conf

这定义DNS查询nameserver的先後顺序.

1.domain:将你的domainname放这儿.
2.nameserver:将你的nameservers放这儿,最前面的会被当成主要的nameserver.
3.search:将domainnames放这儿,当你没有输入完整的hostname时,他会将domainnames附加上去.例如:searchcsie.NCTU.edu.twNCTU.edu.twedu.twtw

详情请manresolver.

32.services

定义service名字以及port.不需要更动。

33.shells

所有的shell都应该放在这个档案里,像是/bin/sh,/bin/tcsh,/home/bbs/bin/bbsrf等等.

假如说有某个使用者的shell没有列在这个档案中,有些程式如ftpd会拒绝该使用者ftp,如adduser将会拒绝执行.

manshells查询具体说明.

34.sysconfig----新版已改名为/etc/rc.conf

参考rc.conf。

35.syslog.conf

这个档案指出系统的log应该储存在哪儿.

36.termcap

这个应该link到/usr/share/misc/termcap.

37.ttys

定义tty的形式及某些tty允不答应rootlogin.假如某些ttys後面加有"secure",表示root可以login.你应当多加些,如/dev/tty[pqrs][0-9a-v]

详情请manttys。

38.weekly

每周例行的工作。