NSSWITCH.CONF(5)

이름
nsswitch.conf - 시스템 데이타베이스와 네임서비스 스위치설정파일.

설명
C라이브러리의 다양한 함수들은 로컬환경에서 직접 일을 하기 위해 설정이 필요하다. 전통적으로 이것은 /etc/passwd와 같은 파일을 사용함으로써 수행되었다. 그러나 다 른 네임 서비스(NIS, DNS)들이 보편화되고, C라이브러리에 포함되었다.

NYS를 가진 리눅스 libc5지원과 GNU C 라이브러리2.x(libc.so.6)는 이러한 문제의 해답을 가지고 있다. 이것은 후에 선 마이크로시스템즈의 솔라리스 2의 C라이브러리에 의해 사용된 으로 디자인 되었다.

다음 데이타 베이스들은 NSS에 쓰인다:

aliases
    Mail aliases, used by sendmail(8) 에 의해 사용되는 메일 앨리어스. 현재는 무시한다.

ethers
    이더넷 번호.

group
    getgrent(3) 함수에 의해 사용되는 사용자들 그룹.

hosts
    gethostbyname(3) 와 같은 종류의 함수들에 의해 사용되는 호스트명과 번호.

netgroup
    액세스 룰을 위해 사용되는 호슽와 사용자의 네트웍리스트. glibc 2.1전의 C 라이브러리는 단지 NIS를 넘어 넥그룹들을 지원한다.

network
    getnetent(3) 함수에 의해 사용되는 네크웍명과 번호.

passwd
    getpwent(3) 함수에 의해 사용되는 사용자 비밀번호.

protocols
    getprotoent(3) 함수에 의해 사용되는 네트웍 프로토콜.

publickey
    NFS와 NIS+에 의해 사용되는 Secure_RPC를 위한 퍼블릭,시크릿 키.

rpc getrpcbyname(3) 와 비슷한 함수들에의해 사용되는 원격진행호출명과 번호.

services
    getservent(3) 함수에 의해 사용되는 네트웍 서비스.

shadow
    getspnam(3) 에 의해 사용되는 샤도우 패스워드.

예를 들면 /etc/nsswitch.conf 파일은 다음과 같이 보인다:

passwd:
    compat
group:
    compat
shadow:
    compat

hosts:
    dns [!UNAVAIL=return] files
networks:
    nis [NOTFOUND=return] files
ethers:
    nis [NOTFOUND=return] files
protocols:
    nis [NOTFOUND=return] files
rpc:
    nis [NOTFOUND=return] files
services:
    nis [NOTFOUND=return] files

첫 행은 당신이 위를 봄으로써 예상할 수 있는 그런 데이타베이스이다. 나머지 행은 룩업프로세스가 어떻게 일하는지 기술한다.

개별 데이타베이스의 설정은 두개의 다른 생각을 가질 수 있다:
* 서비스 설명서는 '파일','db','nis'같다.
* 룩업 결과, 반응은 '[NOTFOUND=return]'과 같다.

설명서에서 두번째 아이템은 룩업프로세스에서 더 훌륭한 제어를 사용자에게 준다. 작용 아이템은 두 서비스명 사이에 위치하고 괄호안에 쓰여진다. 보통 다음과 같이 쓴다.

`[' ( `!'? STATUS `=' ACTION )+ `]'

where

STATUS => success | notfound | unavail | tryagain
ACTION => return | continue

키워드의 경우는 무의미하다. 상태값은 특정서비스이 함수를 룩업하기위한 호출의 결과 이다. 이것들은 다음을 의미한다:

success
    어떠한 에러도 없었고 원하는 entry가 반환됐다.

notfound
    룩업프로세스는 제대로 작동하지만, 원한는 값은 찾지 못했다.

unavail
    서비스는 영원히 이용할 수 없다. 이것은 원하는 파일이 유효하지 않거나 혹은 DNS때문에 서버가 유효 하지 않거나 쿼리가 허락되지 않는것 모두를 의미할 수 있다.

tryagain
    서비스는 일시적으로 이용할 수 없다. 이것은 파일이 잠겨있거나 서버가 현재 더이상의 접속을 받아들 일 수 없는것을 의미한다.

  Interaction with +/- syntax (compat mode)
NYS없는 리눅스 libc5는 네임서비스 스위치를 가질 수 없지만, 몇몇 정책제어에 사용자를 허락한다.

파일
서비스명 SERVICE는 /lib 안에 위치하는 공유 오브젝트 라이브러리명 libnss_SERVICE.so.X 에 의해 구현된다.

/etc/nsswitch.conf
    설정 파일
/lib/libnss_compat.so.X
    glibc2를 위한 'compat'소스 구현.
/lib/libnss_db.so.X
    glibc2를 위한 'db'소스 구현.
/lib/libnss_dns.so.X
    glibc2를 위한 'dns'소스 구현.
/lib/libnss_files.so.X
    glibc2를 위한 'files'소스 구현.
/lib/libnss_hesoid.so.X
    glibc2를 위한 'hesoid'소스 구현.
/lib/libnss_nis.so.X
    glibc2를 위한 'nis'소스 구현.
/lib/libnss_nisplus.so.2
    glibc2.1를 위한 'nisplus'소스 구현.

주의
nsswitch.conf, 사용하는 각 프로세스의 완전한 파일은 한번만 읽는다; 파일이 후에 바뀐다면, 프로세스는 전의 설정을 계속 사용할 것이다.
솔라리스에서, NSS서비스를 이용하는 프로그램은 링크가 불가능하다. 리눅스에서는 아무런 문제가 없다.