탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
![]() |
Oracle Solaris 11.1에서 이름 지정 및 디렉토리 서비스 작업 Oracle Solaris 11.1 Information Library (한국어) |
4. Oracle Solaris Active Directory 클라이언트 설정(작업)
특정 데이터베이스를 사용하도록 /var/yp/Makefile을 수정하는 방법
데이터베이스를 삭제하도록 /var/yp/Makefile을 수정하는 방법
NIS 및 DNS를 통한 시스템 호스트 이름 및 주소 조회를 구성하는 방법
10. LDAP 이름 지정 서비스에 대한 계획 요구 사항(작업)
11. LDAP 클라이언트를 사용하여 Oracle Directory Server Enterprise Edition 설정(작업)
NIS를 설치한 후 일부 맵은 자주 업데이트해야 하는 반면 다른 맵은 변경할 필요가 없다는 것을 발견할 수 있습니다. 예를 들어, passwd.byname 맵은 큰 회사의 네트워크에서 자주 변경될 수 있지만 auto_master 맵은 거의 변경되지 않습니다.
기본 NIS 맵에서 언급한 대로 기본 NIS 맵의 기본 위치는 /var/yp/domainname의 마스터 서버에 있습니다. 여기서 domainname은 NIS 도메인의 이름입니다. 맵을 업데이트해야 하는 경우 기본 맵인지 여부에 따라 두 가지 업데이트 절차 중 하나를 사용할 수 있습니다.
공급업체로부터 구매한 응용 프로그램에 포함된 맵
사이트에 맞게 생성된 맵
텍스트가 아닌 파일에서 생성된 맵
다음 절에서는 다양한 업데이트 도구를 사용하는 방법에 대해 설명합니다. 실제로 시스템이 이미 작동하여 실행 중인 후에 NIS 서버 세트를 변경하거나 기본 맵이 아닌 맵을 추가하는 경우에만 사용하도록 결정할 수 있습니다.
기본 세트와 함께 제공된 맵을 업데이트하려면 다음 절차를 사용합니다.
자세한 내용은 Oracle Solaris 11.1 관리: 보안 서비스의 지정된 관리 권한을 사용하는 방법을 참조하십시오.
이 파일은 /etc나 선택한 다른 디렉토리에 있을 수 있습니다.
# cd /var/yp # make mapname
make 명령은 해당 파일의 변경 사항에 따라 맵을 업데이트합니다. 또한 다른 서버에 변경 사항을 전파합니다.
다음 절에서는 기본 세트와 함께 제공된 맵의 업데이트를 완료한 후의 추가 절차에 대해 설명합니다.
맵이 변경된 후 Makefile은 yppush를 사용하여 새 맵을 슬레이브 서버로 전파합니다(Makefile에 NOPUSH가 설정되지 않은 경우). 이 작업을 위해 ypserv 데몬에 알리고 맵 전송 요청을 보냅니다. 슬레이브의 ypserv 데몬은 ypxfr 프로세스를 시작하고, 이 프로세스가 마스터 서버의 ypxfrd 데몬과 연결됩니다. 일부 기본 검사(예: 실제로 맵이 변경되었는지 여부)가 수행된 다음 맵이 전송됩니다. 슬레이브의 ypxfr이 yppush 프로세스로 응답을 보내 전송에 성공했는지 여부를 나타냅니다.
주 - 슬레이브 서버에 아직 없는 새로 만든 맵에서는 위 절차가 작동하지 않습니다. 슬레이브에서 ypxfr을 실행하여 새 맵을 슬레이브 서버로 보내야 합니다.
맵이 전파되지 않는 경우가 있으며 수동으로 ypxfr을 사용하여 새 맵 정보를 보내야 합니다. root crontab 파일을 통해 주기적으로 또는 명령줄에서 대화식으로 ypxfr을 사용하도록 선택할 수 있습니다. 이러한 접근 방법은 다음 절에서 설명합니다.
맵에는 여러 가지 변경 등급이 있습니다. 예를 들어, 기본 맵 중 protocols.byname과 기본 맵이 아닌 맵 중 auto_master 같은 일부 맵은 몇 달 동안 변경되지 않을 수 있습니다. 그러나 passwd.byname은 하루에 여러 번 변경될 수 있습니다. crontab 명령을 사용하여 맵 전송을 예약하면 개별 맵에 대해 특정 전파 시간을 설정할 수 있습니다.
맵에 적합한 비율로 주기적으로 ypxfr을 실행하려면 각 슬레이브 서버의 루트 crontab 파일에 적절한 ypxfr 항목이 포함되어야 합니다. ypxfr은 마스터 서버의 복사본이 로컬 복사본보다 최신인 경우에만 마스터 서버에 연결하고 맵을 전송합니다.
주 - 마스터 서버가 기본 -m 옵션을 사용하여 rpc.yppasswdd를 실행하면 누구든지 해당 yp 암호를 변경할 때마다 passwd 데몬이 make를 실행하고 passwd 맵이 재구성됩니다.
각 맵에 대해 개별 crontab 항목을 만드는 대신 루트 crontab 명령이 모든 맵을 주기적으로 업데이트하는 셸 스크립트를 실행하도록 하는 것이 좋습니다. 샘플 맵 업데이트 셸 스크립트는 /usr/lib/netsvc/yp 디렉토리에 있습니다. 스크립트 이름은 ypxfr_1perday, ypxfr_1perhour 및 ypxfr_2perday입니다. 사이트 요구 사항에 맞게 이러한 셸 스크립트를 수정하거나 바꿀 수 있습니다. 다음 예에서는 기본 ypxfr_1perday 셸 스크립트를 보여 줍니다.
예 7-1 ypxfr_1perday 셸 스크립트
#! /bin/sh # # ypxfr_1perday.sh - Do daily yp map check/updates PATH=/bin:/usr/bin:/usr/lib/netsvc/yp:$PATH export PATH # set -xv ypxfr group.byname ypxfr group.bygid ypxfr protocols.byname ypxfr protocols.bynumber ypxfr networks.byname ypxfr networks.byaddr ypxfr services.byname ypxfr ypservers
루트 crontab을 매일 실행할 경우 이 셸 스크립트는 하루에 한 번 맵을 업데이트합니다. 매주 한 번, 매달 한 번, 매 시간 한 번 등으로 맵을 업데이트하는 스크립트를 사용할 수도 있습니다. 그러나 맵을 자주 전파할 경우의 성능 저하에 주의해야 합니다. 자세한 내용은 crontab(1) 매뉴얼 페이지를 참조하십시오.
NIS 도메인에 대해 구성된 각 슬레이브 서버에서 root와 동일한 셸 스크립트를 실행합니다. 마스터 작동에 방해가 되지 않도록 한 서버에서 다른 서버로의 정확한 실행 시간을 변경합니다.
특정 슬레이브 서버에서 맵을 전송하려는 경우 셸 스크립트 내에서 ypxfr의 -h machine 옵션을 사용합니다. 다음은 스크립트에 배치하는 명령의 구문입니다.
# /usr/lib/netsvc/yp/ypxfr -h machine [ -c ] mapname
여기서 machine은 전송하려는 맵이 있는 서버의 이름이고, mapname은 요청된 맵의 이름입니다. 시스템을 지정하지 않고 -h 옵션을 사용하면 ypxfr은 마스터 서버에서 맵을 가져오려고 합니다. ypxfr을 실행할 때 ypserv가 로컬에서 실행되고 있지 않으면 ypxfr에서 현재 맵 지우기 요청을 로컬 ypserver로 보내지 않도록 -c 플래그를 사용해야 합니다.
-s domain 옵션을 사용하여 다른 도메인에서 로컬 도메인으로 맵을 전송할 수 있습니다. 이러한 맵은 도메인 간에 동일해야 합니다. 예를 들어, 두 도메인이 동일한 services.byname 및 services.byaddr 맵을 공유할 수 있습니다. 또는 제어를 강화하기 위해 rcp 또는 rsync를 사용하여 도메인 간에 파일을 전송할 수 있습니다.
ypxfr 명령을 호출하는 두번째 방법은 명령으로 실행하는 것입니다. 일반적으로 예외적인 상황에서만 이 방법을 사용합니다. 예를 들어, 테스트 환경을 만들기 위해 임시 NIS 서버를 설정하는 경우나 서비스가 중단된 NIS 서버를 신속하게 다른 서버와 일치시키려는 경우에 사용합니다.
ypxfr의 전송 시도와 결과는 로그 파일에 캡처될 수 있습니다. /var/yp/ypxfr.log 파일이 있으면 결과가 파일에 추가됩니다. 로그 파일의 크기는 제한되지 않습니다. 파일이 무한히 커지지 않도록 때때로 다음을 입력하여 파일을 비웁니다.
# cd /var/yp # cp ypxfr.log ypxfr.log.old # cat /dev/null > /var/yp/ypxfr.log
crontab에서 이러한 명령을 매주 한 번 실행하도록 할 수 있습니다. 로깅을 해제하려면 로그 파일을 제거합니다.
기본 맵이 아닌 맵을 업데이트하려면 다음을 수행해야 합니다.
해당 텍스트 파일을 만들거나 편집합니다.
새 맵이나 업데이트된 맵을 작성(또는 재구성)합니다. 맵을 작성하는 두 가지 방법이 있습니다.
Makefile을 사용합니다. Makefile을 사용하여 기본 맵이 아닌 맵을 작성하는 것이 좋습니다. Makefile에 맵에 대한 항목이 있는 경우 make name을 실행합니다. 여기서 name은 작성하려는 맵의 이름입니다. 맵에 Makefile 항목이 없는 경우 /var/yp/Makefile 수정 및 사용의 지침에 따라 새로 만듭니다.
/usr/sbin/makedbm 프로그램을 사용합니다. makedbm(1M) 매뉴얼 페이지에서 이 명령에 대해 자세히 설명합니다.
입력 파일이 없는 경우 makedbm을 사용하여 맵을 수정하는 다음 두 가지 방법이 있습니다.
makedbm -u 출력을 임시 파일로 재지정하고 파일을 수정한 다음 수정된 파일을 makedbm의 입력으로 사용합니다.
makedbm -u의 출력이 makedbm에 제공되는 파이프라인 내에서 작동하도록 합니다. 이 방법은 awk, sed 또는 cat 추가를 사용하여 역어셈블된 맵을 업데이트할 수 있는 경우에 적합합니다.
마스터에서 편집기나 셸 스크립트를 사용하여 텍스트 파일 /var/yp/mymap.asc를 만들었다고 가정합니다. 이 파일에서 NIS 맵을 만들고 home-domain 하위 디렉토리에 배치하려고 합니다. 이렇게 하려면 마스터 서버에서 다음을 입력합니다.
# cd /var/yp # makedbm mymap.asc home-domain/mymap
이제 mymap 맵이 마스터 서버의 home-domain 디렉토리에 있습니다. 슬레이브 서버에 새 맵을 배포하려면 ypxfr을 실행합니다.
mymap에 항목을 간단하게 추가할 수 있습니다. 먼저 텍스트 파일 /var/yp/ mymap.asc를 수정해야 합니다. 해당 텍스트 파일을 수정하지 않고 실제 dbm 파일을 수정하면 수정 내용이 손실됩니다. 그런 다음 위와 같이 makedbm을 실행합니다.
원본 텍스트 파일이 없는 경우 아래와 같이 makedbm에 대한 입력을 입력하여 키보드에서 NIS 맵을 만듭니다(Control-D로 끝내기).
ypmaster# cd /var/yp ypmaster# makedbm home-domain/mymap key1 value1 key2 value2 key3 value3
나중에 맵을 수정해야 하는 경우 makedbm을 사용하여 맵을 역어셈블하고 임시 텍스트 중간 파일을 만들 수 있습니다. 맵을 역어셈블하고 임시 파일을 만들려면 다음을 입력합니다.
% cd /var/yp % makedbm -u homedomain/mymap > mymap.temp
결과 임시 파일 mymap.temp에는 라인당 항목이 1개 있습니다. 텍스트 편집기를 사용하여 필요에 따라 이 파일을 편집할 수 있습니다.
맵을 업데이트하려면 다음을 입력하여 makedbm에 수정된 임시 파일의 이름을 지정합니다.
% makedbm mymap.temp homedomain/mymap % rm mymap.temp
그런 다음 root가 되고 다음을 입력하여 슬레이브 서버에 맵을 전파합니다.
# yppush mymap
앞의 단락에서는 makedbm을 사용하여 맵을 만드는 방법에 대해 설명했습니다. 그러나 실제로 수행해야 하는 거의 모든 작업은 시스템이 이미 작동하여 실행 중인 후에 NIS 서버 세트를 변경하거나 기본 맵이 아닌 맵을 데이터베이스에 추가하는 경우가 아니면 ypinit 명령과 /var/yp/Makefile을 사용하여 완료할 수 있습니다.
/var/yp 또는 다른 절차에서 Makefile을 사용하는지에 관계없이 목적은 동일합니다. 잘 구성된 새로운 dbm 파일 쌍이 마스터 서버의 맵 디렉토리에 배치되어야 합니다.