發信人: cpu (奔騰的心), 信區: Solaris
標 題: Re: 請教CPU大蝦
發信站: 華南網木棉站 (Fri Aug 7 16:10:01 1998), 轉信
【 在 node (節點) 的大作中提到: 】
: /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)
進入【UNIX論壇】
|