连载:六脉神剑捍卫企业 Linux系统(二)

时间:2007-05-21 06:17:41  来源:赛迪网  作者:茫然的风 

这显示出nfslock命令过程也正被调用在级别3和4上,这正是我们应该用相同的机制禁用的地方。你也可以运行同样的命令来确认cups和portmap命令过程所被调用的运行级别。

如果你也运行着一个象Red Hat Enterprise Linux一样的、提供一个运行级别配置工具的系统的话,你可能也要用这种工具来禁用系统的某些服务与不同的运行级别相关联的企图。既然这样,你就可以运行这个命令以禁用在所有运行级别上的指定服务。如下例所示:

# chkconfig nfslock off
# chkconfig cups off
# chkconfig portmap off

其它Linux发行版本,如Ubuntu和Debian,也提供了类似的工具如BootUp Manager(BUM)

中冲剑─修改系统启动行为

注意:

为了安全的原因,本节使用ntpd这个网络时间协议进程,作为一个你想定期运行但并非持续运行的过程。一些网络环境需要所有参与的系统保持绝对的同步。如果是那样的话,本节这个例子也许就不太恰当了,但仍可以阐明怎样用可靠的预定过程来替换一个进程。

正如前面所提到的那样,我们需要修改网络时间协议进程(ntpd)的行为,使你在启动系统后,它只能执行一次查询,而不能连续不断地进行,以后保持日常的同步就可以了。为了完成这点,我们可以修改/etc/init.d/ntpd命令过程,也可以修改任何关联的数据文件,还可以改变系统调用ntpd进程的方法。我们将执行后者,这稍微灵活一些。

首先,按照上一节所阐述的方法从所有运行级别上移除ntpd命令。然后,编辑文件/etc/rc.local,这是启动过程最后一步的命令过程。在文件最后一行的前面加入一行:

/usr/sbin/ntpd –q

编辑之后的结果所下如示:(你的发行版本是另一种的话,可能会略有不同。)

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
/usr/sbin/ntpd -q
touch /var/lock/subsys/local

如此一来,你的系统每次启动时,都会将 /usr/sbin/ntpd –q作为启动过程的最后一个命令来执行。

下一步,我们要确保系统启动之后,系统每天运行一次这个同样的命令,这就使系统时钟不会与实际时间相差太多。为此,我们使用cron命令来使ntpd –q按照规定的时间运行,在此例中就是每天运行一次。为了实现这一点,我们执行crontab –e命令来编辑定时执行命令表并将下面一行加入到文件中:

5 0 * * * echo `date`: `/usr/sbin/ntpd -q` >> /var/log/cron_ntpd.log

注意:此例中的所有引号均为后单引号,这样就会使其包含的命令被执行。

此条目会在每天午夜5分钟之后运行/usr/sbin/ntpd –q命令,并会将一个登记项添加到/var/log/cron_ntpd.log文件中,此文件由时间信息和命令的输出结果组成。我们可以监视这个日志文件来查看有多少调整是必需的;如果必要的话,增加这个命令的频率。

文章评论

共有 位CH网友发表了评论 查看完整内容