LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1975|回复: 1

认证第六章部份(初稿)

[复制链接]
发表于 2003-1-18 16:31:20 | 显示全部楼层 |阅读模式
第六章:高级用户管理
6.01      设置和管理磁盘限额
6.02 系统初始化脚本
6.03 内核重编译与安装
6.04 可插入认证模块
6.05 cron系统
6.06 系统级别SHELL配置文件----Bash shells
  在这一章,你会学到如何基于每个用户或每个组来创建和应用关于磁盘利用管理的策略,接着我们会详细探讨linux启动的每一个步骤.一旦你明白linux是如何启动工作的,你就能够定制进程来使能你所需的服务,更重要的是你可以关闭你不需要的服务.
  接着,你会学习如何更新,配置,编译和安装你自己定制的内核,你会明白monolithic单一的内核和模块化内核的区别,以及它们每一种风格的好处和缺点,你将会看到三种不同的定制和优化内核(尽可能小而能运行)的办法,同时也会学到建议你配置和安装内核的技术.
  这一章节也会讨论有关可插入认证模块(红帽子提供的一个一致性的功能强在的认证包用于控制许多服务的访问),最后,你会学习如何依照用户会话(你或他们)的需要而设置系统不同的Shell配置脚本和如何安排周期性执行的作业.
6.01   
  设置和管理磁盘限额
  磁盘限额是用于限制一个用户或一个组的使用磁盘空间的能力,这样阻止了一个小的用户组垄断了整个磁盘容量和潜在地妨妨碍了其他用户甚至于整个系统.磁盘限额通常用于ISP,WEB主机公司,FTP站点或者公司文件服务器来确保系统的可用性.用户可能能过上传文件服务器来填充文件系统来危及系统的安全(默认是不会阻止这些发生的),一旦文件系统满了,其他用户会有效地被阻止上传到磁盘(拒绝服务),如果填充的文件系统是根文件系统(/),这样会引起系统的不稳定甚至崩溃.
  有两种方法来设置管理磁盘的消耗量,一是限制每一个用户拥有inodes节点的数量,你也可以限制每一个用户可用的磁盘块数量,Linux使用inode节点在文件系统上标识一个文件(一个文件就有一个inode节点),通过限制用户的inode节点数可以防止用户创建过量的文件,而限制用户可拥有的最多磁盘块就限制用户的磁盘空间(这与文件数量无关,因为磁盘块的大小是固定的).
  磁盘限额可以通过命令行或者linuxconf工具来配置,我们先讨论命令行下磁盘限额的实现,再讨论在linuxconf下的实现.
  注意:磁盘限额只能在EXT2文件系统中得到支持.
  内核配置
  系统运行时内核的维护会消耗资源,因些在你使用磁盘限额前要在内核中设置支持限额,对于red hat 默认是使能磁盘限额的,如果没有,你可以下载新的内核或者安装内核源代码,重新编译来使能磁盘限额支持,要知道更多有关信息,看下面的内核安装与编译.
To verify quota support in any custom-built kernels you may have, issue the command:
  要校对任何定制的内核是否支持磁盘限额,使用下面的命令:
  # grep CONFIG_QUOTA /usr/src/linux/.config
  你会看到输出的行类似于:
  CONFIG_QUOTA=y
  如果你看到的是
  CONFIG_QUOTA=n
  那么你的内核并不支持磁盘限额,如果没有输出,那么你并没有安装一个可定制内核源代码树,这并不是一个问题,因为Red Hat 7.x内核并不包括磁盘限额支持的,而默认内核是支持磁盘限额的.
  如果你有一个定制的内核.可以使用make menuconfig或者make xconfig命令来使能磁盘限额,这个选项是定位于文件系统章节,简单地打开磁盘限额使能,重新编译内核和安装就可以要完成这个工作,你需要重新启动计算机(用新内核),
  安装quota 的RPM软件包
  首先你要检查quota软件包是否已安装在系统上,可以用下面的命令来完成
[root@notebook /]# rpm -qa | grep quota
quota-2.00pre3-7
这说明系统已安装了quota软件包
要安装quotq软件包有很多种方法,最直接的方法会是挂载Red Hat CD-ROM光盘,然后转到相应的目录
mount /dev/cdrom
cd /mnt/cdrom/RedHat/RPMS
用这个命令来安装软件包
rpm -Uvh quota-2.00pre3-7
这会告诉RPM管理器来-U(update更新)或者(pv 安装如果并没有安装更关版本的quota软件包),-v表明是一个详细的模式,-h表明是用一系列的#号来表明安装的进度,你也可以通过FTP或者HTTP来获得软件包,也可以使用Red Hat 7.x带有的Gnome rpm中点击Web Find来安装,这样就会通过internet检查quota软件包并安装.
获得软件包的最好方法是发布的CD光盘,因为光盘上的软件是经red hat 检测发布的,可以与当前系统无缝的接合.
安装完这个包后,你可以使用下面的命令和相关的手册页
quotaon /fs         在相应的/fs文件系统上使能磁盘限额
quotaoff  关闭磁盘限额功能
edquota name 编辑用户名的磁盘限额配置
quota 允许用户查看他们当前的资源消耗和限制
repquota产生一个有关所有用户磁盘消耗的报告
quotacheck 扫描一个文件系统中磁盘限额的用量,初始化磁盘限额数据库
你可以查找有关它们的详细信息,只要输入下面相关的命令
如# info program
或者
#man program
来查看程序的手册页
/etc/rc.d/rc.sysinit 磁盘限额处理
/etc/rc.d/init.d/rc.sysinit脚本,正如在第四章所说的,是用来在linux启动时提供系统初始化服务的,脚本内包括了使能磁盘限额的命令,特别的是,这个脚本同时运行了quotacheck (确保磁盘消耗利用记录是正确的)和quotaon (在/etc/fstab文件中指明的文件系统中使能磁盘限额).
你也可以手动运行quotaon和quotaoff,通常这是不必要的, Red Hat 7.x's /etc/rc.d/init.d/rc.sysinit确保在系统启动时使能磁盘限额,当系统关闭时, Red Hat顺序执行卸载所有文件系统,当那些使能磁盘限额的文件系统卸载时,内核中有关系统中的用户,组,文件,inode节点的信息会写回到这个文件系统中去.
修改/etc/fstab
/etc/fstab文件是用来告诉linux有关你要在启动时加载的文件系统,而在这个文件中options这一列是用来设置有关文件系统加载时设置相关选项的,这些选项是用于在加载文件系统时传递给mount命令的,要在一个文件系统中使能磁盘限额,你要更新/etc/fstab文件中options(选项)这一条目,这样来提示你想要对用户或/和组进行磁盘限额,只能对一个文件系统进行磁盘限额,而不是一个目录,切记!
下面是一个示例文件
Device     Mount point  Filesys Options   dump Fsck
LABEL=/    /            ext2    defaults        1 1
/dev/cdrom /mnt/cdrom   iso9660 noauto,owner,ro 0 0
/dev/fd0   /mnt/floppy  auto    noauto,owner    0 0
none       /proc        proc    defaults        0 0
none       /dev/pts     devpts  gid=5,mode=620  0 0
/dev/hda5  swap         swap    defaults        0 0
/dev/hda1  /win         vfat    uid=500,gid=500,owner,rw  0 0
/dev/hda6  /home        ext2    defaults  0 0
在这个例子中.我们只能在根文件系统和/home文件系统中使能磁盘限额(只有它们是ext2文件系统),要在文件系统使能用户磁盘限额跟踪,在选项中添加关键词usrquota, 要在文件系统使能组磁盘限额跟踪,在选项中添加关键词grpquota,,你可以使用Vi或者其他你喜欢的编辑器来更新/etc/fstab文件.
在下面的示例中,我们在根文件系统(/)使能了用户和组磁盘限额
Device     Mount point  Filesys Options     dump Fsck
LABEL=/    /          ext2    exec,dev,suid,rw,usrquota,grpquota        1 1
/dev/cdrom /mnt/cdrom   iso9660 noauto,owner,ro 0 0
/dev/fd0   /mnt/floppy  auto    noauto,owner    0 0
none       /proc        proc    defaults        0 0
none       /dev/pts     devpts  gid=5,mode=620  0 0
/dev/hda5  swap         swap    defaults        0 0
/dev/hda1  /win         vfat    uid=500,gid=500,owner,rw  0 0
/dev/hda6  /home        ext2    defaults  0 0
如果你手工编辑/etc/fstab文件,你要确保你的编辑没有覆盖到下一行,如果覆盖到了下一行,那么你的/etc/fstab将会是非法的,下一次启动不能完满成功.
Linuxconf能够为你更新/etc/fstab文件,你只要进入file system | Access local drive菜单和编辑你想使能磁盘限额的EXT2分区,编辑时,有一个检查框选项来对用户和组磁盘限额进行编辑,选上这两个选项和激活更改,那么Linuxconf会为你编辑/etc/fstab文件.
首先你要选择一个是EXT2文件系统的分区,如下图6-1所示

要想更改一个文件系统的设置,双击你要更改的文件系统,会出现图6-2所示

现在,点击options选项,你就可以更改文件系统选项了,见图6-3

注意你要滑动到选项列表的底端才能看到用户和组的选项
最后,选上 User Quota Enabled和 Group Quota Enabled 这两个选项,接着是Accept 更改和关闭这个对话框, 这样就会返回到inuxconf的主菜单.
建立/quota.user和quota.group文件
这时,你要打开一个终端窗口(作为一个超级用户),同时创建两个文件用于在根文件系统中保留有关磁盘限额额信息,输入命令如下:
# touch /quota.user
# touch /quota.group
# chmod 0600 /quota.user /quota.group
如果不运行这三个命令,那么你将不能完成你的磁盘限额配置.
预览你的更改
你可以通过file|Act/changes选项来预览你的更改,下图6-4是linuxconf为我们做的一个示例:

图6-4提示了有潜在的问题,丢失了/quota.usre和/quota.group两个文件,如果我们不象先前所说的手动创建了这些文件,那么我们就不能启动磁盘限额系统,尽管你选择了Do It按钮,哪果你忘记了创建这两个文件,你会看到象上图6-4类似的图示,选择Do Nothing按钮, 打开一个终端窗口(作为一个超级用户),同时创建这两个文件.
注意linuxconf是十分关注即将要运行的命令的,这个优势是你可以从linuxconf中学习和执行下次要想实现磁盘限额的命令
一旦你准备好,选择Do It,linuxconf会告诉我们重新以新的文件系统选项来加载根文件系统,在这里必须选择Yes否则磁盘限额就不会使能.由于我们是第一次使能磁盘限额,linuxconf要运行quotacheck来获得有关用户和组的有关磁盘空间的使用,.linuxconf会要求有权限来执行,如下图6-5所示:

刚才我们使能了根文件系统的磁盘限额,在这里,我们要指定那些用户进行磁盘限额,在下节我们会看到如何实现用户的磁盘限额.
升级者要注意:
在版本7.1中更改了管理磁盘限额的方法,它现在使用文件aquota.usert和aquota.group来代替quota.user和quota.group这两个文件.如果你使用的是Red Hat7.0或更前的版本,或者你升级到了7.1版本,你要运行命令convertquota来更新这些文件.你知道在这种情况下,quotaon会失败并提示找不到文件aquota.usert和aquota.group.我们可以使用命令来更新我们的磁盘限额文件
# convertquota -u -g /
这样我们就可以使能磁盘限额功能了
# quotaon -u -g /
手工管理磁盘限额
如果你没有选择使用Linuxconf工具来管理你的磁盘限额,你要手工创建文件/quota.user和/quota.groupIf 文件,要创建这两个文件,在你的根文件系统上创建两个空的文件,同时为它们建立安全权限,只有超级用户才能读写这些文件.示例如下:
# touch /quota.user /quota.group     # RedHat 7.0 或更前的版本
# chmod 600 /quota.user /quota.group
或者
# touch /aquota.user /aquota.group    # RedHat 7.1版本
# chmod 600 /aquota.user /aquota.group
This step will be done automatically for you when you run quotacheck -avug. The options for quotacheck are:
当你运行quotacheck– avug命令时,这一步会自动运行,有关quotacheck参数有:
-a:检查/etc/mnttab文件来查看所有使能磁盘限额的文件系统
-v:执行一个详细模式的扫描,如果没有这个参数就是一个简单模式的扫描
-u:为用户磁盘限额扫描
-g:为组磁盘限额扫描
这会检查有关当前所有用户,组和分区的磁盘限额信息它会保存在进行磁盘限额的分区的根目录上,如果你没有手动创建这些文件,你必须现在创建它并给予正确的权限,但你为了安全应该再次检查一下
# ls -l /quota.usr /quota.group   # Red Hat 7.0或更前的版本
或者
# ls -l /aquota.user /aquota.group  # for Red Hat 7.1
如果你用linuxconf 来使能磁盘限额,当你激活更改时会提示你是否运行quotacheck,你要选Yes来执行它。
无论你如何创建文件,你要运行quotacheck来收集有关你的用户的初始化信息,这可以由重新启动或者运行quotacheck来完成,例如,要在根文件系统上初始化你的磁盘限额,运行
quotacheck /
使用edquota来实现磁盘限额
要指定磁盘限额,你要运行edquota,edquota会用VI编辑器来编辑quota.user或者quota.group文件,你可以指定你自己想要的编辑器,你只要修改$EDITOR变量(如EDITOR=/path/th/new/editor,export EDITOr),在我们的示例中,假设有一个用户叫craig,我们想限制它使用的磁盘空间,我们使用下面的命令来编辑它的磁盘限额记录:
|# edquota -u craig
这会运行VI并显示如下信息:
Edit block and inode quota for user craig:
Device /dev/hda2 (/):
Used 60KB, limits: soft=0 hard=0
Used 15 inodes, limits: soft=0 hard=0
如果你运行这个命令但只看到第一行,那么你可能是在它之前忘记运行quotacheck命令了
在这个例子中,我们对inodes节点的文件的软限制和硬限制均设置为0,这是默认的设置,即没有限制,尽用户所需要用的节点数或磁盘块数。我们看到现在用户craig 在这个分区用了60KB的磁盘空间和15个文件(inode节点),我们想设置限制craig只用20MB的磁盘空间,首先,我们要对软限制和硬限制有一个说明:
软限制是一个用户可以在这个分区使用的最大数量的空间,如果你设置了,那它就会作为一个边界的一个阀值,接着用户会通知他违反了磁盘限额,当然你设置了宽限期,你也要设置硬限制。宽限期是允许用户在违反磁盘限额时存在的天数,超过时间后用户必须保留在软限制下。
硬限制:只有在使用了宽限期时才用到硬限制,它绝对限制一个用户的使用磁盘空间的量,任何想使用超过个限制的都会被制止,如果没有使用宽限期,那么软限制就是用户可用的绝对空间量
在我们的示例中,我们会设置一个18MB软限制和一个20MB的硬限制,同时我们也给用户craig一个七天的宽限期来让他清理他的资源.
Edit block and inode quota for user craig:
Device /dev/hda2 (/):
Used 60KB, limits: soft=18000 hard=20000
Used 15 inodes, limits: soft=0 hard=0
注意我们并没有限制用户craig使用节点数,即他可以用任意多的文件(不要在空间上超出限制就行了)
现在我们必须保存这个文件,要设置宽限期,我们使用命令edquota,同时也提供了参数-t
# edquota -t
vi 会装载文件同时你会看到类似下面的东西:
Edit grace times for user quota:
Device /dev/hda2 (/):
Block grace: 7 days Inode grace: 7 days
现在,LINUX提供给我们一个默认为七天的同时包括节点数和磁盘块的使用限制.因为一个用户可能会资源使用上超出他的软限制,如果这样,七天后,他的使用Inode节点或磁盘块请求会被拒绝,我们的用户Craig会不得不删除一些文件来确保他的磁盘块点用量低于18MB,这样它才可以创建新的文件或者对现有的文件的追加.
要激活我们的宽限期,我们要保存这个文件.
在磁盘限额中有一个值得注意的地方是,当你用edquota来指定宽限期时,你不能在数字和单元间使用空格,因此,条目”7 days”不会工作但是”7days”可以有效地工作,如果你看到类似下面的信息:
Can't parse grace period time 7
你要知道你忽略了空格,最奇怪的是, Red Hat 7.1在你使用edquota –t时会插入空格.
Edquota允许你用一个已经配置了的用户限额作为新用户的模板,要使用这个特性,你要输入参数 –p < configured_user>
# edquota -u -p craig bob sue
这一命令并不会提供什么输出,但它会使用到Craig的设置并应用到用户bob和sue身上,你可以用这个模板来应用到尽可多的用户身上.
你也可以根据基于组来设置磁盘限额,要实现这个目标,你只要简单运行edquota –g <groupname>就可以了,注意组名<groupname>是一个在文件/etc/group中的有效的组名.
# edquota -g games
对组games进行磁盘块和inode节点限制
Device /dev/hda2 (/):
Used 0KB, limits: soft=0 hard=0
Used 0 inodes, limits: soft=0 hard=0
要使用linuxconf,选择User accounts | Normal | User account,同时选择一个用户,在编辑用户信息时,有一个选项是磁盘限额的,你可以在这个文件中添加软限制和硬限制.
First, select the user you wish to add a quota for; you’ll see the screen shown in Figure 6-6. Next, you will need to choose the Disk Quotas tab to see the screen shown in Figure 6-7.
首先,选择一个要进行磁盘限额的用户,如下图6-6,并在图6-7中的磁盘限额标签中进行设置

图6-7

选择一个要进行磁盘限额的用户,在这里是用户Craig,点击它的帐号记录,这时带出一个用户信息标签.
你现在可以指定磁盘和文件的软限制和硬限制了,同时你也可以指定用户的宽限期,如果没有指定宽限期,那么硬限制将会被忽略,当你设置完后,点击Accept,当你退出linuxconf时,它会问你是否激活更改,一旦这些更改被激活,它们会立即生效.
创建默认的磁盘限额配置
You can set up system-wide defaults for your quotas, as shown in Figure 6-8. This is a nice feature that will save you some time if you have a system-wide policy. The easiest way to do this is with linuxconf. You need to access the Quota Defaults menu through File Systems | Set Quota Defaults. In this menu, you can add both soft and hard limits, as well as grace periods
你可以为你的磁盘限额设置系统级别的默认配置,如图6-8,如果你一个系统级别的策略的话那么这个特性会节省你不少时间.做这些最简单的办法是使用linuxconf,你要在file systems | set quota defaults|在这里你可设置软\硬限制和宽限期.

在这里,上图显示用户磁盘空间和文件占用,我们还可以设置组默认值,而关于宽限期的格式为日:小时:分钟:秒,为了避免过度花费,只要简单地设置日期就行了.
当你个修改这些设置时,所有先前的设置会由系统默认的设置所取代,最好你先设置好系统默认值,最后才根据个别用户需要个别设置.
磁盘限额报告
经常查看谁使用最多磁盘空间是一个好习惯,你可以根据用户,组或者每一个分区上的任何人来产生报告,要看一个所有磁盘限额信息的报告,运行repquota –a命令:



# repquota -a
*** Report for user quotas on device /dev/hda2 (/)
Block grace time: 7 days; Inode grace time: 7 days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --      24       0       0              2     0     0      
craig     --      60       0       0             15     0     0      

你也可以用repquota来生成你有关指定分区上所有用户的报告,使用命令如下:
|# repquota –u
要想看某个用户的磁盘限额信息,使用下面的命令:
# quota -uv craig
Disk quotas for user craig(502):
Filesystem  blocks  quota  limit   grace   files   quota   limit  grace
/dev/hda2      60      0     0              15       0      0        
一个用户用quota只能查看他自己的使用情况,但ROOT用户可以用- u选项来查看其他用户的情况.
在NFS文件系统上进行磁盘限额
在NFS文件系统上进行磁盘限额基本上是一样的,NFS将远程用户化为本地用户,你用NFSD配置来指定如何进行这些转化工作,参考第七章节有关NFS驱动程序和信息,你要为你计划作映射外边的用户进行磁盘限额,因此,如果你创建了一个用户nfsuser,你将所有远程请求化为这个用户的请求,那么你要为这个用户在加载的分区上进行磁盘限制,这样会限制所有进入的NFS用户的磁盘消耗.
6.02
系统初始化脚本
Red Hat 7.x在系统启动上和运行状态管理上跟从标准的unix 系统VR4(system 5 release 4)方法,init守护进程作为第一个进程启动(进程ID为1),init读取它的启动配置文件/etc/inittab,基于这个配置文件继续它的初始化进程.下面是red hat 7.1的一个/etc/inittab示例文件.
#
# inittab       This file describes how the INIT process should set up
#               the system in a certain run-level.
...

# Default runlevel. The runlevels used by RHS are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, no NFS (The same as 3, if you don't have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:

# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6

# Things to run in every runlevel.
ud:nce:/sbin/update

# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now

# When our UPS tells us power has failed, assume we have a few minutes
  
pf::powerfail:/sbin/shutdown -f -h +2 "ower Failure; System Shut Down"

# If power was restored before the shutdown kicked in, cancel it.
pr:12345:powerokwait:/sbin/shutdown -c "ower Restored"

# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

# Run xdm in runlevel 5
# xdm is now a separate service
x:5:respawn:/etc/X11/prefdm -nodaemon
/etc/rc.d/rc.sysinit脚本 (在第四章中有描述)中会运行一些其他脚本,根据需要,它会运行/etc/rc.serial(用于初始化任何串行接口) ,而setserial命令用于用指定的设置来初始化端口(代替/etc/rc.serial中的值),这个文件只在旧版本中(6.X)存在,而在新版本7.X中不再出现.
/etc/rc.d/rc.local文件还在,它是在其他系统脚本运行完后执行本地系统初始化(在你登录系统前),作为一个普通配置文件,它的作用受到批评,当前,它唯一提供的功能是创建一个/etc/issue文件用于标识你当前使用的内核和Red Hat 版本(就是在你登录前的头部显示的内容,无论是在终端还是用TELNET/SSH登录).最后,它复制/etc/issue来产生一个叫/etc/issue.net的文件,如果你想显示不同的信息,你可以修改/etc/rc.d/rc.local,你可以在/etc/issue和/etc/issue.net中用你想要的内容来代替内核版本等信息.
也有一个脚本/etc/rc.d/rc,它是用来管理运行级别的更改的,不能编辑.
You should consider modifying the content of both the /etc/issue file and the /etc/issue.net file for security reasons. There are two issues:
基于安全理由,你应该考虑修改/etc/issue和/etc/issue.net这两个文件,这里有两个值得注意的问题.
大部份用户并不要求知道当前使用的发布版和内核版本,而邪恶的入侵者则关注这些信息,因为这让他们迅速测试你的系统的弱点.基于这点原因,你应该想修改/etc/issue.net来提供虚假的情报误导入侵者.通过修改内核版本或者/和linux发布商.
??????????????????????????????你的系统用于私人用途,
/etc/rc.d, /etc/rc0.d ... /etc/rc6.d
Linux, 象许多商业 UNIX一样,通过定制的运行级别来管理它提供的服务.运行级别命令runlevel可以用来查询系统当前和先前的运行级别.
# runlevel
N 3
第一个字母(N)说明没有先前的运行级别,这是因为我们直接启动到运行级别3中,而数字3则说明了我们当前的运行级别,捎带一句的是,Unix命令who –r命令在Linux下并不工作.
在文件/etc/inittab里./etc/rc.d/rc脚本会被调用,而运行级别则作为一个参数传递,下面是摘录自我们的文件/etc/inittab:
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
要想知道更多有关/etc/inittab是如何工作的.看第四章.在这里你可以看每一个运行级别.而/etc/rc.d/rc会被调用同时传递运行级别这一参数.
/etc/rc.d/rc 通过更改到特定的适合于该运行级别的目录来管理运行级别的更改.一旦进入了正确的目录,它会运行一系列的脚本来停止一系列不必要的服务和启动需要的服务.这里有独特的运行级别目录对应于运行级别0, 1, 2, 3, 和 5.它们分别称之为/etc/rc.d/rc0.d, /etc/rc.d/rc1.d, /etc/rc.d/rc2.d, /etc/rc.d/rc3.d, 和/etc/rc.d/rc5.d,
通常,你在这些目录看到是符号连接,它们指向于/etc/rc.d/init.d目录下的脚本.这些脚本通常以S或者K开头,以两个数字来结尾.以S开头的脚本是一个启动脚本,S表示这些脚本在这个运行级别是需要且是必须运行的;但以K开关的脚本是要关闭的脚本,表明这些脚本并不适合在这个运行级别上运行.
也有在一个字母后接两个数字再加上服务名的脚本,这两个数字序号是用来确保脚本以一定的顺序来运行的,由于Linux(象UNIX)分类它的文件名,使用数字来确保我们的脚本运行在可见的方式.就是,它们会象ls程序报告的顺序来运行.
这里是/etc/rc3.d目录的一个示例:
K01kdcrotate  K25sshd       K92ipchains S20random  S90crond
K01pppoe      K30sendmail   K96irda     S25netfs      S90xfs
K14alsasound  K34yppasswdd  S05kudzu    S40atd        S91smb
K15httpd      K45arpwatch   S08iptables S45pcmcia     S95anacron
K20nfs        K45named      S10network  S50xinetd     S97rhnsd
K20rstatd     K60lpd        S12syslog   S56rawdevices S99linuxconf
K20rusersd    K65identd     S13portmap  S75keytable   S99local
K20rwalld     K83ypbind     S14nfslock  S77Win4Lin
K20rwhod      K84ypserv     S16apmd     S85gpm
这里只有符号连接指向真实的程序,真实的脚本却在/etc/rc.d/init.d目录里,如果我们仔细查看这些文件,会发现它们都是指向于目录/etc/rc.d/init.d的.
# ls -l S85gpm
lrwxrwxrwx   1 root root   13 May 15 15:05 S85gpm-> ../init.d/gpm
# ls -lL S90crond
-rwxr-xr-x    1 root     root         1316 Feb 12  2001 S90crond
发表于 2003-1-18 18:05:16 | 显示全部楼层

谢谢!

我只能说谢谢!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表