认识 daemons 可重要了,能够更清楚的了解服务的启动与运作方式!
本文数据主要针对 Fedora Core 4 的系统进行说明, Fedora Core 1 主要是由 Red Hat Linux 9 改版而来, 这个 Red Hat Linux 9 并不是当前大家听到的 RHEL 喔!那是在 RHEL 出现之前的产品,基本上是在 2003 年以前的作品了!Fedora Core 4 则是在 2005 年 6 月份发布,使用的内核是 2.6.11 版,当时是很红的一个作品!只是生命周期太短,所以用这个 Fedora 系列来介绍 Server, 当时的决定确实有点莫名其妙了...
建议您前往本站查找最新版本的 Linux distribution 文章来阅读,比较不会浪费时间。那为何还需要编辑 Fedora Core 4 的数据呢? 鸟哥只想要做个自己曾经撰写过的文档内容保存而已啰! ^_^!最新文章请前往鸟站首页查阅啰!
在 Unix-Like 的系统中,常常听到这个字眼: daemons !那么什么是传说中的 daemons 呢?这些 daemon 放在什么地方?他的功能是什么?该如何启动这些 daemons ?又如何有效的将这些 daemon 管理妥当!?此外,要如何视察这些 daemons 开了多少个 ports ?又这些 ports 要如何关闭?还有还有,晓得你的系统的这些 port 各代表的是什么服务吗? 这些都是最基础需要注意的呢!尤其是在架设网站之前,这里个观念就显的更重要了。
[root@linux ~]# vi /etc/services ......省略...... ftp-data 20/tcp ftp-data 20/udp ftp 21/tcp ftp 21/udp fsp fspd ssh 22/tcp # SSH Remote Login Protocol ssh 22/udp # SSH Remote Login Protocol telnet 23/tcp telnet 23/udp ......省略...... http 80/tcp www www-http # WorldWideWeb HTTP http 80/udp www www-http # HyperT pop3 110/tcp pop-3 # POP version 3 pop3 110/udp pop-3 sunrpc 111/tcp portmapper # RPC 4.0 portmapper TCP sunrpc 111/udp portmapper # RPC 4.0 portmapper UDP netbios-ns 137/tcp # NETBIOS Name Service netbios-ns 137/udp netbios-dgm 138/tcp # NETBIOS Datagram Service netbios-dgm 138/udp netbios-ssn 139/tcp # NETBIOS session service netbios-ssn 139/udp ......省略...... # 这个文件的内容是以底下的方式来编排的: # <daemon name> <port 与数据型态> <该服务的说明>像上面说的是,第一栏为 daemon 的名称、第二栏为该 daemon 所使用的 port 号码与其网络数据封包发送时候的类型,主要为确定连接后才进行数据传输的可靠的 TCP 封包, 以及较快速但不确定性较高的 UDP 封包等。 举个例子说,那个 e-mail 的发信协定为 smtp 这个服务,而这个服务的使用之 port 即为 25 啦!就这样!
[root@linux ~]# /etc/init.d/syslog start [root@linux ~]# service syslog start那个 service 是一支程序,基本上,也只是用来启动 /etc/init.d/ 底下的 shell script 而已~至于指令或者是文件后面接的参数,亦即是文件名之后加上 start 即可,或者是使用 Red Hat 系统有的这个 service script 来进行启动的功能!如果你还记得我们前几节提到过的 shell scripts 的话,那么或许还记得 case ..... esac 这个有选择性的项目的语法吧!?没错!这几支服务就是以 bash scripts 里头的 case 语法写成的!因此,只要加上后面的参数,如此一来, scripts 就会自动的去找寻运行档来运行啰!如果有兴趣的话, 可以在你的系统里面的该目录下开一个文件来观看一下,就知道如何写啰!
1. 启动 stand alone 服务的方式:以 syslog 为例: [root@linux ~]# /etc/init.d/syslog start 2. 启动 super daemon 服务的方式:以 telnet 为例: [root@linux ~]# vi /etc/xinetd.d/telnet (设置方式参考下节) [root@linux ~]# /etc/init.d/xinetd restart另外,除了这样的启动方式之外,我们还可以通过 Fedora ( Red Hat 系统 ) 所提供的 service 这个程序来进行 daemon 的启动喔!其实 service 仅是一支 script 啦, 他可以解析后面带有的参数,然后去到 /etc/init.d/ 去启动相对应的服务名称的 script 而已! 有兴趣的话,可以自行去解析 /sbin/service 这支 shell script 啊! 底下我们大略说明一下他的用法!
[root@linux ~]# service [service name] (start|stop|restart|...) 参数: service name:亦即是需要启动的服务名称,需与 /etc/init.d/ 对应; start|... :亦即是该服务要进行的工作。 范例: 范例一:重新启动 crond 这支 daemon : [root@linux ~]# service crond restart [root@linux ~]# /etc/init.d/crond restart在上面的范例当中,其实启动方式以 service 这个程序,或者直接去到 /etc/init.d/ 底下启动, 都一样啦!自行去解析 /sbin/service 就知道为啥了! ^_^
[root@linux ~]# vi /etc/xinetd.conf # # Simple configuration file for xinetd # # Some defaults, and include /etc/xinetd.d/ defaults { instances = 60 <==同一服务的同时连接数最多可达 60 个 log_type = SYSLOG authpriv <==登录后,会被纪录到注册表的信息 log_on_success = HOST PID <==若成功的登录时,记录的信息有哪些? log_on_failure = HOST <==若登录失败,则记录的信息又是如何? cps = 25 30 <==同一秒钟内最大连接数量为 25 个,若超过 25 个, 则该服务会暂时停止 30 秒! } includedir /etc/xinetd.d <==更多的设置值在 /etc/xinetd.d 那个目录内基本上,这个缺省参数档的意义是:『当某个使用 super daemon 管理的服务启动时,除非该服务已经设置好管理的项目,否则将以上述 xinetd.conf 内的缺省参数带入。』的意思,也就是说,这仅是默认值, 但我们可以自行指定新的设置值来取代 xinetd.conf 内的默认值啦! 也就是说,这个文件设置成,在缺省的状态下『:一个服务最多可达 60 个连接,且同一秒内连接上的连接不可超过 25 个。而若登录的成功与否时, 会分别记录不同的信息到注册表当中。』这样说,可以比较清楚了吧? ^_^ 至于更多的参数说明,我们会在底下再强调的!
service <service_name> { <attribute> <assign_op> <value> <value> ... ............. }第一行一定都有个 service ,至于那个 <service_name> 里面的内容, 则与 /etc/services 有关,因为他可以对照着 /etc/services 内的名称与 port number 来决定所要激活的 port 是那个啊!然后相关的参数就在两个大刮号中间。 attribute 是一些 xinetd 的管理参数, assign_op 则是参数的设置方法。 assign_op 的主要设置形式为:
attribute (功能) | assing_op (允许的动作) |
说明与范例 |
一般设置项目: | ||
disable | yes no |
允许该 server 可以运行或者是不能运行!当设置为 yes 表示该服务不能运行!
这个设置是一定要的啦。如果我想要启动某个服务,那么这里就要设置成为: |
socket_type | stream dgram raw |
stream 为连接机制较为可靠的 TCP 封包,若为 UDP 封包则使用 dgram 机制。
raw 代表 server 需要与 IP 直接对谈!例如 telnet 使用 TCP ,所以:
|
protocol | tcp udp .... |
这个东西说的是,连接的状态使用的是哪一种协定!?各个协定的代号可以参考 /etc/protocols 内容!此外,除非是你自己设置的服务,否则这个可以不用设置啦! |
wait | yes no |
这就是我们刚刚提到的 Multi-threaded 与 single-threaded
的方式啦!一般来说,我们希望大家的要求都可以同时被激活,所以可以设置
|
user | UID root |
还记得我们在 帐号管理 那一篇提到的 UID 概念吗?对啦!这个 UID 就是那个 UID 啦!要注意的是,假如你的服务启动者不要以 root 为主的话,那么这个地方就可以改变其他的用户,例如 nobody !这个咚咚也会有安全防护的机制存在!此外,需要注意这个 UID 必须存在于 /etc/passwd 。 |
group | GID | 跟 user 的意思相同!只是这个 GID 的用户也必须存在于 /etc/group 当中! |
instances | number UNLIMITED |
这个是『在同一时间之内,同一个服务可以允许的连接数目』的意思, 你可以写入一个『数字』来控制连接数目,也可以使用 UNLIMITED 来告诉系统『没有上限』啰!例如你在同时段之内仅允许 ftp 连接有 30 个,那么这里就可以输入 30 啦! |
nice | -20 ~ 19 | 还记得我们在 进程管理 里面谈到的那个 nice 指令吗?!对啦!这里就是这个东西啰!数字越小( 负值 )代表该进程越优先被运行! |
server | program 完整文件名 |
这个就是指出这个服务的启动程序!例如要启动 telnet 的话,其实就是 in.telnetd
这支程序啦!所以这个时候在这里输入
|
server_args | program 一些参数 |
这里应该输入的就是你的 server 那里需要输入的一些参数啦!例如 in.telnetd 当中,我们还可以加入某些参数! |
log_on_success | PID HOST USERID EXIT DURATION |
在『成功登录』之后,需要记录的项目:PID 为纪录该 server 启动时候的 process ID , HOST 为远程主机的 IP、USERID 为登录者的帐号、EXIT 为离开的时候记录的项目、 DURATION 为该用户使用此服务多久? |
log_on_failure | HOST USERID ATTEMPT RECORD |
当登录失败之后被 syslog 登录的项目:HOST为远程主机的 IP,USERID为登录者帐号、 ATTEMPT为记录登录失败者企图的意图为何、RECORD为记录远程主机的信息!以及为何本机 server 不能启动的原因!主要有 login, shell, exec, finger 等指令可以使用在这里!( 基本上,可以在 /etc/hosts.allow 或 /etc/hosts.deny 书写内容 )。 |
高端设置项目: | ||
env | 'name=value' | 这一个项目可以让你设置环境变量,环境变量的设置规则可以参考 认识 BASH Shell 。 |
port | number | 这里可以设置不同的服务与对应的 port ,但是请记住你的 port 与服务名称必须与 /etc/services 内记载的相同才行! |
redirect | IP_Address port | 将 client 端对我们 server 的要求,转到另一部主机上去!呵呵!这个好玩呦! 例如当有人要使用你的 ftp 时,你可以将他转到另一部机器上面去!那个 IP_Address 就代表另一部远程主机的 IP 啰! |
includedir | directory | 表示将某个目录底下的所有文件都给他塞进来 xinetd.conf 这个设置里头!这东西有用多了, 如此一来我们可以一个一个设置不同的项目!而不需要将所有的服务都写在 xinetd.conf 当中!你可以在 /etc/xinetd.conf 发现这个设置呦! |
安全控管项目: | ||
bind | IP_Address | 这个是设置『允许使用此一服务的适配器』的意思!举个例子来说,你的 Linux 主机上面有两个 IP ,而你只想要让 IP1 可以使用此一服务,但 IP2 不能使用此服务,这里就可以将 IP1 写入即可!那么 IP2 就不可以使用此一 server 啰 |
interface | IP_Address | 与 bind 相同 |
only_from | 0.0.0.0 192.168.1.0/24 host_name domain_name |
这东西用在安全机制上面,也就是管制『只有这里面规定的 IP 或者是主机名称可以登录!』如果是 0.0.0.0 表示所有的 PC 皆可登录,如果是 192.168.1.0/24 则表示为 C class 的网域!亦即由 192.168.1.1 ~ 192.168.1.255 皆可登录!另外,也可以选择 domain name ,例如 .ev.ncku.edu.tw 就可以允许成大环工系的网域 IP 登录你的主机使用该 server ! |
no_access | 0.0.0.0 192.168.1.0/24 host_name domain_name |
跟 only_from 差不多啦!就是用来管理可否进入你的 Linux 主机激活你的 server 服务的管理项目! no_access 表示『不可登录』的 PC 啰! |
access_times | 00:00-12:00 HH:MM-HH:MM |
这个项目在设置『该服务 server 启动的时间』,使用的是 24 小时的设置!例如你的 ftp 要在 8 点到 16 点开放的话,就是: 08:00-16:00。 |
umask | 000 777 022 |
还记得在 文件权限 里面约略提过的 umask 这个东西吗?呵呵!没错!就是那个鬼玩意儿啰! 可以设置用户创建目录或者是文件时候的属性!系统建议值是 022 。 |
[root@linux ~]# vi /etc/xinetd.d/telnet service telnet { flags = REUSE <==额外的参数使用 REUSE socket_type = stream <==使用 TCP 的封包格式 wait = no <==可以有多个连接同时连进来 user = root <==启动者缺省为 root server = /usr/sbin/in.telnetd <==使用的是这支程序! log_on_failure += USERID <==若登录错误,『加计』记录用户 ID disable = yes <==此服务缺省关闭! }其实,主要的参数可以参考上一小节的表格,也可以直接利用『 man xinetd.conf 』来查阅! 不过,如果你对于这样的设置并不满意的话,其实还可以手动来修改呢! 因为我们知道, telnet 并不是个十分安全的服务,详细机制可以参考 服务器篇 的 远程连接服务器 来查阅, 所以,如果你想要更多的安全机制,举例来说,你想要让 telnet 在局域网路内与 Internet 上面的连接机制有差异时,例如这样:
[root@linux ~]# vi /etc/xinetd.d/telnet # 先针对对内的较为松散的限制来设置: service telnet { disable = no <==缺省就是启动 telnet 服务 bind = 192.168.1.100 <==只允许经由这个适配器的封包进来 only_from = 192.168.1.0/24 <==只允许 192.168.0.0/24 这个网段 的主机连接进来使用 telnet 的服务 no_access = 192.168.1.{120,130} <==不许这些 PC 登录 instances = UNLIMITED <==同时允许连接不限制! nice = 0 <==使用的优先级较高 flags = REUSE <==额外使用的参数 socket_type = stream <==使用 tcp 封包常用的连接型态 wait = no <==不需等待,可以同时允许多个连接 user = root <==启动进程的用户身份 server = /usr/sbin/in.telnetd<==服务启动的程序 server_args = -a none <==上面那个程序的参数 log_on_failure += USERID <==错误登录时,要记录下来的内容 } # 再针对外部的连接来进行限制呢! service telnet { disable = no <==缺省就是启动 telnet 服务 bind = 140.116.44.125 <==只允许经由这个适配器的封包进来 only_from = 140.116.0.0/16 <==只允许 140.116.0.0 ~ 140.116.255.255 这个网段连接进来使用 telnet 的服务 only_from += .edu.tw <==累加设置,只有教务界才能连接! access_times = 1:00-9:00 20:00-23:59 <==每天只有这两个时段开放服务 umask = 022 <==创建文件时的缺省属性设置 instances = 10 <==同时只允许 10 个连接 nice = 10 <==使用的优先级较低 flags = REUSE <==额外使用的参数 socket_type = stream <==使用 tcp 封包常用的连接型态 wait = no <==不需等待,可以同时允许多个连接 user = root <==启动进程的用户身份 server = /usr/sbin/in.telnetd<==服务启动的程序 server_args = -a none <==上面那个程序的参数 log_on_failure += USERID <==错误登录时,要记录下来的内容 }在上面这个范例当中,我们用了很多的网络 IP 显示方式,包括 192.168.1.0/24 , 以及 140.116.0.0/16 ,这代表『 192.168.1.0~192.168.1.255 的所有 IP 』以及 『 140.116.0.0 ~140.116.255.255 所有的 IP 』更详细的说明,我们会在服务器篇内详谈的。 用了这个设置值之后,你会发现你的 telnet 针对两个网段来设计了! 设计完成之后,由于这是 xinetd 的设置档,所以启动的方式与观察的方式为:
# 如果您的 telnet 本来就有启动的话,那么会发现有一个连接存在你的系统中 [root@linux ~]# netstat -tulnp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN 19255/xinetd # 看到喔!是 xinetd 的 program name 呢! # 重新修改 /etc/xinetd.d/telnet 之后,重新启动的方式与观察为: [root@linux ~]# /etc/init.d/xinetd restart [root@linux ~]# netstat -tulnp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 140.116.44.125:23 0.0.0.0:* LISTEN 19281/xinetd tcp 0 0 192.168.1.100:23 0.0.0.0:* LISTEN 19281/xinetd # 有没有看到两个接口啊~而且, PID 会是同一个呢!呵呵!如上面的设置,我们可以将 telnet 的启动项目进行更多的限制! 如此一来,将有助于我们的安全防护呢!尤其如果可以针对不同的接口来设置,嘿嘿! 就更加的棒啰!不过,请注意喔!如果照上面的设置,那么您的主机上面将会开了两个 23 port 的接口,分别是给两个接口来使用的呢!嗯!真好玩?同样的, 你也可以针对自己的喜好来设置你的其他 daemon 使他挂在 xinetd 底下呢!
<service(program_name)> : <IP, domain, hostname> : <action>所以我们要先找出来那个 service_name 才行,例如以我们刚刚的 telnet 为例,那个 service_name 是什么呢?其实指的就是在 xinetd.conf 设置档中的 server 这个设置后面接的程序名称啦!所以, telnet 在 FC4 底下的名称为 in.telnetd 因此,如果你不想让 140.116.44.202 这个地址及 140.116.32.0/255.255.255.0 这个 C class 的网域进入你的主机的话,那么可以这样在 /etc/hosts.deny 里面设置: ( 关于 IP, 网域, 网段, 还有相关的网络知识,在这个基础篇当中我们不会谈到, 详细的数据请先自行参考服务器架设篇的内容! )
[root@linux ~]# vi /etc/hosts.deny
in.telnetd : 140.116.44.202 140.116.32.0/255.255.255.0 : deny
当然也可以写成两行,亦即是:
[root@linux ~]# vi /etc/hosts.deny
in.telnetd : 140.116.44.202 : deny
in.telnetd : 140.116.32.0/255.255.255.0 : deny
这样一来,对方就无法以 telnet 进入你的主机啦!方便吧!不过,既然如此,为什么要设置成
/etc/hosts.allow 及 /etc/hosts.deny 两个文件呢?其实只要有一个文件存在就够了,
不过,为了设置方便起见,我们存在两个文件,其中需要注意的是:
[root@linux ~]# vi /etc/hosts.allow in.telnetd: 140.116.44.0/255.255.255.0 in.telnetd: 140.116.79.0/255.255.255.0 in.telnetd: 140.116.141.99 in.telnetd: LOCAL [root@linux ~]# vi /etc/hosts.deny in.telnetd: ALL那么有没有更安全的设置,例如,当当有其他人扫瞄我的 telnet port 时,我就将他的 IP 记住!以做为未来的查找与认证之用! 是有的!只是,那就得要有额外的动作参数加在第三栏了。主要的动作有:
[root@linux ~]# vi /etc/hosts.deny in.telnetd: ALL: spawn (echo "security notice from host `/bin/hostname`" ;\ echo; /usr/sbin/safe_finger @%h ) | \ /bin/mail -s "%d-%h security" root & \ : twist ( /bin/echo -e "\n\nWARNING connection not allowed.\n\n" )在上面的例子中,第三行的 root 那个帐号,可以写成你的个人帐号或者其他 e-mail ,以免很少以 root 身份登录 Linux 主机时,容易造成不知道的情况,另外,最后几行,亦即 :twist 之后的那几行为同一行。如此一来,当未经允许的电脑尝试登录你的主机时, 对方的屏幕上就会显示上面的最后一行,并且将他的 IP 寄到 root ( 或者是你自己的信箱 )那里去! 另外请注意,那个 /usr/sbin/safe_finger 是由 tcp_wrappers 套件所提供的, 所以您必须要安装该套件才行喔! ^_^
范例一:找出目前系统打开的『网络服务』有哪些? [root@linux ~]# netstat -tulp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 *:ftp *:* LISTEN 1605/vsftpd tcp 0 0 *:pop3 *:* LISTEN 1613/dovecot tcp 0 0 *:ssh *:* LISTEN 1587/sshd udp 0 0 *:bootpc *:* 26035/dhclient # 看一看上头,Local Address 的地方会出现主机名称与服务名称, # 要记得的是,可以加上 -n 来显示 port number ,而服务名称与 port # 对应则是写在 /etc/services 里头喔! 范例二:找出所有的有监听网络的服务 (包含 socket 状态): [root@linux ~]# netstat -lnp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 *:ftp *:* LISTEN 1605/vsftpd tcp 0 0 *:pop3 *:* LISTEN 1613/dovecot tcp 0 0 *:ssh *:* LISTEN 1587/sshd udp 0 0 *:bootpc *:* 26035/dhclient Active UNIX domain sockets (only servers) Proto RefCnt Flags Type State I-Node PID/Program name Path unix 2 [ ACC ] STREAM LISTENING 5188 1673/master private/tlsmgr unix 2 [ ACC ] STREAM LISTENING 5192 1673/master private/rewrite ......以下省略...... # 仔细的瞧一瞧啊,除了原有的网络监听 port 之外,还会有 socket 显示在上面, # 我们可以清楚的知道有哪些服务被启动呢! 范例三:观察所有的网络连接状态,查找是否有异常的连接。 [root@linux ~]# netstat -anp # 利用这个指令可以查出有问题的连接,还可取得 PID, # 可以用来 kill 掉任何一个觉得怀疑的进程呢!利用 netstat 可以取得很多跟网络有关的服务信息,通过这个指令,我们可以轻易的了解到网络的状态, 并且可以通过 PID 与 kill 的相关功能,将有问题的数据给他剔除说~ 当然啦,要更详细的取得 PPID 的话,才能够完全的抵挡有问题的进程啦!
[root@linux ~]# chkconfig --list [root@linux ~]# chkconfig [--add|--del] [service_name] [root@linux ~]# chkconfig --level [0123456] [service_name] [on|off] 参数: --list :仅将目前的各项服务状态栏出来 --add :增加一个服务名称给 chkconfig 来管理,该 service_name 必须在 /etc/init.d/ 内! --del :删除一个给 chkconfig 管理的服务 --level:设置某个服务在该 level 下启动 (on) 或关闭 (off) 范例: 范例一:列出目前系统上面所有被 chkconfig 管理的服务 [root@linux ~]# chkconfig --list |more NetworkManager 0:off 1:off 2:off 3:off 4:off 5:off 6:off .....中间省略..... snmpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off yum 0:off 1:off 2:off 3:off 4:off 5:off 6:off xinetd based services: chargen: off .....中间省略..... telnet: off # 这个 chkconfig 的输出主要分为两大部分,分别是 stand alone 的服务, # 他会分出 0~6 个 run level 的数据,亦即上半部的显示,至于下半部则是 # super daemon 管理的服务的输出情况!由 super daemon 管理的服务, # 是没有 run level 之分的喔! 范例二:显示出目前在 run level 3 为启动的服务 [root@linux ~]# chkconfig --list | grep '3:on' 范例三:让 atd 这个服务在 run level 为 3, 4, 5 时启动: [root@linux ~]# chkconfig --level 345 atd on瞧! chkconfig 是否很容易管理我们所需要的服务呢?真的很方便啦~ 他的功能其实很简单,只是直接在 /etc/rc.d/rc[0-6].d 里面针对某服务进行链接文件的设置而已。 例如上面的范例三,基本上,他仅是在 /etc/rc.d/rc3.d/, /etc/rc.d/rc4.d/ 及 /etc/rc.d/rc5.d/ 里面,创建一个链接文件, 该链接文件链接到 /etc/init.d/atd 里面就是了!这样说,可以理解吗?
[root@linux ~]# vi /etc/init.d/myvbird #!/bin/bash # chkconfig: 35 80 70 # description: 没啥!只是用来作为练习之用的一个范例 echo "Nothing" # 这个文件很好玩喔!你可以参考你自己系统上面的文件; # 基本上,比较重要的是第二行,他的语法是: # chkconfig: [runlevels] [start number] [stop number] # 其中, runlevels 为不同的 run level 状态, start number 与 # stop number 则是在 /etc/rc.d/rc[35].d 内置立以 S80myvbird # 及 K70myvbird 为文件名的设置方式! [root@linux ~]# chkconfig --add myvbird [root@linux ~]# chkconfig --list myvbird myvbird 0:off 1:off 2:off 3:on 4:off 5:on 6:off # 看吧!加入了 chkconfig 的管理当中了!再去看看 /etc/rc.d/ 底下的文件: [root@linux ~]# find /etc/rc.d/ -type l | grep 'myvbird'|sort /etc/rc.d/rc0.d/K70myvbird /etc/rc.d/rc1.d/K70myvbird /etc/rc.d/rc2.d/K70myvbird /etc/rc.d/rc3.d/S80myvbird /etc/rc.d/rc4.d/K70myvbird /etc/rc.d/rc5.d/S80myvbird /etc/rc.d/rc6.d/K70myvbird # 很有趣吧!如果要将这些数据都删除的话,那么就下达这样的情况: [root@linux ~]# chkconfig --del myvbird [root@linux ~]# rm /etc/init.d/myvbirdchkconfig 真的是个不错用的工具吧!尤其是当你想要自己创建自己的服务时! ^_^
[root@linux ~]# ntsysv [--level <levels>] 参数: --level :后面可以接不同的 run level ,例如 ntsysv --level 35 范例: 范例一:直接编辑目前 run level 底下的开机缺省启动项目: [root@linux ~]# ntsysv挺不错用的吧!还可以知道该服务的意义呢!也就是说, 如果你想要知道某个 /etc/init.d/ 底下的服务启动的信息为何, 直接以 vi 打开该文件,去察看一下 description: 的内容即可知道啊! ^_^# 此时,你可以使用底下的按键来进行选择: # 上下键: 可以在中间的方框当中,在各个服务之间移动; # 空白键: 可以用来选择你所需要的服务,前面的 [*] 会有 * 出现; # tab 键: 可以在方框、OK、Cancel 之间移动; # [F1]键: 可以显示该服务的说明。举例来说,移动到 myvbird 按下 F1 后 # 没错!不要怀疑,这个就是 /etc/init.d/myvbird 文件内的 description: # 后面接的内容啊!了解了吗? ^_^
Stand Alone Daemons | |
服务名称 | |
基本说明 | |
anacron | |
当你的 Linux 主机并不是全天候开机的时候,这个 anacron 就可以帮你运行在『 crontab 』既定的时间内没有运行的工作!举个例子来说,当你的主机在晚上 12:00 会自动关闭,但是偏偏 crontab 这个例行性工作是在 4:00 工作, 这个时候例行性工作不是都没有做到吗?嗯! anacron 就可以使用啦! | |
apmd | |
apmd 是 Adventage Power Management daemon 的缩写,顾名思义,可以用来了解系统的『电池电量』, 如果对于手提式电脑才有需要吧我想! | |
atd | |
这个总该不陌生了吧!就是 仅进行一次的工作调度啰! 如果忘记了!赶紧去查看一下! | |
autofs | |
如果你的 Linux 是用来做为服务器的,那么这个服务就不需要启动了。 因为这个服务可以自动挂载很多的文件系统与设备,举例来说,自动挂载光盘啊、USB硬盘啊等等的。 如果是主机,我们可以自己好好的控制,不需要系统自动挂载。如果是个人台式机, 那么启动这个 daemon 也不错! | |
crond | |
用来运行例行性命令的 daemon ,请务必要启动他! | |
cups | |
这个服务在管理 Linux 主机上面的打印机的! 他可以用来作为本机打印机的管理,也可以用来管理网络打印机, 全名为 Common UNIX Printing System (CUPS)。如果您的网络环境当中有打印机, 而且想要通过 Linux 来提供给所有用户使用,那么就可以管理一下 cups 啰~ | |
gpm | |
在文本模式里面可以使用 mouse 来从事『拷贝、粘贴、移动光标』等等的功能! 如果你是个教师,需要使用鼠标在纯文本接口底下秀出结果的话, 再使用这玩意就好了。基本上,不需要启动他! | |
httpd | |
这个玩意儿可有趣的很哩~一般来说,新手最喜欢架设 Web 网站啰, 而 WWW 服务器,就是这个玩意儿啊~更详细的信息请参考服务器篇的内容 | |
iptables | |
这个家伙就是 Linux 上面有名的『防火墙』啦~如果你的 Linux 是在区网内, 而且没有连上 Internet 的话,那么这个防火墙机制可以暂时不要启动, 因为可能会抵挡掉你主机所提供的服务。如果连上了 Internet ,不开这个, 会死的很惨~ | |
kudzu | |
这个 daemon 缺省是启动的,他会在开机的时候去侦测你的硬件, 如果发现硬件有异动,或者是有添加其他的硬件, 那么 kudzu 服务会主动的以 Fedora 相关的设置软件来设置你的新硬件。 不过,对于稳定的系统来说,实在没有必要在开机的时候侦测一次硬件,因为....很慢~ | |
named | |
这是个很复杂的玩意儿,那就是 DNS (Domain Name System)。除非你真的很了解 DNS, 否则这个服务不需要启动的! | |
netfs | |
这个服务在自动的挂载 /etc/fstab 里头记录的关于网络文件系统,如 NFS, SMB (网芳) 等等,如果你的主机本身并没有挂载来自网络上的 filesystem,不需要启动。 | |
network | |
看文件名就知道啦!是用来管理网络的,所以,当然要启动了。 不论你有没有网络卡,这个服务都要启动,因为至少 network 会驱动 lo 这个网络接口。 更多的网络相关信息,参考服务器篇的内容。 | |
nfs nfslock |
|
NFS 为 Network File System 的缩写,我们会在服务器篇谈这个服务, 一般来说,不需要启动这个玩意儿~ | |
ntpd | |
这个服务的全名是:Network Time Protocol,意思就是在进行网络校时的一个服务。 一般来说,不需要启动他。 | |
portmap | |
这个咚咚与很多 RPC 的服务有关,例如 NFS 等等。一般来说,如果你的 Linux 尚未连上 internet, 这个服务不需要启动。不过,为了方便起见,各主要 linux distributions 都缺省启动这个服务的。 鸟哥通常是关掉他!哈哈! | |
postfix sendmail |
|
这个就是邮件服务器啦!由于近来网络垃圾大增,所以,目前所有的 Linux distributions 缺省都要启动 postfix 之类的邮件服务器后,我们发出的信件才会接收或者是发送。 缺省的情况下,一定会有一个邮件服务器启动的,不要关闭他~ 否则我们主机上面的帐号彼此之间无法以 email 发送数据喔! | |
smb | |
这个服务其实就是仿真 Linux 成为 Windows 的网上邻居上头的主机啦~ 由于我们还没有连上 Internet 啊,所以自然不需要启动他啦~ | |
sshd | |
这个是取代 telnet 的远程连接服务器 daemon ,几乎所有的 Linux distributions 缺省都会启动他~ 我们也可以通过这个玩意儿让远程主机连接进来啊!所以当然是启动的啊! | |
syslog | |
这个是注册表记录的一个重要的 daemon ,没有他,你的主机几乎没有事后监控的功能~ 所以请务必启动。我们会在 认识注册表 当中来谈这个咚咚~ | |
xfs | |
X Font Server, xfs,顾名思义,他是用来管理 X Window 的字形的一个服务, 如果你是 run level 5 ,或者是想要启动 X Window 的话,那么这个玩意儿就不能不启动。 不过,如果你跟鸟哥一样都是使用纯文本接口的话,这个玩意儿不用启动啦! | |
xinetd | |
刚刚上头才讲过这个玩意儿,不会就忘了吧?务必启动喔! | |
Super Daemons | |
chargen chargen-udp |
|
主要的功能在于提供类似远程打字的咚咚吧! | |
daytime daytime-udp |
|
用来作为 daytime 的服务,这是 NTP (Network Time Protocol) 的上一代, 目的在进行时间的校正工作。不过,因为他不会计算网络连接过程当中的迟滞时间, 并且是以明码发送,因此除了特殊目的外,目前已经很少使用这玩意儿了 | |
krb5-telnet | |
用来取代传统的 telnet 服务!可提供 krb 5 的验证机制。 | |
gssftp | |
用来取代传统的 ftp server,可提供 krb 5 的验证机制 |