NSSWITCH.CONF(5) | 리눅스 프로그래머 메뉴얼 | 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
키워드의 경우는 무의미하다. 상태값은 특정서비스이 함수를 룩업하기위한 호출의 결과 이다. 이것들은 다음을 의미한다:
- success
- 어떠한 에러도 없었고 원하는 entry가 반환됐다.
- notfound
- 룩업프로세스는 제대로 작동하지만, 원한는 값은 찾지 못했다.
- 서비스는 영원히 이용할 수 없다. 이것은 원하는 파일이 유효하지 않거나 혹은 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서비스를 이용하는 프로그램은 링크가 불가능하다. 리눅스에서는 아무런 문제가 없다.
1999년 1월 17일 | 리눅스 |