系统配置目录 /etc (二)

接上文

系统目录

/etc/blkid/

该目录存放的是一个块设备 ID 的临时文件 (只是暂存 , 当执行 blkid 时, 会更新为新的值), 主要是用来记录系统中所有区块设备的标签名称 (Label Name) , 硬件的唯一识别码 (UUID) , 文件系统格式等 .

/etc/bluetooth/

蓝牙设备的配置文件 .

/etc/cron.X/

除了 cron.d 之外的其余四个都是在 /etc/crontab 中定义好的 , 也就是说该目录下的文件将是真正执行任务的脚本 . 而 cron.d 则是留给用户自定义的任务文件的所在文件 .

/etc/default/

存放某些命令执行时的参数 , 默认有 useradd 这个工具 , 在这个文件里就定义了当新增用户时 , 系统会做的事 .

/etc/firmware/

硬件相关的文件 , 很底层 , 是 cpu 所需要的 microcode 的实体文件 .

/etc/foomatic/

用户在使用打印机时 , 除了一对一的方式 , 还有一对多 (单台连接多台) 或者多对一 (多台 PC 对一台打印机) . 多对一最常见的就是使用 spool 的方式 ; 一对多就是由 foomagic 所提供 .

/etc/hal/

Hardware Abstracion Layer , Linux 下的一种管理硬件的机制 , 用户可以通过 HAL 来获取硬件的相关数据 . 目前应该都迁移至 /use/share/hal/ 下了 .

/etc/iscsi/

iSCSI 协议的配置文件 . 该协议允许通过 TCP/IP 协议来传送 SCSI 数据包 . iSCSI 可以让系统通过网络的架构 , 直接连接到网络上一台 Storage , 因此 , 可以将该 Storage 直接变为系统上的一块 SCSI 硬盘 .

/etc/isdn/

ISDN (Internet Services Digital Network) 服务的配置目录 .

/etc/ld.so.conf.d/

该目录是由 ldconfig 所使用的 , 它是由 /etc/ld.so.conf 文件决定的 . 该命令在于将系统中的一些库函数预先放到内存中 , 让系统在使用时可以比以往使用硬盘的读取速度来得快 .

/etc/logrotate.d/

该目录定义了如何定期备份系统所需要备份的系统或软件记录文件及备份方式 . 目录是由 logrotate 产生 , 里面的文件则是由各个软件产生 . 而在 /etc/logrotate.conf 配置文件中 , 是一些备份的基本配置 .

/etc/logwatch/

记 录如何分析日志文件 , 虽然在 /etc/ 下有该目录 , 但是真正的目录实在 /usr/share/logwatch/ 下的 , 所有要配置如何分析及告知用户的配置都在 /usr/share/logwatch/scripts/logwatch.pl 中 .

/etc/lsb-release.d

LSB (Linux Standard Base) 目的是将所有的 Linux 发行版本定义为一些共通标准 .

/etc/lvm/

LVM 主要通过 /dev/mapper 下的设备文件运行 , 这个目录是 LVM 的基本配置文件 , 单配置或操作一般只须通过 LVM 提供的命令即可 , 而不会用到该目录 , 除非要用到高级选项才会碰到该目录 .

/etc/makedev.d/

MAKEDEV 组件所使用配置文件 . 该组件是用来生产设备的 , 也就是说在 /dev/ 下的文件均是由该命令产生 . 但是我们一般是通过 mknod 来产生设备文件的 , 这二者的区别在哪里了 ?
MAKEDEK 可以产生所有 /dev/ 下的设备文件 , 它就是通过 /etc/makedev.d/ 下的目录知道每一个硬件的属性以及种类的 . 当建立一个某个设备文件时 , 会先参考 /etc/makedev.d/ 中针对该设备文件的属性 , 如果没有定义该设备文件 , 就无法产生该设备 . 因此在这种情况下 , mknod 就有用了 , 但是需要该设备的 Major , Minor ID 等信息 , 产生完毕后 , 可能还需要修改文件的 user , group 等属性 . 通过 mknod 是相对比较复杂 .

/etc/modprobe.d/

modprobe 的主配置目录 , 系统启动时默认加载的模块放在 /etc/modprobe.conf 中 , 该该目录中存放的主要是 blacklist , 这个可以避免某一个硬件同时有两个以上的模块支持 .

/etc/netplug/ , /etc/netplug.d/

控制联机时的接口操作 .
netplug/ 配置有那些需要控制的网络接口 , 默认是 eth* , 即所有的以太网接口 , 当这些接口有网线连接时 , 再参考 netplug.d/ 这个目录 .
netplug.d/ 定义当网络接口联机时 , 该做哪些操作 , 一般的配置会直接启动网卡 . 因为这个是以 daemon 的方式检测 , 所以需要将 netplug 服务启动 .

/etc/opt/

定义存放所有额外安装软件的主机配置文件 , 但目前并没有使用到 , 系统初始安装时 , 只是先建立这个空目录 .

/dev/pm/

由 pm-utils 组件提供的目录 , 该组件是一套电源管理工具 , 在 2.6 之后的内核中都支持 ACPI 功能 , 因此可以做到像 Hibernate 的省电模式那样 .
pm-utils 除了 /etc/pm/ 目录 , /usr/lib/pm-utils/ 也是主要的配置目录 . 默认 /etc/pm/ 是空目录 , 是留给用户自行定义的地方 , 系统真正执行的是 /usr/lib/pm-utils/ 底下的文件 .
在 /usr/lib/pm-utils/ 下 , 最好用的就是 sleep.d 了 , 当用户在执行 Hibernate 时 , 就会依据此目录中文件名前两位数字的大小 , 按序执行 (由小到大) .
在执行 Hibernate 时 , 先执行 /etc/pm/ , 再执行 /usr/lib/pm-utils/ ; 启动相反 .
在执行 Hibernate 时 , 会从目录文件名的前两位数字由小到大进行操作 ; 启动相反 .

/etc/ppp/

PPP (Point-to-Point) 的配置目录 , 现在的 ADSL 已经不再使用 PPP 了 , 取而代之的是 PPPoE (PPP over Ethernet) .

/etc/profile.d/

该目录存放的是系统部分的软件配置 , 会按照不同的 shell 执行不同的文件 .

/etc/rc.d/

定义在,每一个 runlevel 所执行的服务 .

rc.sysinit : 不论 runlevel 是什么 , 在系统一开始启动所遇到的第一文件就是该目录下的 rc.sysinit .

rcX.d : 继 rc.sysinit 文件后执行的 , 按照 /etc/inittab 的默认顺序执行 . 里面文件均是以 K 或者 S 开头命名 . K 和 S 的区别看下面这个小实验就清楚了 :
# cd /etc/rc.d/rc5.d/

查看 vsftpd 这个服务的前缀是 S 还是 K
# ll | grep ftp
lrwxrwxrwx 1 root root 16 2010-12-29 23:32 K50vsftpd -> ../init.d/vsftpd*

# chkconfig –list | grep vsftpd
vsftpd          0:off   1:off   2:off   3:off   4:off   5:off   6:off

将 vsftpd 开机自启
# chkconfig vsftpd on

# chkconfig –list | grep vsftpd
vsftpd          0:off   1:off   2:on    3:on    4:on    5:on    6:off

这时候由 K 变为了 S
# ll | grep ftp
lrwxrwxrwx 1 root root 16 2011-01-02 04:46 S60vsftpd -> ../init.d/vsftpd*

在这个目录下有一个比较特殊 , 那就是 S99local , 他没有连接到 /etc/rc.d/init.d/ 下的某个文件而是连接到了 /etc/rc.d/rc.local 这个文件 .

rc.local : 该文件就是连接文件 S99local 的原文件 , 也就是最后一个要执行的文件 . 该文件里面只有一行 : 产生一个 /var/lock/subsys/local 文件 , 你可以将自己的执行脚本放在这个文件中等待执行 .

/etc/readahead.d/

该目录是 readahead 组件的主配置目录 , 为了加速系统的使用速度 , readahead_early , readahead_later , 这两个 deamon 在系统加载时 , 直接将日常所需的一些文件放到硬盘的 cache 中 , 让文件通过 cache 读取 .
readahead.early 预先加载一些系统需要的基本文件 , readahead.later 则是 X Window 所需的文件 ; 另外 , 在 runlevel 3 中 , readahead.later 是关闭的 , 而在 runlevel 5 中是被开启的 .

# chkconfig –list | grep read*
readahead_early  0:off  1:off   2:on   3:on   4:off   5:on    6:off
readahead_later  0:off   1:off   2:off   3:off   4:off   5:on    6:off

/etc/redhat-lsb/

跟 /etc/lsb-release.d/ 目录由同一个组件 redhat-lsb 支持 .

/etc/rwtab.d/

该 目录是系统启动时会参考的目录 , 主要文件在 /etc/rwtab 中 ,  该目录和中的目录或者文件都是准备和 rwtab 一起被系统加载的 , 任何文件都分两个字段 , type , path ; type 又分 empty , dirs , files . 通过 rc.sysinit 执行 . 更详细的解释请点击这里 .

/etc/setuptool.d/

setuptool 工具的配置目录 , 他可以完全自定义 setup 命令中所有的配置项目及其执行顺序 .

/etc/skel/

产生新增加用户主目录的初始文件目录的配置文件 . 当新建一个用户时 , 系统会复制一份 /etc/skel/* 到用户的家目录中 .

/etc/sysconfig/

系统上一个十分重要的目录 , 里面放置了大量的系统启动以及运行相关的配置 . 比如网络的配置network-scripts/ , 防火墙 iptables 的配置等都在这个目录下 .

/etc/syslog-ng/

新一代的记录服务 (syslog Next Generation) , 不是完全开源的 , 可能需要购买 .

/etc/udev/

udev 是一套设备的管理机制 , udev 通过 sysfs 的文件系统 (参考 /sys/ 下的文件信息) , 可以正确的掌握目系统上存在的硬件设备 , 以及针对每一个硬件设备做出不同的判断 . 该目录可以决定 udev 要针对哪些硬件做出哪些操作 .
该目录下的 rules.d/ 存放了目前系统针对不同的硬件设备的操作 . 更详细的理解请点击这里 .

/etc/xen/

虚拟化技术 . 目前正在被 KVM 慢慢替代 .

/etc/yum , /etc/yum.repos.d/

YUM (Yellowdog Updater Modified) 的目录 . 主配置文件在 /etc/yum.conf 中 , /etc/yum , /etc/yum.repos.d/ 分别代表更新方式及外挂程序的配置目录 , 存放定期更新组件内容 .

安全性文件

/etc/audit/

audit 安全机制 , 主要以 daemon 的方式监控文件被存取的情况 . 详细的使用方法请点击这里 , 这里 .

/etc/pam.d/

Linux-PAM (Pluggable Authentication Modules for Linux) 的配置文件 , 配合 /lib/security/ 中的函数库 , 提供 Linux 下的应用程序认证机制 .
详细教程请点击这里 , 这里 , 这里 .

/etc/pam_pkcs11/

PAM 机制中的一种登录模块 (PAM PKCS#11) , 可以让用户通过 smart card 做登录 .

/etc/pki/

PKI (Public Key Infrastructure) 是一种公开密钥管理方式 . 该目录下包括 Redhat 本身 RPM 网络安装所需要的认证文件 rpm-gpg . 这里是一个应用 .

/etc/racoon/

由 ipsec-tools 所提供 , IPsec 的目的是让系统实现 VPN 的网络技术 .

/etc/security/

和 /etc/pam.d/ 相辅相成 , 在 pam.d 中要调用 /lib/security/ 的函数库 , 但是该库比较晦涩 , 在 /etc/secuirty/ 下 , 就是针对这些函数库 , 提供以配置文件的方式进行细节配置 .

/etc/selinux/

SELinux (Security-Enhanced Linux) 是另外一种安全机制 . 详细的文档请点击这里 , 这里 , 这里 .

/etc/wpa_supplicant/

该目录属于无线安全认证的部分 , 用户可以在这个目录中加入已知可登录的 AP 等 . 这里是一个应用实例 .

X Window文件

/etc/alternatives/

该目录下有所有目前已经定义的程序名称 , 都是以软链接的方式存在,  里面每一个文件其实都有定义好的默认执行程序 . 可以使用 alternatives 工具查看修改 . 详细的请点击这里 , 这里 .

/etc/fonts/

该目录是 Fontconfig 组件最主要的配置文件 , 详细配置文档请点击这里 .

/etc/gconf/

该目录由 GConf2 所构建 , GConf 的作用就是提供 GNOME 下应用程序的注册机制 , 让每一个应用程序都有其专属的键值 . 更详细的文档请参考这里 , 这里 .

/etc/gdm/

GNOME Display Manager 的配置文件 , 也就是协助 X Window 启动的管理软件 (如 X Window 登录的方式) . 当用户使用 # startx 来进入 X Window 时 , 是不需要经过 GDM 的 .
GDM 的主要配置文件是 custom.conf , 在 X 下可以使用 gdmsetup 工具来对这个文件进行配置 . 详细配置请点击这里 .

/etc/gnome-vfs-2.0/

该目录下的 modules 子目录有各种文件的文职 , 让 GNOME 的系统可以知道每一种文件格式要如何打开或浏览 , 而所有的配置都需要有相应的函数库 , 比如 Samba 就需要有 libsmb.so 的函数库存在 .

/etc/gtk/ , /etc/gtk-2.0/

gtk/ 是由 gtk+ 组件所提供的 , 就是 Widget 的一种组件 . 目前 GNOME 下使用 GTK+ , 而 KDE 下使用 QT .

/etc/kde/

KDE Desktop Manager 的主要配置目录 . 比如 KDE 主要的 Display Manager 在 /etc/kde/kdm/ 中 , 其配置文件包含登录的操作 , 登录方式及其他 kdm 的运行细节配置 .

/etc/NetworkManager/

NetworkManager 这个软件的配置文件 , 存放的是一些 AP 的信息 .

/etc/pango/

Pango 是一套协助 GTK+ 将字体描绘出来的函数库 , 不论何种语言或字体 , 都可以通过 pango 描绘出来 .

/etc/rhgb/

系统进入 X Window 之前 , 有一个前置配合的图形接口 , 就是所谓的 rhgb (redhat graphical boot) . 如下图 . 此目录的是因为 rhgb 在启动和关闭的这段时间内 , 会需要一个临时的空间做存取操作 , 如系统和 rhgb 的交互 , 因此将 /etc/rhgb/temp/ 作为此用 . 当rhgb 结束时 , temp 也被清空 , 所以默认的 temp 是空目录 .

/etc/X11/

X Window 的核心配置文件 .
predm : 该文件判断 X Window 用哪一个 Display Manager . 在 /etc/inittab 中的最后一行 , 当系统进入 runlevel 5 时 , 通过这个文件来决定 X Window 的启动 .
xorg.conf : X Window 的主要配置文件 , 该文件定义了 X Window 所须使用的键盘 , 鼠标 , 屏幕等相关的硬件设备 .
xinit/ : client , session , 键盘等都是在该目录下 .

/etc/xdg/

X Window 上的菜单画面出于此 , 所有在 X Window 中使用的菜单文集及分类 都可以在这个目录下做配置 .

其他

/etc/awstats/

高级网页流量统计软件 (Advanced Web Statistics) , 可以针对 streaming , FTP , Mail 等服务做出分析 .

/etc/festival/

将文字翻译成声音的软件 .

/etc/gre.d/

Mozilla  的一种注册机制 .

/etc/libvirt/

这是一套管理虚拟机的工具 , 里面存放的是一些管理配置方面的文件 .

参考自 : 邱世华 Linux 系统架构与目录解析