Linux系统服务分类介绍

Linux系统服务分类介绍 

(附件请点击链接)

    linux下的系统服务角色繁多,用法也不尽相同。不过我们可以将其分成三类:

n  由init控制的服务:大多是系统级别的服务

n  由System V 启动脚本启动的服务:常见服务器基本都是这个类型,用户经常使用的

n  由xinetd管理的服务:比如telnet服务

下面我们来看这3类服务的配置文件及使用方式:

1、init进程控制的服务

1)         系统初始进程init 的PID为1 ; pstree 命令用于查看进程树结构

2)         init的配置文件 /etc/inittab
可以发现设置系统开机运行级别(0-6)也是通过该文件完成的;

同时该文件还定义了哪些服务运行在哪些级别上,读取哪些文件

3)         如果改动了inittab 文件,可以通过下面命令立即生效
#init q

下面来重点关注下System V  服务:

2、由System V启动脚本启动的服务

1)         查看System V启动脚本目录

2)         控制System V服务
方法1:
#/etc/rc.d/init.d/script {start | stop |restart |reload }
方法2:
#service script { start | stop |restart |reload }

3)         System V服务在不同系统运行级别下的默认开关可以不相同,我们可以通过2个工具来控制
方法1:#chkconfig –list 服务名称
可以看到,当前NFS服务在0-6级别都是关闭状态。下面我们让NFS服务在35级别自动运行

方法2: 文本界面工具ntsysv

如果要开启哪些服务,自己定义就好了。

3、Xinetd服务的管理

1)         xinetd服务的管理文件都放在 /etc/xinetd.d目录内,我们可以通过编辑相应服务文件来开启或关闭服务

2)         这里我们以telnet服务为例
由于RHEL5默认没有安装telnet,接下来安装telnet先
下面我们去看telnet的配置文件,注意观察文件路径
编辑/etc/xinetd.d/telnet
 disable 是控制语句,为yes就是不启动telnet,我们把他改成no

为了使改动生效,最后重启xinetd服务

3)         客户端telnet 测试

出现login对话框,OK;
注意:root用户默认不能登录(出于安全考虑),不过我们可以先以普通用户登录然后切换进管理员用户。

Posted in Linux | Tagged , , , , | Leave a comment

人生就像公交车

人生就像公交车——真的很经典(与君分享)

-

  1.人的一生,就像乘坐一辆公交车。。。。。。 –

clip_image002

2.我们知道它有起点和终点,却无法预知沿途的经历。 –

3.有的人行程长,有的人行程短。 –

4.有的人很从容,可以欣赏窗外的景色。 –

5.有的人很窘迫,总处于推搡和拥挤之中。 –

6.然而与悬挂在车门上、随时可能掉下去的人相比,似乎有感到欣慰。 –

7.获得舒适与优雅,座位是必不可少的机会,因此总被人们争抢。 –

8.有的人很幸运,一上车就能落座。 –

clip_image004-

-

9.有的人很倒霉,即使全车的人都坐下,他还站着。 –

10.有时别处的座位不断空出来,唯独身边的这个毫无动静。 –

clip_image006-

-

11.而当你下定决心走向别处,刚才那个座位的人却正好离开。 –

12.为了坐上或保住座位,有的人漠视良心,甚至伤害他人。 –

clip_image008-

-

13.有的人却因为这样那样的原因,不得不将到手的座位让给他人。 –

clip_image010-

14.有的人用了种种地方式,经历了长长的等待,终于可以坐下。 –

clip_image012-

15.但这是他已经到站了。 –

16.下车的一刻,他回顾车厢,也许会为了区区的一个座位而感慨,自以为大彻大悟。 –

clip_image014-

-

17.其实即使重新来过,他依然回去争抢,因为有时如果不坐下,连站的位置都没有。 –

18.除非你永远不上车,而这并不由自己决定。 –

clip_image016-

19.到站的人下了,车上的人还在。 –

clip_image018-

-

20.依然熙熙攘攘,依然上上下下。。。。。。 –

clip_image020-

-熙熙攘攘的人生中我们有时很无奈,走过人生的旅程什么都可以释怀,可是关键是我们对个旅程还充满期待。

Posted in 励志故事 | Tagged , , , , | 2 Comments

linux中如何查看服务是否可以使用tcpwraps来进行访问控制?

今天有人问我,如果有四个程序: xinetd, httpd,sshd,syslogd 如何可以查到这4个程序中,支持tcpwrap的程序呢?
据我所知,如果支持tcpwrap就一定有libwrap的库文件参与。那么程序在运行的时候肯定会加载相应的库模块。
而查询加载的模块命令我们用ldd。可是查询的时候如何快速查询是否有libwrap的模块呢?就需要我们写一个简单的shell脚本了。。。呵呵
分解一下: 首先第一步。测试一下 xinetd程序在那里。可以用which命令来定位。
[root@RHEL5 ~]# which xinetd
/usr/sbin/xinetd
得到结果是/usr/sbin/xinetd这个程序,然后利用ldd 查看该程序加载了哪些模块。
[root@RHEL5 ~]# ldd /usr/sbin/xinetd
linux-gate.so.1 => (0x00e7b000)
libselinux.so.1 => /lib/libselinux.so.1 (0x0036f000)
libwrap.so.0 => /usr/lib/libwrap.so.0 (0×00582000) libnsl.so.1 => /lib/libnsl.so.1 (0×00294000)
libm.so.6 => /lib/i686/nosegneg/libm.so.6 (0×00256000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0×00110000)
libc.so.6 => /lib/i686/nosegneg/libc.so.6 (0×00386000)
libdl.so.2 => /lib/libdl.so.2 (0x00a7c000)
libsepol.so.1 => /lib/libsepol.so.1 (0x00d72000)
/lib/ld-linux.so.2 (0x006db000)
我们需要的只是知道黑体显示的那一栏信息。这样我们知道了,xinetd程序是支持tcpwrap的程序。
接着,我们可以做得更好。利用shell脚本的特性。
[root@RHEL5 ~]# ldd $(which xinetd) | grep libwrap
libwrap.so.0 => /usr/lib/libwrap.so.0 (0x00c81000)
当然我还需要个循环来逐个显示不同服务对tcpwrap的支持。因此写出个简单的脚本。
#/bin/bash
# 测试程序对tcpwrap的支持。
# yoyojacky2009@gmail.com
for i in sshd syslogd httpd xinetd
do echo $i ; ldd $(which $i) | grep libwrap ;
done
写完后,记得给这个文件赋权:
[root@RHEL5 ~]# chmod +x ceshi.sh
然后执行以下,测试结果如下:
[root@RHEL5 ~]# ./ceshi.sh
sshd
libwrap.so.0 => /usr/lib/libwrap.so.0 (0x00c6a000)
syslogd
httpd
xinetd
libwrap.so.0 => /usr/lib/libwrap.so.0 (0x00c7c000)
结果显示,只有xinetd和sshd这两个程序支持tcpwrap功能。大家可以举一反三,通过这种方法查询更多的模块。找到程序中共同的模块,更好地理解linux的工作原理。

Posted in Linux | Tagged , , , , , , | 2 Comments