理解 Linux 配置文件
来源:互联网 发布:淘宝客服招聘在家兼职 编辑:程序博客网 时间:2024/05/17 08:32
分类和使用
本文说明了 Linux 系统的配置文件,在多用户、多任务环境中,配置文件控制用户权限、系统应用程序、守护进程、服务和其它管理任务。这些任务包括管理用户帐号、分配磁盘配额、管理电子邮件和新闻组,以及配置内核参数。本文还根据配置文件的使用和其所影响的服务的情况对目前 Red Hat Linux 系统中的配置文件进行了分类。
介绍
每个 Linux 程序都是一个可执行文件,它含有操作码列表,CPU 将执行这些操作码来完成特定的操作。例如,ls 命令是由 /bin/ls 文件提供的,该文件含有机器指令的列表,在屏幕上显示当前目录中文件的列表时需要使用这些机器指令。 几乎每个程序的行为都可以通过修改其配置文件来按照您的偏好或需要去定制。
Linux 中有没有一个标准的配置文件格式?
一句话,没有。不熟悉 Linux 的用户(一定)会感到沮丧,因为每个配置文件看起来都象是一个要迎接的新挑战。在 Linux 中,每个程序员都可以自由选择他或她喜欢的配置文件格式。可以选择的格式很多,从 /etc/shells 文件(它包含被一个换行符分开的 shell 的列表),到 Apache 的复杂的 /etc/httpd.conf 文件。
什么是系统配置文件?
内核本身也可以看成是一个“程序”。为什么内核需要配置文件?内核需要了解系统中用户和组的列表,进而管理文件权限(即根据权限判定特定用户(UNIX_USERS)是否可以打开某个文件)。注意,这些文件不是明确地由程序读取的,而是由系统库所提供的一个函数读取,并被内核使用。例如,程序需要某个用户的(加密过的)密码时不应该打开 /etc/passwd 文件。相反,程序应该调用系统库的 getpw() 函数。这种函数也被称为系统调用。打开 /etc/passwd 文件和之后查找那个被请求的用户的密码都是由内核(通过系统库)决定的。
除非另行指定,Red Hat Linux 系统中大多数配置文件都在 /etc 目录中。配置文件可以大致分为下面几类:
回页首
访问文件
回页首
引导和登录/注销
init 5
。运行级别 5 表示以图形模式引导系统。/etc/rc.d/rc.local非正式的。可以从 rc、rc.sysinit 或 /etc/inittab 调用。/etc/rc.d/rc.sysinit通常是所有运行级别的第一个脚本。/etc/rc.d/rc/rcX.d从 rc 运行的脚本( X 表示 1 到 5 之间的任意数字)。这些目录是特定“运行级别”的目录。 当系统启动时,它会识别要启动的运行级别,然后调用该运行级别的特定目录中存在的所有启动脚本。例如,系统启动时通常会在引导消息之后显示“entering run-level 3”的消息;这意味着 /etc/rc.d/rc3.d/ 目录中的所有初始化脚本都将被调用。回页首
文件系统
内核提供了一个接口,用来显示一些它的数据结构,这些数据结构对于决定诸如使用的中断、初始化的设备和内存统计信息之类的系统参数可能很有用。这个接口是作为一个独立但虚拟的文件系统提供的,称为 /proc 文件系统。很多系统实用程序都使用这个文件系统中存在的值来显示系统统计信息。例如,/proc/modules 文件列举系统中当前加载的模块。lsmod 命令读取此信息,然后将其以人们可以看懂的格式显示出来。 下面表格中指定的 mtab 文件以同样的方式读取包含当前安装的文件系统的 /proc/mount 文件。
mount -a
命令,该命令负责安装 fstab 的倒数第二列中带有“1”标记的每一个文件系统。/etc/mtools.confDOS 类型的文件系统上所有操作(创建目录、复制、格式化等等)的配置。回页首
系统管理
user: * : group-id : project1
/etc/shadow包含加密后的用户帐号密码信息,还可以包括密码时效信息。包括的字段有:
- 登录名
- 加密后的密码
- 从 1970 年 1 月 1 日到密码最后一次被更改的天数
- 距密码可以更改之前的天数
- 距密码必须更改之前的天数
- 密码到期前用户被警告的天数
- 密码到期后帐户被禁用的天数
- 从 1970 年 1 月 1 日到帐号被禁用的天数
回页首
联网
回页首
系统命令
系统命令要独占地控制系统,并让一切正常工作。所有如 login(完成控制台用户身份验证阶段)或 bash(提供用户和计算机之间交互)之类的程序都是系统命令。因此,和它们有关的文件也特别重要。这一类别中有下列令用户和管理员感兴趣的文件。
回页首
守护进程
守护进程是一种运行在非交互模式下的程序。一般来说,守护进程任务是和联网区域有关的:它们等待连接,以便通过连接提供服务。Linux 可以使用从 Web 服务器到 ftp 服务器的很多守护进程。
回页首
用户程序
在 Linux(和一般的 UNIX)中,有无数的“用户”程序。最常见的一种用户程序配置文件是 /etc/lynx.cfg。这是著名的文本浏览器 lynx 的配置文件。通过这个文件,您可以定义代理服务器、要使用的字符集等等。 下面的代码样本展示了 lynx.cfg 文件的一部分,修改这部分代码可以改变 Linux 系统的代理服务器设置。缺省情况下,这些设置适用于在各自的 shell 中运行 lynx 的所有用户,除非某个用户通过指定 --cfg = "mylynx.cfg"
重设了缺省的配置文件。
/etc/lynx.cfg 中的代理服务器设置
.h1 proxy.h2 HTTP_PROXY.h2 HTTPS_PROXY.h2 FTP_PROXY.h2 GOPHER_PROXY.h2 NEWS_PROXY.h2 NNTP_PROXY# Lynx version 2.2 and beyond supports the use of proxy servers that can act as# firewall gateways and caching servers. They are preferable to the older# gateway servers. Each protocol used by Lynx can be mapped separately using# PROTOCOL_proxy environment variables (see Lynx Users Guide). If you have # not set them externally, you can set them at run time via this configuration file.# They will not override external settings. The no_proxy variable can be used# to inhibit proxying to selected regions of the Web (see below). Note that on# VMS these proxy variables are set as process logicals rather than symbols, to# preserve lowercasing, and will outlive the Lynx image.#.ex 15http_proxy:http://proxy3.in.ibm.com:80/ftp_proxy:http://proxy3.in.ibm.com:80/#http_proxy:http://penguin.in.ibm.com:8080#ftp_proxy:http://penguin.in.ibm.com:8080/.h2 NO_PROXY# The no_proxy variable can be a comma-separated list of strings defining# no-proxy zones in the DNS domain name space. If a tail substring of the# domain-path for a host matches one of these strings, transactions with that# node will not be proxied..exno_proxy:demiurge.in.ibm.com, demiurge
回页首
更改配置文件
在更改配置文件时,如果程序不是由系统管理员或内核控制的,就要确保重新启动过使用该配置的程序。普通用户通常没有启动或停止系统程序和/或守护进程的权限。
内核
更改内核中的配置文件会立即影响到系统。例如,更改 passwd 文件以增加用户将立即使该用户变为可用。而且任何 Linux 系统的 /proc/sys 目录中都有一些内核可调参数。只有超级用户可以得到对所有这些文件的写访问权力;其它用户只有只读访问权力。此目录中文件的分类的方式和 Linux 内核源代码的分类方式一样。此目录中的每个文件都代表一个内核数据结构,这些数据结构可以被动态地修改,从而改变系统性能。
注意:在更改其中任何文件的任何值之前,您应该确保自己全面了解该文件,以避免对系统造成不可修复的损害。
/proc/sys/kernel/ 目录中的文件
守护进程和系统程序
守护进程是永远运行在后台的程序,它默默地执行自己的任务。常见的守护进程有 in.ftpd(ftp 服务器守护进程)、in.telnetd(telnet 服务器守护进程)和 syslogd(系统日志记录守护进程)。 有些守护进程在运行时会严密监视配置文件,在配置文件改变时就会自动重新加载它。但是大多数守护进程并不会自动重新加载配置文件。我们需要以某种方式“告诉”这些守护进程配置文件已经被发生了改变并应该重新加载。可以通过使用服务命令重新启动服务来达到这个目的(在 Red Hat Linux 系统上)。
例如,如果我们更改了网络配置,就需要发出: service network restart
。
注意:这些服务最常见的是 /etc/rc.d/init.d/* 目录中存在的脚本,在系统被引导时由 init 启动。所以,您也可以执行如下操作来重新启动服务: /etc/rc.d/init.d/<script-for-the-service> start | stop | status
start、stop 和 status 是这些脚本接受的输入值,用来执行操作。
用户程序
用户或系统程序在每次启动时都会读取其配置文件。尽管如此,请记住,有些系统程序在计算机打开时情况不一样,它们的行为依赖于在 /etc/ 中的配置文件中读到的内容。所以,用户程序第一次启动时将从 /etc/ 目录中存在的文件读取缺省配置。然后,用户可以通过使用 rc 和 .(点)文件来定制程序,正如下面一节所示。
回页首
用户配置文件:.(点)文件和 rc 文件
我们已经看到怎样容易地配置程序。但是如果有的人不喜欢在 /etc/ 中配置程序的方式该怎么办呢?“普通”用户不能简单地进入 /etc 然后更改配置文件;从文件系统的角度来看,配置文件的所有者是 root 用户!这就是大多数用户程序都定义两个配置文件的原因:第一个是“系统”级别的,位于 /etc/;另一个属于用户“专用”,可以在他或她的主目录中找到。
例如,我在我的系统中安装了非常有用的 wget 实用程序。/etc/ 中有一个 /etc/wgetrc 文件。在我的主目录中,有一个名为 .wgetrc 的文件,它描述了我定制的配置(只有在我,也就是用户运行 wget 命令时,才会加载这个配置文件)。其它用户在他们自己的主目录(/home/other)中也可以有 .wgetrc 文件;当然,只有这些用户运行 wget 命令时,才会读取这个文件。换句话说,/etc/wgetrc 文件为 wget 提供了“缺省”值,而 /home/xxx/.wgetrc 文件列举了某个用户的“定制项”。重要的是这只是“一般规则”,并非所有情况都如此。例如,一个象 pine 一样的程序,在 /etc/ 中并没有任何文件,它只在用户主目录中有一个定制配置文件,名为 .pinerc。其它程序可能只有 /etc/ 中的缺省配置文件,而且可能不允许用户“定制”这些配置文件(/etc 目录中只有少数 config. 文件是这种情况)。
通常使用的 rc 和 .(点)文件
示例:set ai sm ruler
在此文件中写入上面一行会让 vi 设置自动缩进、匹配括号、显示行号和行-列这几个选项。~/.vimrc缺省的“Vim”配置文件。和 .exrc 一样。~/.gtkrcGNOME 工具包(GNOME Toolkit)。~/.kdercKDE 配置。~/.netrcftp 缺省登录名和密码。~/.rhosts由 r- 工具(如 rsh、rlogin 等等)使用。因为冒充主机很容易,所以安全性非常低。
- 必须由用户(~/ 的所有者)或超级用户拥有。
- 列出一些主机,用户可以从这些主机访问该帐号。
- 如果是符号链接则被忽略。
示例:exec /usr/sbin/startkde
如果该文件中存在上面这行内容,那么在从这个帐号发出 startx 命令时,这一行就会启动“KDE 视窗管理器”(KDE Window Manager)。~/.xmodmaprc此文件被传送到 xmodmap 程序,而且可以被命名为任何文件(例如 ~/.Xmodmap 和 ~/.keymap.km)。~/.xserverrc如果 xinit 可以找到要执行的 X,xinit 就会将该文件作为 X 服务器运行。~/News/Sent-Message-IDsgnus 的缺省邮件历史文件。~/.Xauthority由 xdm 程序读和写,以处理权限。请参阅 X、xdm 和 xauth 联机帮助页。~/.Xdefaults, ~/.Xdefaults-hostname在主机 hostname 的启动过程中由 X 应用程序读取。如果找不到 -hostname 文件,则查找 .Xdefaults 文件。~/.Xmodmap指向 .xmodmaprc;Red Hat 有使用这个名称的 .xinitrc 文件。~/.Xresources通常是传送到 xrdb 以加载 X 资源数据库的文件的名称,旨在避免应用程序需要读取一个很长的 .Xdefaults 文件这样的情况。(有些情况曾经使用了 ~/.Xres。)~/mbox用户的旧邮件。
- 理解 Linux 配置文件 [转载]
- 理解 Linux 配置文件
- 理解 Linux 配置文件
- 理解 Linux 配置文件
- 理解 Linux 配置文件
- 理解 Linux 配置文件
- 理解 Linux 配置文件
- 理解 Linux 配置文件
- 理解Linux配置文件
- 理解Linux配置文件
- 理解 Linux 配置文件
- 理解 Linux 配置文件
- 理解Linux配置文件
- 理解 Linux 配置文件
- 理解 Linux 配置文件
- 理解 Linux 配置文件
- 理解Linux配置文件
- 理解linux配置文件
- 苹果iso开发:[10]CGContextSetLineWidth
- cJSON
- 堆栈初始化,POP,PUSH()
- swing生成图片之图片生成及显示
- MFC 多线程总结 .
- 理解 Linux 配置文件
- ArcGIS Engine断开其他ArcSDE用户连接的解决方案
- Delphi ControlBar Coolbar的使用
- iOS_25_彩票_控制器的view的适配
- Linux那些事儿之我是Block层(2)注册一个块设备驱动
- Viewpager:实现android初次登陆浏览应用界面效果
- 打开iptable端口
- GPIO的上拉下拉功能说明
- andriod 4.0以上版本不调用onConfigrationChange方法的解决办法