| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 2.1 Finger의 작동 원리 | 서로 연결되는 방법. | |
| 2.2 The ‘~/.fingerrc’ 스크립트 | 출력을 커스터마이즈 하는 방법. | |
| 2.3 사용자 정의 타켓 | ||
| 2.4 Finger가 Port를 취하는 방법 | finger가 포트를 취하는 방법. |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GNU Finger는 다음과 같은 프로그램들의 집합적 이름이다.
입력된 명령행을 분석하고 finger 서버에 있는 ‘in.fingerd’에 연결해서
서버로 부터 결과를 돌려 받는다. finger는 명령행에서 지정한 호스트에 있는
in.fingerd에 연결되며, 일반 사용자의 경우에는 이것만 알면 충분하다.
혼동을 피하기 위해서 사용자들이 실행하는 프로그램인 finger를 finger 클라이언트라고
부를 수 있다.
데몬 프로그램인 fingerd는 ‘fingerdir/clients’ 파일에 포함된 클라이언트들의 in.cfingerd에
정기적으로 연결되어 클라이언트들에 대한 데이터를 수집한다.
클라이언트들에 대한 데이터는 ‘fingerdir/userdata’ 파일에 저장된다.
fingerd는 ‘fingerdir/serverhost’ 파일에 지정된 호스트에서 실행되어야만 하며,
컴퓨터를 시동하는 부팅 시기에 실행되어야 한다.
in.fingerd는 TCP 랩퍼인 inetd를 경유해서 finger 클라이언트의 요청에 반응한다.
사용자들이 finger를 실행하면 ‘/etc/inetd.conf’를 거쳐서 finger 서비스에 연결되는데,
in.fingerd는 실행되는 호스트에 따라 조금씩 다르게 운영된다.
서버 호스트에 있는 in.fingerd는 ‘fingerdir/userdata’ 파일의 데이터 베이스를
읽는 것이 그 역할이지만, (‘.local’이 타겟이 아닐 경우에)
그 이외의 모든 클라이언트 호스트에서는 ‘fingerdir/serverhost’에 지정된 호스트의
in.fingerd로 모든 finger 요청을 포워드 한다.
또한 in.fingerd는 ‘fingerdir/userdata’ 데이터 베이스와 여러가지 시스템
파일들에서 읽은 뒤에 ‘fingerdir/mailhost’ 파일에 지정된 호스트로 SMTP 프로토콜을
사용해서 연결된다.
클라이언트에서 실행되는 데몬인 in.cfingerd는
클라이언트의 상태를 확인해서 fingerd로 그 내용을 전달한다.
이 프로그램은 ‘clients’ 설정 파일의 설정에 따라서
‘cfinger’에 반응하며, 설정 내용이 없을 경우에는 2003 포트로 응답하도록 되어 있다.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GNU Finger가 사용자 정보에 대한 요청을 받으면 사용자의 홈 디렉토리에 ‘.fingerrc’ 파일이 있는 지의 여부를 먼저 확인한다. 만일 파일이 존재하고 실행 속성이 있다면 그 파일이 실행되고, finger의 출력 결과가 그 입력으로 넘겨진다. ‘~/.fimgerrc’는 다음과 같은 용도로 사용될 수 있다.
finger의 출력 전체를 다른 것으로 교체한다. 다음은
‘~price-info/.fingerrc’에 넣을 수 있는 예제 스크립트이다.
#! /bin/sh # # 이 예제 스크립트는 GNU Finger의 출력을 대체한다. # echo Hack-O-Matic Consulting Services, Inc. " " `date` cat <<ETX 안녕하세요. 새롭게 제공되는 자유 소프트웨어에 대한 지원 서비스 요청을 해 주셔서 감사드립니다. 다음은 새로운 서비스의 목록입니다. 이전 서비스의 목록을 보시려면 이 주소로 메일을 보내시면 연락을 드리겠습니다. 귀하의 연락처를 적어 주시는 것을 잊지 마십시오. ETX cat ~/info/new-stuff |
#! /bin/sh # # 이 예제 필터는 "Project:" 태그를 "Working on:"으로 대치한다. # "Working on:" # sed -e 's/^Project:$/Working on:/g' |
‘finger -l bson@gnu.ai.mit.edu’이 실행할 때 출력되는 결과는 다음과 같다.
Jan Brittenson (bson)
Home: /home/fsf/bson
Shell: /usr/local/bin/bash
No mail.
Jan Brittenson (bson) is not presently logged in.
Last seen at wombat.gnu.ai.mit.edu on Tue Sep 1 15:08:12 1992
No plan.
Working on:
1. Hacking GNU Finger
2. Making friends
|
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
다양한 종류의 타겟들이 ‘fingerdir/targets’ 디렉토리 안에 실행 파일로 추가될 수 있다. 각 파일명은 한 문자 뒤에 하이픈과 타겟 이름이 연결되는 형식을 갖는데, 제일 앞에 사용할 수 있는 문자는 다음과 같은 3가지 종류이다.
"긴" finger에 대응한다. 일반적으로 다음과 같이 입력한다. ‘finger -l’.
"짧은" finger에 대응한다. 옵션 없이 사용하는 일반적인 기본값과 같다.
"긴" finger와 "짧은" finger에 모두 대응한다.
예를 들어, 특별한 타겟 파일인 ‘x-.help’는 ‘finger .help’와 ‘finger -l .help’ 모두에 실행되는 반면, ‘l-prices’는 ‘finger -l prices’의 경우에만 실행된다.
특별한 타겟 파일은 슈퍼 유저의 권한으로 실행되고 입력은 받지 않는다. 관습적으로 모든 GNU Finger 사이트에는 적어도 다음과 같은 2개의 사용자 타켓을 지원해야 한다.
어떤 요소와 특별한 타겟이 사이트에 있는지 설명하는 메세지를 출력한다.
사이트를 설명하는 메세지를 출력한다. 여기에는 회사명과 주소 그리고 시스템 관리자에게 연락하는 방법 등이 포함될 수 있을 것이다.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GNU finger가 실행되면, GNU Finger 클라이언트는 ‘--port’ 옵션이 명령행에서
지정되었는 지 살펴본다. 지정되어 있다면 그것이 포트 번호 또는 사용되는 서비스가 된다.
포트가 지정되지 않았다면, 클라이언트는 어떤 이름으로 프로그램이 실행되었는지를 살펴보고
디렉토리 경로와 {.} 이후의 접미사를 지운 이름을 서비스명으로 인식한다.
예를 들면, GNU Finger는 설치될 때 시스템 관리자에 의해서
‘/usr/local/bin/finger.new’나 ‘/usr/local/bin/gfinger’의 이름으로 설치될 수 있는데,
각각의 경우에 실행되는 이름은 ‘finger’와 gfinger가 된다.
| [ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by Autobuild on September 8, 2012 using texi2html 1.82.