/etc/services 에 대한 질문

myjardin의 이미지

/etc/services 파일을 보면 네트워크 서비스와 각 서비스의 포트넘버가 명시되어 있는데, 이 파일을 액세스하는 것에는 어떤 것들이 있는지 알고 싶습니다.

즉 어떤 소스코드나 프로세스가 이 파일을 참조하는지 알고 싶습니다.

progcom의 이미지

가장 대표적인 프로그램이라면, netstat겠네요. *.smtp, *.http 등으로 나오는게 services 파일에서 매치되는 포트 번호를 찾아서 나오는겁니다.

getservent(), getservbyname() 등의 함수를 이용합니다. (netdb.h)

pynoos의 이미지

가장 대표적인 것은 inetd 입니다.
그리고 C 함수로 getservent 를 사용한 모든 바이너리들이 이용합니다.

무한포옹의 이미지

telnet 입니다.

/etc/services 에서 telnet 라인에 주석을 처리 해보세요

당장 telnet client부터 작동 안될 겁니다.

즉 client들도 참조한다 이거지오.

getservent 이야기와 일맥상통!

-------------------------------
== warning 대부분 틀린 얘기입니다 warning ===

jw0717의 이미지

그런데 제가 알기로는 /etc/services 는 inetd 요새는 xinetd에서만

접근하는 파일로 알고있습니다.

그러니까 예를들어서 proftpd 를 설치하고 inetd 로 구동시킬때는

/etc/servcies 에 ftpd 항목을 주석처리하면 proftpd가 실행이 안되도

standalone로 구동시키면 /etc/sercies와는 상관없는걸로 알고있습니다.

방금전에 proftpd로 테스트 해봤습니다.. /etc/services에 ftp에 주석처리하고

inetd로 실행시키니까..접근이 안되더군요..그래서 standalone로실행하니

까 실행이 잘되었습니다.