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
14. hosts
16. localtime
19. monthly
20. motd
22. passwd
23. printcap
24. profile
25. rc
28. rc.i386
32. services
33. shells
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之详细说明,请man aliases查询。
2. crontab
这是给root用的crontab file,你也可以杀掉这个档案以"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:命令或是 shell script
*/N: 表示每N一算,像小时而言,*/3 指的是 0,3,6,9,12
请man 5 crontab去看详细说明。
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'
## 环境设定
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 相关设定
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会依照/etc/crontab 去做每日例行的工作。注意一下有些commands对你的硬盘造成很大的负荷,像是最后一行的"sh /etc/security",他会从你的根目录开始查询。你可以加些每天你想要执行的commands,像是"quotacheck -a","bin/rm/-f /tmp*junk*。
7. defaultdomain
这个档案记载你的domainname,你有跑yp (nis)时才有用。当然闲闲填一填也没差啦。
8. exports
这个档案定义哪些目录可经由NFS给别人使用。
例如 /cdrom -ro host1,host2
/home -maproot=root host3
Notice: 若你没加 "-ro" 表示可以写入,所以你应当小心。
做完修正后,"kill -1 $mountd_pid",然后用"showmount -e"去看看NFS是否做的正确。如果有错,用"tail /var/log/messages"来看错误讯息。
详细说明请 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
这个档案定义当你开机时,你想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 没有跟/放在一起,要特别注意,/usr不可以放在使用LKM载入的 filesystem后面。例如,你的MSDOSFS是利用LKM载入的(也就是说,你没有把MSDOSFS 编译在kernel中),你的/dos一定要放在/usr后面,不然开机会失败,例如:
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
这个档注明的users将无法ftp这台机器。只要写username即可。算是禁止ftp进来的黑名单吧。
12. group
这个档案主要记载着group名称,group id以及隶属于该group的使用者。要记得在FreeBSD中,只有属于wheel group的使用者才能su成root。
在升级时特别注意/usr/src/etc/group中是否有新增系统group,如network这个group就是最近新增的group。
其它详细请用 man group.
这个档案决定DNS-name-lookup的先后顺序.。最好先"hosts",其次"bind",最后用"nis"。
Hosts:自/etc/hosts查询。
Nis:自nis server查询。
14. hosts
这个档案记载了你所需要的ip和hostname,最少要包括localhost和你自己的hostname,通常是提供优先于nameserver的查询,或是没有nameserver时的查询。
格式如下:
IP-addr full-hostname alias
请 man hosts 去看详细说明.
这个档案定义由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。
此档案可控制系统资源与帐号各方面的限制,亦可设定内定之环境变数。
当你用make时,这个定义档将被参考。如果不是以BSD格式撰写的Makefiles,你应该安装gmake (GNU)
19. monthly
每月例行的jobs。
20. motd
Message Of Today,顾名思义,就是当你login时所出现的画面。
假如你要有自己的motd,你必须把/etc/rc.local前面几行在开机时会更改motd的命令拿掉,否则你每次开机motd会被乱改。
22. passwd
/etc/passwd /etc/master.passwd /etc/spwd.db /etc/pwd.db都是由vipw所产生的。关于怎样去建一个帐号,请参考 HOW-TO-adduser.
你可以man passwd, vipw, chpass, chfn 查询详细说明。
23. printcap
这个档案定义印表机的设定,在修改后,试着用lpr去打印一些东西,假如你觉得很慢,试着用lptcontrol -p去改变/dev/lpt0到poll模式,当然,你可以将lptcontrol -p加到/etc/rc.local 里,以使每次开机都有效。
man lptcontrol 查询详细说明.
24. profile
这是/bin/sh的default设定。
25. rc
当系统开机时,kernel会先去载入/sbin/init,然后/sbin/init会去执行/etc/rc,所以/etc/rc相对 DOS而言就好像AUTOEXEC.BAT。这个档案不要去更改,假如你不希望每次开机时 /tmp会被清干净,那你可以将跟/tmp相关的几行给砍掉。(个人偏好)
大多都有注解, 以下列举一些你该注意的地方...
1) hostname:你的完整hostname (FQDN:像是 freebsd.csie.nctu.edu.tw)
2) network_interfaces:网路卡的device name,像是 "ed0 lnc0".。
3) ifconfig_xxx : 定义网路卡及其 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 网路。
4) defaultrouter:内定的 router IP.(比如: 140.113.122.254)
5) routdflags:通常NO。但是假如你想要跑routed,则用 "-s" 或 "-q"。
详细说明请 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 的形态
你应该设定完后再重新开机以测试是否每个改变都合乎你的要求.
在这个档案加入你个人的设定,你可以将开机时想要执行的动作放在这里。像gopherd, lptcontrol,swap-on-file 等。
28. rc.i386
这个档案不要更动。
这定义 DNS 查询 nameserver 的先后顺序.
1. domain:将你的 domainname 放这儿。
2. nameserver:将你的 nameservers 放这儿,最前面的会被当成主要的nameserver。
详情请 man resolver.
32. services
定义 service 名字以及 port。不需要更动。
33. shells
所有的 shell 都应该放在这个档案里,像是 /bin/sh,/bin/tcsh,/home/bbs/bin/bbsrf 等等。
假如说有某个使用者的shell没有列在这个档案中,有些程序如ftpd会拒绝该使用者 ftp,如 adduser 将会拒绝执行。
man shells 查询详细说明.
这个档案指出系统的log应该储存在哪儿。
36. termcap
这个应该 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
每周例行的工作。