inetd.conf简单描述

来源:互联网 发布:淘宝客服哪里培训课程 编辑:程序博客网 时间:2024/06/13 08:00
/etc下的三个文件:inetd.conf,protocols,services,netconfig 之间有什么关系?是不是互相调用的?或者在调用过程中,还有什么其他的文件?

inet.conf是/usr/sbin/inetd的初始化文件,告诉/usr/sbin/inetd所需要监听的 inet服务及有关信息,每行有七个单元,对于socket类的服务各单元依次是: 

<服务名称> <协议(tcp或udp)> <标志(wait或 nowait)> <属主> <真实服务程序全路径> <真实服务程序名称及参数> 

如: 


ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd 


表示/usr/sbin/inetd监视ftp服务(端口21),为此服务创建的socket为流类型的,遵从 tcp协议,当ftp客户请求到来并且与/usr/sbin/inetd监视的ftp服务端口连接成功后, /usr/sbin/inetd就fork一个子进程,该子进程的主人被置为root,同时继承了一个父进程与客户方连接成功而生成的子socket,然后该子进程将该子socket复制(dup2调用) 为文件号0,1, 2(标准输入输出标准出错)并且发 execl("/usr/sbin/in.ftpd", "in.ftpd") 使in.ftpd接管标准输入输出的处理,也就是接管父进程连接成功生成的子socket, 父进程不会等待子进程的退出(exit)状态,即nowait。 你如果对fork和exec族的调用有比较清楚的了解一看就会明白的,我前面的捉鬼记系列中的防火墙程序正是利用了/usr/sbin/inetd和/etc/inetd.conf这一特性。 

至于/etc/protocol和/etc/services则是系统正式登记的协议和服务名称,协议有协议号,服务有端口号,但是这些协议号和端口号有自己的登记名字,就体现在上述两个文件中,这两个文件会被许多应用程序查询的,即调用getprotobyname和getservbyname. 

netconfig是系统的网络设置?这个说法比较模糊呵呵我也不知道怎么表达(这跟getnetconfig等调用有关,应该是比较底层的东东,涉及网络名,设备名,动态库等等,呵呵越说越没底泥man netconfig好了,呵呵) 

(http://www.fanqiang.com)

0 0
原创粉丝点击