在 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. 端的 /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 交换的话, 那它就会被标示成 pass
|