리눅스 NIS+코드는 GNU C 라이브러리 2를 위해 만들어졌다. 대부분의 상업용 어 플리케이션들이 libc5에 링크를 걸어 놓고 있어서, 리눅스 libc5용으로도 포팅 되어 있다. 여러분은 libc를 가지고 그것을 다시 컴파일 할 수 없다. libc5와 N IS+에는 다음과 같은 문제가 있다. static 프로그램들은 그것과 링크될 수 없고 ,이 라이브러리에 의해 컴파일 된 프로그램들은 다른 libc5버전에서 실행되지 않을 것이다.
여러분은 인텔기반의 플랫홈을 위해, GNU C 라이브러리 2.1로 수정하고 컴파일 해야 할 필요가 있다. 64bit 플랫폼에서는 GNU C 라이브러리 2.1.1로 해야한다. 근간 시스템으로는 데비안 2.x, 레드햇 5.x, 수세 6.x 같은 glibc가 근간인 배 포판을 필요로 할 것이다.
모든 배포판을 위하여, gcc/g++ 컴파일러와 libstc++, ncures를 다시 컴파일할 필요가 있다. 레드햇에서, 여러분은 많은 경우 PAM 설정을 변경하는 것을 많이 하게 된다. 수세 리눅스 6.0 에서는 쉐도우 페키지를 다시 컴파일 할 필요가 있 다.
NIS+ 클라이언트 소프트웨어는 다음으로 부터 얻을 수 있다:
Site Directory File Name
ftp.funet.fi /pub/gnu/funet libc-*, glibc-crypt-*,
glibc-linuxthreads-*
ftp.kerbel.org /pub/linux/utils/net/NIS+ nis-utils-19990223.tar.gz
ftp.kerbel.org /pub/linux/utils/net/NIS+ pam_keylogin-1.2.tar.gz
배포판의 glibc는 다음으로 부터 패치할 수 있다.
Site Directory
ftp.debian.org /pub/debian/dists/slink
ftp.redhat.com /pub/redhat/redhat-5.2
ftp.suse.de /pub/SuSE-Linux/6.0
GNU C 라이브러리를 고쳐서 만든 소프트웨어들에 대해서는 포함된 지시문을 잘 읽어 보길 바란다. 여러분은 NYS에 근간한 libc5 패치를 찾을 수 있다. 표준 li bc5를 대체한 그 소스는 다음 장소에 있다:
Site Directory File Name
ftp.kernel.org /pub/linux/utils/NIS+ libc-5.4.44-nsl-0.4.10.tar.gz
여러분은 http://www.suse.de/~kukuk/linux/nisplus.html 에서 더 많은 정보와 최신 버전의 소스를 얻을 수 있다.
중요사항 : NIS+ 클라이언트를 세팅하기 위하여 서버쪽에서 어떻게 되는지 나와 있는 솔라리스 NIS+ 문서를 읽어보라! 이 문서는 단지 클라이언트 쪽에서 무엇 을 하는지에 대하여만 나와있다!
새로운 glibc와 nis-tool들을 설치한 후에, NIS+ 서버의 새로운 클라이언트들 을 위하여 보증을 해라. portmap이 돌아가고 있다는 것을 확인해라. 그리고 여 러분의 리눅스PC가 NIS+ 서버와 같은 시간이 설정되었는지 체크를 하라. 안전 한 RPC를 위해, 보증이 유효한 약 3분정도 단지 하나의 작은 윈도우를 가진다. 모든 호스트에 xntpd를 실행시키는 좋은 방법이 있다. 이것을 한 후에 다음을 실행하라.
domainname nisplus.domain.
nisinit -c -H <NIS+ server>
아무런 옵션이 없는 시작파일을 초기화하기 위해, nisinit 맨 페이지를 참조하 라. domainname은 항상 리부트 후에 세팅 된다는 것을 명심하라. 만일 네트웍에 서 NIS+ 도메인 네임이 무엇인지 모르면, 여러분의 시스템/네트워크 관리자에게 문의하라.
이제 /etc/nsswitch.conf파일을 변경해야 한다. 단지 publickey뒤에 오는 서비 스는 nisnis밖에 없다는 것을 명심하라. ( "publickey: nisnis" )
그리고 keyserv를 실행시켜라. 명심할 것은 이것이 시스템이 부트될 때, portma p이 실행되고 나서 바로 처음으로 실행되는 데몬이라는 것이다. 시스템에서 roo t의 비밀키를 저장하기 위해, 다음과 같이 실행하라.
keylogin -r
(나는 여러분이 NIS+ 서버에 대한 새로운 호스트를 위해 publickey를 추가 했을
거라 기대한다?)
"niscat passwd.org_dir"은 패스워드 데이터베이스의 모든 엔트리를 나타내야 한다.
유저가 로긴을 했을 때, keyserv를 위해 각 유저의 비밀키를 세팅할 필요가 있 다. 이것은 "keylogin"이라 것에 의해 된다. 쉐도우 패키지에서의 로긴은 glibc 2.1에 의해 컴파일되어 있다면 알아서 세팅한다. PAM aware 로긴를 위하여, 여 러분은 NIS+를 지원하지 않는 pwdb가 아닌 pam_unix_auth 를 사용하기 위해, pam-keylogin-1.2.tar.gz를 설치하고 /etc/pam.d/login파일을 수정해야 한다. 예 를 들어:
#%PAM-1.0
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_keylogin.so
auth required /lib/security/pam_unix_auth.so
auth required /lib/security/pam_nologin.so
account required /lib/security/pam_unix_acct.so
password required /lib/security/pam_unix_passwd.so
session required /lib/security/pam_unix_session.so
네트워크 서비스 스위치( network service switch ) 파일 /etc/nsswitch.conf 는 /etc/host.conf파일이 호스트를 찾는 방법들을 결정하는 것과 같이, 어떤 정보가 요구 되어졌을때, 그것을 찾는 순서를 결정한다. 예를 들어서 다음 라 인을 보면,
hosts: files nisplus dns
이것은 호스트를 찾는 펑션에서 먼저 로컬의 /etc/hosts 파일에서 먼저 찾고, 그 다음 NIS+에 의해 찾고, 마지막으로 도메인 네임 서비스(/etc/resolv.conf 와 named)를 통해 찾는다. 이 경우 맞는 것을 못찾았을 경우 에러가 리턴된다.
다음은 NIS+를 위한 /etc/nsswitch.conf의 좋은 예이다.
#
# /etc/nsswitch.conf
#
# An example Name Service Switch config file. This file should be
# sorted with the most-used services at the beginning.
#
# The entry '[NOTFOUND=return]' means that the search for an
# entry should stop if the search in the previous entry turned
# up nothing. Note that if the search failed due to some other reason
# (like no NIS server responding) then the search continues with the
# next entry.
#
# Legal entries are:
#
# nisplus or nis+ Use NIS+ (NIS version 3)
# nis or yp Use NIS (NIS version 2), also called YP
# dns Use DNS (Domain Name Service)
# files Use the local files
# db Use the local database (.db) files
# compat Use NIS on compat mode
# [NOTFOUND=return] Stop searching if not found so far
#
passwd: compat
# for libc5: passwd: files nisplus
group: compat
# for libc5: group: files nisplus
shadow: compat
# for libc5: shadow: files nisplus
passwd_compat: nisplus
group_compat: nisplus
shadow_compat: nisplus
hosts: nisplus files dns
services: nisplus [NOTFOUND=return] files
networks: nisplus [NOTFOUND=return] files
protocols: nisplus [NOTFOUND=return] files
rpc: nisplus [NOTFOUND=return] files
ethers: nisplus [NOTFOUND=return] files
netmasks: nisplus [NOTFOUND=return] files
netgroup: nisplus
bootparams: nisplus [NOTFOUND=return] files
publickey: nisplus
automount: files
aliases: nisplus [NOTFOUND=return] files