| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 5.1 기본 설치 | ||
| 5.2 설정 파일 | GNU Finger 설정 파일. | |
| 5.3 사이트 지정 기능 | Finger를 사이트에 맞게 커스터마이즈 하는 방법. | |
| 5.4 설정 옵션 |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GNU Finger를 설치하기 위해 밟아야 하는 단계는 다음과 같다.
csh을 쓰고 있다면, csh이 configure를
실행하는 것을 막기 위해서 ‘sh ./configure’를 실행해야 한다.
configure 스크립트는 설치 중에 필요한 시스템 의존 변수들의 값을
알아내고 각각의 하위 디렉토리마다 Makefile을 생성한다.
몇몇 패키지에서는 시스템 의존적인 정의 사항들을 포함하는 C 헤더 파일을 만들기도 한다.
또한 현재의 설정 사항을 다시 만들 수 있는 ‘config.status’ 파일도 생성한다.
configure를 실행하면 1, 2분 정도 소요된다. 실행 중에는 진행 과정이 화면으로 출력된다.
출력되는 메세지를 보고 싶지 않은 경우에는 표준 출력을 ‘/dev/null’로 바꾸어
configure를 실행하면 된다. 예를 들면, ‘./configure >/dev/null’과 같이 할 수 있다.
소스 코드가 있는 곳이 아닌 디렉토리에서 패키지를 컴파일 하려면, GNU make와 같이
VPATH 값을 지원하는 버전의 make를 사용해야 한다. 목적 파일과 configure를
실행할 실행 파일을 만들고 싶은 디렉토리로 ‘cd’ 명령으로 이동한다.
configure는 자동적으로 configure가 있는 디렉토리와 상위 디렉토리에서
소스 코드를 찾는다. 만일 특별한 이유로 인해서 configure가 사용자가 지정한 소스 코드
디렉토리에 있지 않다면 소스 코드를 찾을 수 없다는 메세지가 출력된다.
그런 경우에는 configure를 ‘--srcdir=DIR’
옵션을 주어 실행시킨다. DIR은 소스 코드가 있는 디렉토리이다.
‘configure’가 사용자의 시스템 설정을 조사해서
(‘Makefile’과 설정 헤더 파일을 만드는) 패키지 설정을 실제로 하지 않고
단지 ‘config.status’에 기록하도록 할 수 있다.
이렇게 하려면 configure에 ‘--no-create’ 옵션을 준다. 나중에 ./config.status를
실행시켜 실제로 특정 호스트에 맞게 설정해 줄 수 있다. 이러한 방법은 ‘config.status’과
‘Makefile’의 업데이트를 위한 ‘Makefile’ 규칙에 유용하게 사용된다.
또한 ‘config.status’에 ‘--recheck’ 옵션을 주어 설정을 다시 할 수 있다.
이 옵션은 전에 사용했던 인자와 동일하게 configure를 재실행 시키며,
configure를 바꾸고자 할 때 매우 유용하다. 이때
‘configure’는 사용자가 지정한 모든 인자들을 무시한다.
GNU Finger 설정 파일을 ‘/usr/local/etc/fingerdir’가 아닌 다른 곳에 생성하고 싶다면
‘./config.h’와 ‘include/fingerpaths.h’ 파일을 편집한다.
만일, 지원되지 않는 사진 코드를 포함하고 싶다면 컴파일과 필요한 파일을 링크시키기 위해
‘lib/Makefile.in’과 ‘lib/site/Makefile.in’ 그리고 ‘src/Makefile.in’을 수정하는 것 말고도
사진 파일의 포맷을 반드시 선택해야 한다. 만일, 여러분의 시스템이
컴파일과 링크를 위해 configure가 알지 못하는 일반적이지 않은 옵션을 요구한다면
configure에 몇몇 변수의 초기값을 환경 변수에서 지정해 줄 수 있다. 본쉘과 호환되는
쉘에서는 다음과 같이 명령행에서 실행할 수 있다.
CC='gcc -traditional' DEFS=-D_POSIX_SOURCE ./configure |
configure를 실행할 때 환경 변수로 바꾸고 싶은 다음과 같은 make 변수가
있을 것이다. (이런 변수는 환경 변수로 주어진 값이 configure가 선택한 값을 덮어 쓴다.)
CCC 컴파일러 프로그램. ‘gcc’가 PATH에 포함되어 있다면 ‘cc’ 또는 ‘gcc’가 기본으로 사용된다.
INSTALL파일을 설치하는데 사용될 프로그램. install이 기본으로 사용되며,
install이 없을 경우에는 cp가 사용된다.
(이런 변수들은 환경 변수에서 주어진 값이 configure가 선택하는 값에 추가된다.)
DEFS설정 옵션. 형식은 다음과 같다. ‘-Dfoo -Dbar ...’
LIBS링크시킬 라이브러리 옵션. 형식은 다음과 같다. ‘-lfoo -lbar ...’
실행 파일을 만들거나 설치하기 위해서 finger 서버 설정 파일을 추가로 설치한다. 호스트가 finger 서버로 지정되어 있을 경우에는 이 명령어를 사용한다.
실행 파일을 만들지만 서버가 아닌 클라이언트로 사용하기 위한 것만 설치한다. finger 서버로 사용되지 않을 경우에는 이 명령어를 사용한다.
모든 실행 파일을 만든다. 설치하지는 않는다.
위의 명령은 finger 서버를 위한 fingerd 뿐만 아니라 ‘lib/libfinger.a’와
finger, in.fingerd 그리고 in.cfingerd 프로그램들을 생성한다.
원한다면 ‘make’ 변수를 CFLAGS와 LDFLAGS로 다음과 같이
덮어 쓸 수 있다.
make CFLAGS=-O2 LDFLAGS=-s |
in.cfingerd (포트번호 2003)와 in.fingerd (포트번호 79)의 TCP 포트를 알려주는
항목을 시스템 ‘service’ 파일 또는 이에 해당하는 파일에 추가한다.
만일 다른 프로그램이 이미 2003 포트를 사용하고 있다면,
이 문서의 설정 파일 부분을 참고해서 ‘/usr/local/etc/fingerdir/clients’ 파일에
다른 포트 번호를 지정한다. ‘cfinger’로 서비스 이름을 지정할 것을 권장한다.
in.cfingerd와 in.fingerd에 대한 사항을 ‘inetd.conf’ 또는 이에 해당하는
파일에 추가한다.
in.fingerd는 root 사용자의 UID로 실행될 필요가 있다.
이 방법에 대해서는 시스템 문서를 참조하라.
in.cfingerd는 System V 계열에서는 root UID로 실행되어야 한다.
inetd 데몬을 재시동 한다.
fingerd로 서버 데몬을 시동한다. 서버 호스트가 재시작 될 때마다 fingerd가
시작되도록 설정해야 한다. 정확한 변경 방법은 서버 호스트의 시스템 문서를 참조하라.
|
이것으로 설정이 마무리 되었다! 이제 설정 파일 부분으로 넘어가도록 하자.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
이 장에서는 GNU finger 프로그램의 설정 파일 형식에 대해서 설명한다.
| 5.2.1 ‘clients’ 파일 | finger 클라이언트 목록. | |
| 5.2.2 ‘serverhost’ 파일 | Finger 서버 호스트. | |
| 5.2.3 ‘mailhost’ 파일 | 클라이언트를 위한 메일 라우터. | |
| 5.2.4 ‘forwardhost’ 파일 | 해결할 수 없는 요청의 처리 | |
| 5.2.5 ‘ttylocs’ 파일 | 터미널 위치의 파악. |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
‘/usr/local/etc/fingerdir/clients’ 파일에는 GNU Finger 서버인 fingerd가 등록할 수
있는 클라이언트들의 목록이 모두 포함되어 있다. 이 파일을 편집한 뒤 finger 서버에
SIGHUP을 보내서 설정이 변경되었음을 알릴 수 있다.
파일의 모든 행은 호스트 이름 또는 주석으로 시작된다.
이름 앞에는 @port가 와서 finger 서버에게 2003이 아닌 다른
포트 번호를 이용해 특정 호스트를 등록하도록 할 수도 있다. 주석은 해쉬 사인(#)으로
시작하는 모든 줄이다. 다음과 같은 예가 될 수 있다.
# 이 파일은 gnu.ai.mit.edu 네트워크에 있는 모든 GNU Finger 클라이언트를 포함하고 있다. # Apple-gunkies는 GNU Finger 서버이다. (``serverhost''를 참고) apple-gunkies.gnu.ai.mit.edu # Albert는 메일 교환기이다. (``mailhost''를 참고) albert.gnu.ai.mit.edu # Spiff는 Sony 시스템이며, 2003 포트는 이미 `mbanks'에서 사용중이다. # 포트 번호 2010을 대신 사용한다. @2010 spiff.gnu.ai.mit.edu churchy.gnu.ai.mit.edu mole.gnu.ai.mit.edu geech.gnu.ai.mit.edu wookumz.gnu.ai.mit.edu nutrimat.gnu.ai.mit.edu kropotkin.gnu.ai.mit.edu goldman.gnu.ai.mit.edu hal.gnu.ai.mit.edu wombat.gnu.ai.mit.edu |
비록 이 예제 ‘clients’ 파일이 완전히 인증된 호스트의 도메인명을 갖고 있지만
일반적으로 호스트명 만을 포함해도 충분하다. 명백한 IP 주소 역시 사용될
수 있지만 이것은 그리 추천할 만한 것은 아니다. 서버 역시 ‘clients’ 파일에 포함되어
있고 in.cfingerd를 갖고 있음을 주목하라. 서버가 제대로 자신을 등록하기
위해서 필요하다.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
‘/usr/local/etc/fingerdir/serverhost’ 파일에는 GNU Finger 서버 호스트의 이름이 포함된다.
그 이름이 의미하듯이 이 파일에 포함된 호스트는 GNU Finger 서버인 fingerd가 실행되는
호스트이다. 해쉬 사인(#)으로 시작되는 행은 주석으로 처리되며, 다음과 같은 예가 될 수 있다.
# A-g는 모든 finger 호스트를 처리한다. apple-gunkies.gnu.ai.mit.edu |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
‘/usr/local/etc/fingerdir/mailhost’ 파일에는 네트워크의 메일 교환 서버가 포함된다. 호스트는 반드시 SMTP로 통신하는 방법을 알아야 한다. 이 파일에 그것이 불가능한 호스트명이 적혀 있으면 안된다. 메일 포워드 정보를 얻고 ‘.forward’ 파일을 사용자의 홈 디렉토리에서 찾지 못하면 메일링 리스트를 확장하기 위해 접촉을 한다. GNU Finger는 ‘mailhost’의 유무에 관계 없이 언제나 사용자의 ‘.forward’ 파일을 참조한다. 이 파일에서 해쉬 사인(#)으로 시작하는 모든 행은 주석으로 처리된다.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
‘/usr/local/etc/fingerdir/forwardhost’ 파일에는 현재의 finger 서버가 일치하는 사용자 이름이나 전자 우편 앨리아스를 찾지 못할 때 finger 요청을 포워드 할 호스트명이 포함된다. 이 파일이 없으면 어떤 포워딩도 이루어 지지 않는다. 해쉬 사인(#)으로 시작하는 모든 행은 주석으로 처리되며, 다음과 같은 예가 될 수 있다.
% finger -l nosuchuser@gnu.ai.mit.edu [No user nosuchuser@apple-gunkies.gnu.ai.mit.edu, forwarding request to life.ai.mit.edu] Login name: nosuchuser In real life: ??? |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
‘/usr/local/etc/fingerdir/ttylocs’ 파일에는 사용자가 경유하거나 로그인 하는 터미널이나 호스트에 대한 설명이 포함된다. 각 클라이언트 호스트는 이 파일에 대한 복사본을 갖고 있다. 각 행은 호스트명이 있고 그 뒤에 설명이 있다. 이름과 설명은 하나 이상의 공백 또는 탭으로 분리되어야 한다.
spiff.gnu.ai.mit.edu NE43 Hall susie.gnu.ai.mit.edu NE43 Sony 427 x8568 spike.gnu.ai.mit.edu NE43 Sony 427 x8568 apple-gunkies.gnu.ai.mit.edu NE43 427 sugar-bombs.gnu.ai.mit.edu Elsewhere pogo.gnu.ai.mit.edu NE43 447 albert.gnu.ai.mit.edu Noisy Machine Room 128.52.46.42 The salt mines churchy.gnu.ai.mit.edu NE43 426 mole.gnu.ai.mit.edu NE43 430 geech.gnu.ai.mit.edu NE43 426 wookumz.gnu.ai.mit.edu NE43 427 calvin.gnu.ai.mit.edu NE43 gnu.gnu.ai.mit.edu NE43 kropotkin.gnu.ai.mit.edu Total anarchy |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GNU Finger의 출력을 커스터마이즈 하고 싶다면 ‘lib/site’ 디렉토리가 시작하기 좋은 위치이다. 만일, 얼굴을 보여주는 새 코드를 넣거나 특정한 "긴" 형식의 출력에 특히 흥미를 느낀다면 GNU Finger의 다음 버전에 지원되지 않는 기능으로서 기꺼이 포함시킬 수 있다. (여러분의 코드에 대해서 직접적으로 의견 교환을 하겠다.) 다른 형태의 비트맵 파일 포맷을 처리하거나 사용자 정보에 관련된 다른 형태의 코드를 통해서 finger 프로그램의 발전에 기여할 수 있다. 현재까지 ‘lib/site’에서 지원되는 유일한 파일은 ‘userinfo.c’이다.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
‘config.h’에 있는 다음의 정의들은 GNU Finger의 실행 방식을 제어한다.
SUPPORT_FINGERRC사용자가 ‘.fingerrc’ 스크립트를 사용하는 것을 제한하려면 해제한다. 기본값으로 이 기능이 설정된다.
CHECK_OWNER_FINGERRC‘.fingerrc’가 발견된 디렉토리의 사용자 소유의 것임을 분명히 하고자 할 때 정의한다.
CHECK_RDONLY_FINGERRC‘fingerrc’를 소유자 이외의 사용자가 기록하지 못하도록 할 때 정의한다.
FINGERRC_SHELL‘.fingerrc’를 실행시키는데 사용될 쉘. 사용자의 로그인 쉘을 사용하려면 정의를 해제한다.
DEFAULT_POLL_INTERVAL등록 시간 간격이 fingerd에 ‘--interval’ 옵션으로 정확이 주어지지 않은
경우에, 지연 시간을 초 단위로 설정할 때 정의한다.
BASENAME_IS_SERVICEfinger 클라이언트가 언제나 ‘finger’ 서비스를 사용하도록 하려면 정의 해제한다. 그렇지 않으면 서비스는 클라이언트의 기본 서비스 항목에서 빠진다. 기본값으로 정의되어 있다.
INFO_IS_DEFAULT‘finger --info’를 기본값으로 하고 싶으면 정의한다. ‘finger --brief’를 기본값으로 하고 싶다면 정의 해제한다.
| [ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by Autobuild on September 8, 2012 using texi2html 1.82.