附录B Linux常用配置文件

    /etc/DIR_COLORS:

    设定在使用ls时,各种不同文件类型所用的颜色,但是不能用pipe再导向输出,否则就没有各种颜色了。由文件的内容可以很轻易地了解,如缺省的目录是蓝色,具有可执行权限的是绿色,而压缩文件是红色……这些都可依个人喜好来加以更改。在颜色的组成方面,我们常用RGB三原色的成份值来组合出各种不同的颜色。由RGB这个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这个命令来做一些在以后的时间执行一次的任务。假如at.deny是空的,而且at.allow也不存在的话,那就是每个人都可以用at这个命令。

    /etc/at.allow:

    相对于at.deny,这个文件记载哪些人可以使用at这个指令。关于at.deny与at.allow,at会先去找at.allow,假如存在而且有记录一些人的话,那就只有这些人能使用at这个指令,但假如at.allow并不存在的话,那at就会去找at.deny,没有在at.deny中的人都可以使用at这个指令了。

    /var/spool/atjobs:

    当你使用at来安排一件工作时,系统会把你目前的环境变数及所要用at执行的工作抄一份到这个目录下的文件中。

    /var/spool/atspool:

    使用at命令之后所得到的一些信息,会被记录在这里。可能是at所要执行的命令传回的错误信息,或传回执行成功的信息。

    /etc/csh.cshrc、/etc/csh.login:

    这两个文件是常见到的.cshrc及.login,不过普通用户只注意到自己的主目录有这两个文件,但/etc下也有这两个文件,不过/etc下的这两个文件绝大部份的情况下都是由系统管理员在维护,一般用户不应该有权力去改。顺便一提的是,系统会先去找/etc下这两个文件,接着才加上自己主目录中那两个文件的设定。当然,有了.login也有.logout,.logout中可以写一些message,或执行一些命令,当你下达logout之后,.logout就会被执行。

    /etc/disktab:

    假如你在刚开机需要传递一些参数给内核的话,比如硬盘比较特别,需要传递cylinders,heads,sectors给内核,或者是SCSI的硬盘有时也要用到一些参数,那这些参数就会被记录在这里。

    /etc/exports:

    这个文件记录着你要给别人mount的文件系统,这就是典型NFS系统所存在的文件,若要使用NFS而要把自己的文件系统让别人装载的话,这个文件也是不可或缺的。

    /etc/fastboot:

    这个文件是使用shutdown-f所产生的,-f的意思是“fastboot”。在重新reboot之后,系统会去检查这个文件是否存在,以决定是否要runfsck。

    /etc/fdprm:

    Floopy disk parameter table。一般情况下是不需要更动的,除非你有很奇怪格式的软盘,或者你想做出不符合一般格式的软盘片。

    /etc/fstab:

    记录开机要装载上来的文件系统,这个文件相当重要。在/etc/rc.d/rc.S中找到/ sbin/mount-avtnonfs这一列,当执行到这一列时,mount就依据/etc/fstab中的记载,自动地将文件系统装载上来。假如你一开机就想自动装载一些文件系统,而不要等到开机后再以手动装载的话,那把这些文件系统及相关信息写在这个文件是不错的选择。在文件格式方面,每一列有六个栏位,不过后面两个栏位常被省略,所以我们只看到有四个栏位。其他的两栏分别为dump-freq及pass-number。dump-freq缺省值为0;而pass-number是fsck所会参考到的地方,数字可为0,1,2……1表示这个filesystem将首先被fsckcheck,2表其次,其余类推……

    /etc/ftpusers:这个文件记录哪些人不可以ftp登录系统,缺省值有root,uucp,news。这些都是为了安全方面的考虑,你可以在这里加入不可ftp进来的userid。

    /etc/gateways:

    顾名思义,这个文件记录一些网关的信息,这个文件的格式如下:

    <net|host>name1 gateway name2 metric value<passive|active|external>

    当routed启动时,它会去读/etc/gateways这个文件。若一个网关并不做路由信息交换的话,那它就会被标示成passive,假如有做路由信息的交换,即这台机器上在运行routed,那就会标示成active net或host,这个关键字是指出route是到网络或是到一台特定的机器上。name1就是目的网络或目的机器的名字,这个名字可用/etc/hosts或是/ etc/networks中的符号地址name,name2就是信息将被送往之网关的名字或IP地址。

    /etc/group:

    如同/etc/passwd显示了系统中所有的使用者名字,/etc/group定义系统中所有的组与组的相关信息。这个文件只能被管理员所读写,管理员可使用groupadd,groupdel,groupmod来管理/etc/group这个文件,要手动管理也是可以的。

    /etc/hosts:

    这个文件记录着IP地址和主机名的映射关系。在这个文件中,至少会有两列,一列为loopback,这是为了检错目的而设的,另一列为localhost,就是你自己的机器。

    /etc/hosts.equiv:

    在里面可以设定一些远程机器,而从这些远程机器利用rsh或rlogin连回本机的话,便不用输入密码,同样的东西也可以在.rhosts见到。不过这东西最好不要乱设,以信得过的hosts为主,才不会造成安全上的困扰。

    /etc/hosts.deny:

    设定哪些远程机器不可以使用inetd。

    /etc/hosts.allow:

    设定哪些远程机器可以使用inetd。至于inetd有哪些service,可以参考/etc/ inetd.conf,从里面就可以很清楚地看出来。假如你采取比较稳妥做法的话,可以在hosts.deny中写ALL:ALL。然后在hosts.allow中加入可以访问的主机。

    /etc/hosts.lpd:

    记录可访问打印机的主机。假如一台打印机可被网络上的许多台主机所共用,那printcap这个文件必须得描述完整的网络设定信息。在比较严密控制的情况下,有两个条件必须符合。首先,本地机器必须在远程机器的/etc/hosts.eqiuv中,或者,在远程机器的/etc/hosts.lpd中被记载。其次,使用者必须有远程机器的帐号。

    /etc/issue:

    这个文件记录着登录前所要显示的提示信息。

    /etc/ld.so.conf:

    记录一些library所在的目录

    /etc/magic:

    初看这个文件时,也许只能隐隐约约地看到:这个文件似乎是描述一些文件的格式。没错,这个文件记载了许多文件格式的识别字串或方法。当使用file这个指令时,它可以告诉你某一个文件的格式,如它是一个text文件,或是一个shellscript或DOS可执行文件等……而file这个指令,就是去参考/etc/magic这个资料库。假如你知道某一文件的识别字,而原来magic这个资料库没有记录,那你可以把识别方法加到资料库中,或干脆建立自己的资料库算了。

    /etc/motd:

    这个文件很简单,就是message of the day的意思,里面可以写一些提示信息,而这些提示信息会在登录shell之前被显示出来。通常都是系统管理员要告知用户的一些信息。

    /etc/mtab:

    目前mount上来的filesystems,各位可使用mount这个指令来看看这个文件的变化。

    /etc/mtools:

    这里面记录的,是给/usr/bin/mtools参考用的参数。mtools是一群操作MSDOS文件的命令集合,可用的命令很多。这些都被link到mtools。

    /etc/named.boot:

    假如你要建立域名服务器的话,那这个文件就是你要修改的地方。详细的情况可以去看named的手册就知道了。

    /etc/networks:

    这个文件与hosts有点像,都是在启动的时候会用到的东西,在这里可以定义一个子网络与其IP地址对应。

    /etc/nntpserver:

    这个文件记录着newsserver,当我们使用tin-r(readnews remotely)时,这个文件会被参考到,若这个文件不存在的话,那环境变数NNTPSERVER所指定的server就会被当成要去取得news的server。

    /etc/nologin:

    这个文件平常是不存在的,通常看到这个文件的话,那表示系统大概要shutdown了,因为系统要shutdown了,自然不希望有人又login进来,所以在我们执行shutdown时,nologin这个文件会自动地被创建,里面放着关机提示信息。实际上,当我们在登录时,系统会去检查有没有这个文件,假如有的话,那就会显示这个文件中的内容,然后不让你登录。nologin也有可能是为了某种理由被制造的,比如说系统在维护时,暂时不希望有人登录。无论如何nologin若存在,就不能登录。

    /etc/passwd:

    这个文件很重要,记录了用户帐号信息。文件内容每列的格式如下:

    LoginName:EncryptedPassword:UID:GID:GCOS:Home Directory:Login Shell

    Login Name:每个login name必须是唯一的,而且不能超过8个字符,一般说来,login name虽然可以大小写混合,但平常的情况下都用小写。顺便一提的是/usr/lib/ aliases这个文件,修改这个文件的内容可以使mail时用超过8个字符的文件。

    Encrypted Password:这栏是编码过的密码,在新增一个用户时,应该在这栏填上*,更改password可用passwd。

    UID:userid,每个用户的UID都要不一样,习惯上,一定数字以前被保留做为特殊的userid,而root总是0。

    GID:groupid,用户的主要组的GID。

    GCOS:这栏基本上没有特殊格式限制,在这里可以写上你的full name,家庭电话,住址……爱写什么就写什么。虽然你可以乱写一通,但若你用到逗号,系统会把它当成区间。

    Home Directory:这栏没什么,就是记录用户的主目录而已。

    Login Shell:设定使用者所使用的shell,缺省值是/bin/bash。

    为了安全方面的考虑,可以使用shadow,将passwd这个文件中密码加密后保存在/etc/shadow中。

    /etc/profile:

    profile这个文件是bash这个shell所用的,profile之于bash就好像cshrc之于csh。同样的,/etc下的profile也是管理员在维护的,主要是放着全局的设定,而每个用户在自己的主目录都可以有各人的.profile。

    /etc/protocols:

    假如你为了某些目的,而写了自己的protocol,那你就必须把它列在这个文件中,这样inetd才会管理一些daemons去用它。

    /etc/psdatabase:

    这个文件是被psupdate所用到,psupdate主要的功能就是更新/etc/psdatabase这个文件,以符合目前的kernel image system mapfile。一般的缺省文件是/usr/src/ Linux/tools/zSystem。

    /etc/resolv.conf:

    这里面记载着你机器的域名及域名服务器的IP地址,域名服务器可以自己加入。

    /etc/securetty:

    假如你要以root登录的话,实际上是有限制的,这个文件就列出了root可以登录的ttys,假如你把每一列都注释起来,那就没有任何一个terminal可供root登录了。

    /etc/services:

    系统提供的服务与端口的对应。

    /etc/shell:

    这个文件再简单也不过了,里面就记录着可以用的login shell。还有一点,那就是这个文件的记录会在使用chsh时作为参考,唯有被列在这里的shell,使用chsh时才会出现这些shell可选。

    /etc/sudoers:

    在一个不是很复杂的系统中,也许一个系统管理员就可以管理所有的事情。但一旦系统提供的服务变多,系统管理的工作也随之变得沉重,这时候,sudo就派上用场了,sudo可以让一个普通的user变成superuser,这样一来,一个系统的某些工作,就可以分配给这些superusers来做,以减轻负担。

    当然,并不是每个user都可以变成superuser,所以/etc/sudoers就是记录着哪些人可以用superuser的身份来执行一些工作,这个文件的格式如下:

    /var/run/utmp:

    从utmp中可以知道现在有谁正在用系统。当使用者logout之后,init就去把logout的使用者从/etc/utmp中去掉。实际上,utmp每个record是像这样的一个结构:

    structutmp{

    shortut_type;/typeoflogin/

    pid_tut_pid;/pidofprocess/

    charut_line[12];/devicenameoftty-”/dev/”/

    charut_id[2];/initidorabbrev.ttyname/

    time_tut_time;/logintime/

    charut_user[8];/username,notnull-term/

    charut_host[16];/hostnameforremotelogin/

    longut_addr;/IPaddrofremotehost/

    };

    /var/log/wtmp:

    简而言之,wtmp是一个登录记录的数据库,有许多的指令会用到这个文件,像last,sessreg,who…这个文件格式与utmp大致相同,只是多了shutdown及reboot这个记录,指出系统的shutdown或reboot,及一个空的username,指出在相关terminal的logout。还有,不像utmp,wtmp的记录是慢慢地附加上去的,也就是说,这个文件会越变越大,虽然变大的速度并不会太快,但一旦到了某种程度大小的话系统管理员应该要考虑删除部分内容。

    /etc/zprofile:

    link到/etc/profile。