当前位置 - 무료 법률 상담 플랫폼 - 상표 양도 - 와이너리 관리 정보 시스템

와이너리 관리 정보 시스템

NIS 는 RPC 를 기반으로 하며 서버, 클라이언트 라이브러리 및 여러 관리 도구로 구성됩니다. 처음에 NIS 는 옐로우 페이지, YP 라고 불렸는데, 여전히 비공식적으로 이 서비스를 지칭하는 데 사용되었다. 한편, 옐로페이지는 영국 텔레콤의 상표이며, 영국 텔레콤은 줄곧 손에게 이름을 바꾸라고 요구했다. 상황이 발전함에 따라 일부 이름은 이미 사람들과 불가분의 관계에 있으므로 YP 는 ypserv, ypbind 등과 같은 NIS 관련 접두사로 계속 존재합니다.

오늘날 거의 모든 UN*X 에는 NIS 와 무료 구현 버전까지 포함되어 있습니다. 하나는 BSD 의 Net-2 릴리스이며, Sun 기부의 공용 도메인 참조 구현에서 유래한 것입니다. 이 버전의 클라이언트 라이브러리 코드는 GNU 의 libc 에 오랫동안 존재해 왔으며, 하이퍼바이저는 최근에야 SWENT ü MMMLER [1] 에 의해 Linux 로 마이그레이션되었다. 이 참조 구현에는 NIS 서버 프로그램이 없습니다. Tobias Reber 는 모든 도구와 서버를 포함하는 또 다른 NIS 패키지를 작성했습니다. 이 가방은 yps 라고 합니다. [2]

현재 [3] 은 (는) 일반과 손자의 "+"를 지원하는 완전히 다시 작성된 코드를 작성했습니다. NYS 는 NIS 도구 세트와 서버를 제공할 뿐만 아니라 완전히 새로운 라이브러리 함수 세트를 추가하여 결국 표준 libc 에 추가될 수 있습니다. 여기에는 현재 호스트 이름 확인을 host.conf 로 대체하는 새 설정 구성표가 포함됩니다. 다음은 이러한 함수의 특징에 대해 설명합니다.

이 장에서는 다른 두 개의 패키지가 아닌 NYS 에 초점을 맞추고 있습니다. 저는 이를 "전통적인" NIS 코드라고 부릅니다. 이러한 패키지 중 하나를 실제로 실행하려면 이 장의 지침이 충분하지 않을 수 있습니다. 자세한 내용은 Hal Stern 의 "NFS 와 NIS" ([스턴 92] 참조) 와 같은 NIS 에 대한 표준 (권위) 책을 찾으십시오.

현재 NYS 는 아직 개발 단계에 있으므로 네트워크 프로그램이나 로그인 프로그램과 같은 표준 Linux 도구는 NYS 의 구성 시나리오에 관심이 없습니다. NYS 가 주류 libc 에 통합 된 후 이러한 실행자가 모두 NYS 를 사용하도록 하려면 다시 컴파일해야 합니다. 이들 응용프로그램의 Makefiles 에서 libc 앞에 링커의 마지막 옵션으로 -lnsl 을 지정합니다. 이렇게 하면 표준 c 라이브러리가 아닌 libnsl-NYS 라이브러리에서 관련 함수가 연결됩니다.

10. 1 NIS 이해

NIS 는 키 값 쌍을 포함하는 매핑에 데이터베이스 정보를 저장합니다. 지도는 고객이 다양한 RPC 호출을 통해 정보를 검색할 수 있는 NIS 서버를 실행하는 중앙 호스트에 저장됩니다. 대부분의 경우 지도는 DBM 파일에 저장됩니다. [4]

맵 자체는 /etc/hosts 또는 /etc/passwd 와 같은 기본 텍스트 파일에서 생성됩니다. 일부 파일의 경우 각각 검색 키워드 유형에 해당하는 여러 매핑이 생성됩니다. 예를 들어 hosts 파일에서 호스트 이름과 IP 주소를 검색할 수 있습니다. 이에 따라 hosts.byname 및 hosts.byaddr 이라는 두 개의 NIS 맵이 생성됩니다. 표 10. 1 에는 일반 지도와 생성된 파일이 나와 있습니다.

마스터 파일 매핑

/etc/hosts

/etc/networks

/etc/ 암호

/etc/group

/etc/ 서비스

/etc/rpc

/etc/ 프로토콜

/usr/lib/aliaseshosts.by namehosts.byaddr

네트워크 이름 네트워크 이름 주소

Passwd.byname

Group.byname group.bygid

Services.by name services.by number

Rpc.byname rpc.bynumber

계약. 별칭 계약. 번호

메일. 별칭

표 10. 1 일부 표준 NIS 지도 및 해당 파일.

일부 NIS 패키지나 다른 소프트웨어에는 도움이 될 수 있는 다른 파일과 지도가 있습니다. 이러한 파일 및 매핑에는 일부 BOOTP 서버에서 사용될 수 있는 bootparams 맵 또는 현재 Linux 에 기능이 없는 파일 (예: ethers.byname 및 ethers.byaddr 맵) 과 같이 이 책에서 다루지 않는 응용 프로그램에 대한 정보가 포함될 수 있습니다.

일부 지도의 경우, 사람들은 보통 닉네임을 사용하는데, 닉네임은 매우 짧아서 쉽게 입력할 수 있다. NIS 도구에서 이해할 수 있는 닉네임의 전체 목록을 얻으려면 다음 명령을 실행합니다.

$ ypcat–x

NIS 지도 별명 번역표:

"passwd"->; Passwd.byname'

그룹'->; "그룹. 비 이름"

인터넷'->; "네트워크 주소"

"호스트"->; "호스트. 별칭"

"프로토콜"->; "합의. 번호별"

"서비스"->; "services.byname"

"별칭"->; "메일. 별명"

"에테르"->; Ethers.byname'

"RPC"->; "rpc.bynumber"

넷마스크'->; 넷마스크. byaddr'

"공개 키"->; Publickey.byname'

"netid"->; Netid.byname'

"passwd.adjunct"->; "passwd.adjunct.byname"

"그룹 조정"->; "그룹. 조정. by name"

"시간대"->; "timezone.byname"

NIS 서버는 전통적으로 ypserv 라고 불렸다. 중간 규모의 네트워크의 경우 일반적으로 단일 서버로 충분합니다. 대규모 네트워크는 서버와 라우터의 로드를 줄이기 위해 서로 다른 네트워크 세그먼트와 서로 다른 시스템에서 여러 서버를 실행해야 할 수 있습니다. 이들 서버 중 하나를 주 서버로 사용하고 다른 서버를 보조 서버로 사용하여 동기화됩니다. 지도는 주 서버에만 작성됩니다. 주 서버에서 모든 보조 서버로 배포합니다.

보시다시피, 우리는' 인터넷' 에 대해 모호하게 이야기하고 있습니다. 물론 NIS 가 가리키는 이 네트워크에는 NIS***: NIS 도메인을 통해 시스템 구성 데이터의 일부를 누리는 모든 호스트의 집합이라는 고유한 개념이 있습니다. 불행히도, NIS 도메인 이름은 우리가 DNS 에서 만난 도메인 이름과 공통점이 없다. 이 장의 모호성을 피하기 위해서, 나는 항상 내가 어떤 분야에 대해 이야기하고 있는지 지적할 것이다.

NIS 도메인에는 관리 기능만 있습니다. 도메인 내 모든 시스템 간에 * * * 공유 암호를 제외하고는 기본적으로 사용자에게 표시되지 않습니다. 따라서 NIS 도메인에 주어진 이름은 관리자에게만 적용됩니다. 일반적으로 로컬 네트워크의 다른 NIS 도메인 이름과 다를 경우 모든 이름을 사용할 수 있습니다. 예를 들어, 가상 양조장 관리자는 두 개의 NIS 도메인, 즉 양조장 자체와 양조장, 각각 brewery 와 winery 라는 이름을 지을 수 있습니다. 또 다른 매우 일반적인 시나리오는 단순히 DNS 도메인 이름을 NIS 의 도메인 이름으로 사용하는 것입니다. 호스트의 NIS 도메인 이름을 설정하고 표시하려면 dommainname 명령을 사용할 수 있습니다. 매개 변수 없이 호출되면 현재 NIS 도메인 이름을 인쇄합니다. 이 도메인 이름을 설정하려면 수퍼유저가 되어 다음을 입력해야 합니다.

# 도메인 이름 맥주 공장

NIS 도메인은 응용 프로그램이 쿼리할 NIS 서버를 결정합니다. 예를 들어 와이너리 호스트의 로그인 프로그램 (물론) 은 와이너리의 NIS 서버 (또는 둘 이상의 서버가 있는 경우) 에만 사용자의 암호 정보를 쿼리합니다. 양조장 호스트의 응용 프로그램은 양조장 서버만 질의합니다.

한 가지 더 해결해야 할 질문은 고객이 연결할 서버를 어떻게 알 수 있는가입니다. 가장 쉬운 방법은 보려는 서버의 호스트 이름을 제공하는 구성 파일을 갖는 것입니다. 그러나 이 접근 방식은 고객이 서버의 존재 여부에 따라 다른 서버 (물론 동일한 도메인의 서버) 를 사용할 수 없기 때문에 유연성이 떨어집니다. 따라서 기존 NIS 구현은 ypbind 라는 특수 데몬에 의존하여 NIS 도메인에서 적절한 NIS 서버를 감지합니다. 모든 응용 프로그램은 NIS 쿼리를 수행하기 전에 먼저 ypbind 에서 사용할 서버를 찾아야 합니다.

Ypbind 는 로컬 IP 네트워크에 브로드캐스트하여 서버를 탐지합니다. 첫 번째로 응답하는 서버는 기본적으로 가장 빠르며 후속 NIS 쿼리에 사용됩니다. 시간이 지나거나 서버가 작동하지 않을 경우 ypbind 는 실행 중인 서버를 다시 한 번 감지합니다.

이제 동적 바인딩에 대한 논쟁은 거의 필요하지 않다는 것입니다. 즉, ypbind 는 눈에 띄지 않는 NIS 서버이거나 악의적인 침입자일 수 있는 모든 응답자를 맹목적으로 신뢰합니다. 말할 필요도 없이, 당신이 NIS 에서 비밀번호 데이터베이스를 관리한다면, 이것은 매우 번거로운 일이 될 것입니다. 이 문제를 방지하기 위해 NYS 는 기본적으로 ypbind 를 사용하지 않고 구성 파일에서 서버의 호스트 이름을 가져옵니다.

NIS 및 NIS+

NIS 와 NIS+ 는 이름상 같은 목표를 가지고 있다는 것 외에는 공통점이 거의 없다. NIS+ 는 완전히 다른 방식으로 구축됩니다. 평면 이름 공간과 느슨하게 분리된 NIS 도메인 대신 DNS 와 유사한 계층 이름 공간을 사용합니다. 지도 대신 행과 열로 구성된 테이블을 사용합니다. NIS+ 데이터베이스에서 테이블의 각 행은 객체를 나타내고 열은 NIS+ 가 알고 관심을 갖는 객체의 속성을 나타냅니다. 주어진 NIS+ 도메인의 각 테이블은 상위 도메인의 테이블로 구성됩니다. 또한 테이블의 항목은 다른 테이블에 대한 링크를 포함할 수 있습니다. 이러한 기능을 통해 다양한 방법으로 정보를 구축할 수 있습니다.

기존 NIS 의 RPC 버전 번호는 2 이고 NIS+ 는 버전 3 입니다.

NIS+ 는 지금까지 널리 사용되지 않은 것 같은데 저도 잘 모르겠어요. 글쎄, 나는 이것에 대해 거의 아무것도 모른다. 이 때문에 여기서는 군말을 하지 않는다. 당신이 그것에 관심이 있고 더 많은 것을 알고 싶다면 손씨의 관리 매뉴얼 ([NISPlus]) 을 참고하세요.

10.3 클라이언트용 NIS

웹 응용프로그램 프로그래밍 또는 마이그레이션에 익숙한 경우 위에 나열된 많은 NIS 매핑이 C 라이브러리의 라이브러리 함수에 해당한다는 것을 알 수 있습니다. 예를 들어 passwd 정보를 얻으려면 일반적으로 지정된 사용자 이름 또는 숫자 사용자 id 에 해당하는 계정 정보를 반환하는 getpwnam(3) 및 getpwuid(3) 함수를 사용합니다. 일반적으로 이러한 함수는 /etc/passwd 와 같은 표준 파일에서 요청된 조회를 수행합니다.

그러나 이러한 함수의 NIS(NIS 인식) 기반 구현은 이러한 동작을 변경하고 RPC 호출을 활성화하여 NIS 서버가 사용자 이름 또는 id 를 쿼리할 수 있도록 합니다. 이 작업은 응용 프로그램에 완전히 투명합니다. 이 기능은 NIS 지도의 원본 파일을 "추가" 하거나 "교체" 할 수 있습니다. 물론 실제로는 파일을 수정하지 않고 응용 프로그램을 파일이 교체되거나 첨부된 것처럼 보이게 합니다.

기존 NIS 구현의 경우 교체할 지도와 원본 정보에 추가할 지도에 대한 몇 가지 규칙이 있습니다. 일부 지도 (예: passwd 지도) 는 passwd 파일을 hash 수정해야 하는데, 잘못하면 보안 취약점이 열립니다. 이러한 결함을 피하기 위해 NYS 는 특정 클라이언트 기능 세트가 원본 파일, NIS 및 NIS+, 사용 순서를 사용하는지 여부를 결정하는 일반적인 구성 체계를 가지고 있습니다. 이것은 이 장의 뒷부분에서 토론할 것이다.

10.4 NIS 서버 실행.

이렇게 많은 이론적 재잘재잘 쉴 새 없이 지껄이면서, 이제 우리는 실제 구성 작업을 하기 시작했다. 이 섹션에서는 NIS 서버 구성에 대해 살펴보겠습니다. 네트워크에 이미 NIS 서버가 실행 중이면 서버를 직접 설치할 필요가 없습니다. 이 경우 이 섹션을 안전하게 건너뛸 수 있습니다.

서버를 시험해 보고 싶은 경우 이미 네트워크에서 사용 중인 NIS 도메인 이름을 설정하지 않았는지 확인하십시오. 인터넷 서비스 전체를 마비시키고 많은 사람을 불행하게 하고 화나게 하기 때문이다.

현재 두 개의 기존 Linux 무료 NIS 서버가 있는데, 하나는 Tobias Reber 의 yps 패키지에 포함되어 있고 다른 하나는 피트 에릭슨의 ypserv 패키지에 포함되어 있습니다. NYS 를 사용하든 현재 libc 의 표준 NIS 클라이언트 코드를 사용하든 상관 없습니다. 이 책을 쓸 때 yps 에서 NIS 보조 서버가 처리하는 코드가 더욱 완벽해 보인다. 따라서 보조 서버를 포함하려는 경우 yps 가 더 나은 선택일 수 있습니다.

/usr/sbin 에 서버 프로그램 (ypserv) 을 설치한 후 서버 배포용 지도 파일을 저장할 디렉토리를 만들어야 합니다. Brewery 도메인에 대해 NIS 도메인을 설정하면 지도가 /var/yp/brewery 에 저장됩니다. 서버는 매핑 디렉토리가 있는지 검색하여 특정 NIS 도메인을 서비스하고 있는지 확인합니다. 일부 NIS 도메인에 대한 서비스를 비활성화한 경우 해당 디렉토리도 삭제해야 합니다.

조회 속도를 높이기 위해 지도는 일반적으로 DBM 파일에 저장됩니다. 이들은 makedbm (Tobias 용 서버) 또는 dbmload (Peter 용 서버) 라는 프로그램을 사용하여 마스터 파일에서 만들어집니다. 그것들은 서로 교환할 수 없다. 마스터 파일을 dbmload 에 의해 분석될 수 있는 형식으로 변환하는 데는 일반적으로 awk 또는 sed 의 기술이 필요합니다. 이는 입력에 다소 지루하고 기억하기 어렵습니다. 따라서 Perter Eriksson 의 ypserv 패키지에는 모든 작업을 수행하는 Makefile (ypMakefile) 이 포함되어 있습니다. 이 파일을 지도 디렉토리에 Makefile 파일로 설치하고 배포하려는 지도를 반영하도록 편집해야 합니다. 파일 시작 부분에서 ypserv 가 제공할 서비스를 나열하는 all 대상을 찾을 수 있습니다. 기본적으로 이 행은 다음과 같습니다.

All: ethers hosts networks protocols RPC services passwd group netid

예를 들어 ethers.byname 및 ethers.byaddr 매핑을 생성하지 않으려면 규칙에서 ethers 사전 필수 조건을 제거하면 됩니다. 당신의 설정을 테스트하기 위해 처음에는 한두 장의 지도만으로 충분합니다. 예를 들면 서비스와 같습니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 예술명언) * 지도.

Map 의 디렉토리 아래에서 Makefile 을 편집한 후 "make" 를 입력합니다. 이렇게 하면 지도가 자동으로 생성되고 설치됩니다. 마스터 파일을 변경할 때마다 매핑을 업데이트해야 합니다. 그렇지 않으면 네트워크에 변경 사항이 표시되지 않습니다.

다음 섹션에서는 NIS 클라이언트 코드를 구성하는 방법에 대해 설명합니다. 설치 설정이 작동하지 않을 경우 서버에 대한 요청이 있는지 확인해야 합니다. NYS 서버에 대해 -D 명령줄 플래그를 지정하면 콘솔에 들어오는 모든 NIS 쿼리에 대한 디버그 정보가 인쇄되고 결과가 반환됩니다. 이것들은 문제가 무엇인지 확인할 수 있는 힌트를 줄 것이다. Tobias 의 서버에는 이 옵션이 없습니다.

10.5 및 NYS 와 NIS 고객 구축.

이 장의 나머지 부분에서는 NIS 고객의 구성에 대해 논의합니다.

첫 번째 단계는 NIS 서비스에 사용할 서버를 NYS 에 알려주고 /etc/yp.conf 구성 파일에서 설정하는 것입니다. 와이너리 네트워크 호스트에 있는 간단한 샘플 파일의 경우 다음과 같습니다.

# yp.conf–nys 라이브러리의 yp 구성.

#

도메인 이름 와이너리

서버 vbardolino

첫 번째 문은 모든 NIS 고객에게 그들이 와이너리 NIS 도메인에 속한다는 것을 알려준다. 이 줄을 생략하면 NYS 는 도메인 이름 명령을 통해 시스템에 지정한 도메인 이름을 사용합니다. Server 문은 사용할 NIS 서버를 지정합니다. 물론 vbardolino 의 IP 주소는 hosts 파일에서 설정해야 합니다. 또한 IP 주소 자체를 server 문에 사용할 수 있습니다.

위에 표시된 양식에서 server 명령은 NYS 에게 현재 NIS 도메인에 관계없이 지정된 서버를 사용하도록 지시합니다. 그러나 서로 다른 NIS 도메인 내에서 컴퓨터를 자주 이동하는 경우 yp.conf 파일에 여러 도메인에 대한 정보를 저장할 수 있습니다. Server 문에 NIS 도메인 이름을 추가하여 여러 NIS 도메인 서버에 대한 정보를 얻을 수 있습니다. 예를 들어 랩톱에 대해 위의 샘플 파일을 다음과 같이 변경할 수 있습니다.

# yp.conf–nys 라이브러리의 yp 구성

#

서버 vbardolino 와이너리

서버 vstout 양조장

이렇게 하면 시스템 시작 시 domainname 명령을 통해 원하는 NIS 도메인을 설정하여 어느 도메인에서든 랩톱을 사용할 수 있습니다.

이 기본 프로파일을 만들고 읽을 수 있는지 확인한 후에는 첫 번째 테스트를 실행하여 서버에 연결할 수 있는지 확인해야 합니다. 서버에서 배포한 모든 매핑 (예: hosts.byname) 을 선택하고 ypcat 도구를 사용하여 검색해 보십시오. Ypcat 은 다른 모든 NIS 관리 도구와 마찬가지로 /usr/sbin 에 있어야 합니다.

# ypcat 호스트. 별칭

Vbeaujolais.linus.lxnet.org vbeaujolais

Vbardolino vbardolino.linus.lxnet.org

191.72.1.1플라저 vlager.linus.lxnet.org

Vlager.linus.lxnet.org 프라그라드

191.72.1.2 vstoutvstout.linus.lxnet.org

191.72.1.3 담수 계곡 vale.linus.lxnet.org

Vchianti.linus.lxnet.org vchianti

결과 출력은 위에 표시된 내용과 유사해야 합니다. "어떤 서버의 서버 도메인에 바인딩할 수 없습니다" 라는 오류 메시지가 나타나면 설정한 NIS 도메인 이름이 yp.conf 의 서버와 일치하지 않거나 어떤 이유로 서버를 찾을 수 없습니다. Ping 후, 호스트에 대해 ping 을 수행할 경우 정확한 결과가 생성되는지, 그리고 실제로 NIS 서버를 실행하고 있는지 확인합니다. Rpcinfo 를 사용하여 후자를 검증할 수 있습니다. 이렇게 하면 다음과 같은 출력이 생성됩니다.

# rpcinfo–u serverhostypserv

프로그램 100004 버전 2 준비 완료, 대기 중

올바른 지도를 선택합니다.

NIS 서버에 연결할 수 있는지 확인한 후 NIS 지도로 바꾸거나 추가할 구성 파일을 결정해야 합니다. 일반적으로 호스트 및 암호 조회 기능에 NIS 매핑을 사용합니다. 전자는 BIND 를 사용하지 않을 때 특히 유용합니다. 후자는 모든 사용자가 NIS 도메인의 모든 시스템에서 자신의 계정에 로그인할 수 있도록 합니다. 이를 위해서는 일반적으로 NFS 를 통해 모든 호스트 간에 중앙/홈 디렉토리를 공유해야 합니다. 이에 대해서는 10.7 절에서 자세히 설명합니다. Services.byname 과 같은 다른 지도는 그다지 눈에 띄지 않지만 설치한 네트워크 응용프로그램에서 표준 서비스 파일에 없는 서비스 이름을 사용하는 경우 편집 작업을 절약할 수 있습니다.

일반적으로 조회 함수에서 로컬 파일을 사용하고 NIS 서버에 문의할 때 몇 가지 자유 선택이 필요합니다. NYS 를 사용하면 함수가 이러한 서비스에 액세스하는 순서를 구성할 수 있습니다. 이는 이름 서비스 스위치를 참조하는 /etc/nsswitch.conf 파일에 의해 제어되며 이름 서비스로 제한되지 않습니다. NYS 에서 지원하는 모든 데이터 조회 함수에는 사용할 서비스를 지정하는 행이 포함되어 있습니다.

서비스의 정확한 순서는 데이터 유형과 관련이 있습니다. Services.byname 의 매핑에는 로컬 서비스 파일의 서로 다른 항목이 필요하지 않습니다. 더 많은 항목을 포함할 수 있습니다. 따라서 먼저 로컬 파일을 쿼리하고 서비스 이름을 찾을 수 없을 때는 NIS 만 찾는 것이 좋습니다. 반면 호스트 이름 정보는 매우 자주 변경될 수 있으므로 DNS 또는 NIS 서버는 항상 매우 정확한 정보를 가져야 하며 로컬 hosts 파일은 DNS 및 NIS 를 사용할 수 없는 경우에만 백업으로 사용됩니다. 이 경우 로컬 파일을 마지막으로 조회할 수 있습니다.

다음 예에서는 위에서 설명한 대로 gethostbyname(2), gethostbyaddr(2) 및 getservbyname(2) 함수를 구성하는 방법을 보여 줍니다. 그들은 차례대로 나열된 서비스를 시험해 볼 것이다. 한 검색이 성공하면 결과가 반환되고, 그렇지 않으면 다음 서비스를 시도합니다.

# small sample /etc/nsswitch.conf

#

호스트: NIS DNS 파일

서비스: 파일 NIS

Nsswitch.conf 파일에 항목을 포함할 수 있는 전체 서비스 목록은 다음과 같습니다. 실제로 조회되는 지도, 파일, 서버 및 객체는 항목 이름에 따라 다릅니다.

Nisplus 또는 nis+

이 도메인에 NIS+ 서버를 사용합니다. 서버의 위치는 /etc/nis.conf 파일에서 구할 수 있습니다.

Nis 는 해당 도메인의 현재 NIS 서버를 사용합니다. 조회된 서버의 위치는 이전 섹션에 표시된 대로 yp.conf 파일에 설정됩니다. Hosts 항목의 경우 hosts.byname 및 hosts.byaddr 매핑을 질의합니다.

Dns 는 DNS 이름 서버를 사용합니다. 이 서비스 유형은 호스트 항목에만 유용합니다. 검색할 이름 서버는 여전히 표준 resolv.conf 파일에 의해 결정됩니다.

파일 로컬 파일 (예: /etc/hosts 파일) 을 호스트 항목으로 사용합니다.

Dbm 은 /var/DBM 에 있는 DBM 파일에서 정보를 찾습니다. 파일에 사용된 이름은 NIS 지도에 해당합니다.

현재 NYS 는 hosts, networks, passwd, group, shadow, gshadow, services, protocols, nsswitch.conf 항목을 지원합니다 앞으로 더 많은 항목을 추가할 것이다.

그림 10. 1 은 nsswitch.conf 의 또 다른 기능을 보여 주는 보다 완전한 예를 보여 줍니다. NIS 또는 DNS 데이터베이스에서 필요한 항목을 찾을 수 없는 경우 hosts 항목의 [not for 즉, NYS 는 NIS 및 DNS 서버에 대한 호출이 다른 이유로 실패한 경우에만 로컬 파일 검색을 계속합니다. 따라서 로컬 파일은 시작 시에만 사용되며 NIS 서버가 종료되면 백업으로 사용됩니다.

# /etc/nsswitch.conf

#

호스트: NIS DNS [NOTFOUND=return] 파일

네트워크: NIS [NOTFOUND=return] 파일

서비스: 파일 NIS

프로토콜: 파일 NIS

Rpc: 파일 NIS

그림10.1nsswitch.conf 샘플 파일.

10.7 비밀번호 및 그룹 사용.

NIS 의 주요 응용 프로그램 중 하나는 NIS 도메인의 모든 호스트에서 사용자 및 계정 정보를 동기화하는 것입니다. 이 경우 일반적으로 작은 로컬 /etc/passwd 파일 하나만 저장하며, 이 파일에는 NIS 맵에서 얻은 사이트 전체 정보가 추가됩니다. 그러나 nsswitch.conf 에서만 서비스에 대한 NIS 조회를 활성화하는 것만으로는 충분하지 않습니다.

NIS 설명 암호 정보를 참조할 때 먼저 로컬 passwd 파일에 있는 모든 사용자의 디지털 사용자 id 가 NIS 서버의 사용자 id 와 일치하는지 확인해야 합니다. 네트워크의 다른 호스트에서 NFS 볼륨을 로드하는 등 다른 용도로도 필요합니다.

/etc/passwd 또는 /etc/group 의 디지털 id 가 maps 의 디지털 id 와 다를 경우 해당 사용자에게 속한 모든 파일의 파일 소유권을 조정해야 합니다. 먼저 passwd 및 group 에서 uid 및 GID 를 새 값으로 변경해야 합니다. 그런 다음 새로 변경한 사용자에게 속한 모든 파일을 찾아 마지막으로 해당 파일의 소유권을 변경합니다. News 의 이전 id 가 9 이고 okir 의 id 가 103 이라고 가정하면 다른 값으로 변경됩니다. 그런 다음 다음 명령을 실행할 수 있습니다.

# find/-uid 9–인쇄 및 gt; /tmp/uid.9

# find/-uid103–인쇄 > /tmp/uid. 103

# cat /tmp/uid.9 | xargs chown 뉴스

# cat/tmp/uid.103 | xargs chown okir

파일의 소유권을 변경하기 전에 새로 설치된 passwd 파일에 대해 이러한 명령을 실행하고 모든 파일의 이름을 수집하는 것이 중요합니다. 파일의 그룹 소유권을 업데이트하려면 유사한 명령을 사용합니다.

이렇게 하면 시스템의 uid 및 GID 값이 NIS 도메인에 있는 다른 모든 호스트의 값과 일치합니다. 다음 단계에서는 nsswitch.conf 에 사용자 및 그룹 정보에 대한 NIS 조회를 지원하는 구성 행을 추가합니다.

#/etc/nsswitch.conf–암호 및 그룹 처리

Passwd: NIS 파일

그룹: NIS 파일

이렇게 하면 사용자가 로그인을 시도할 때 로그인 명령 및 기타 유사한 모든 명령이 먼저 NIS 지도를 조회한 다음 검색이 실패할 경우 로컬 파일 사용을 반환합니다. 일반적으로 로컬 파일에서 모든 사용자를 삭제하고 루트 계정과 mail 과 같은 일반 계정만 남겨 둡니다. 이는 일부 주요 시스템 작업에서 uid 를 사용자 이름에 매핑해야 할 수도 있고 그 반대의 경우도 마찬가지이기 때문입니다. 예를 들어 관리를 위한 cron 작업은 su 명령을 실행하여 일시적으로 뉴스가 되거나 UUCP 하위 시스템이 상태 보고서를 전송할 수 있습니다. News 및 uucp 에 로컬 passwd 파일에 항목이 없는 경우 NIS 를 사용할 수 없는 동안 이러한 작업이 크게 실패합니다.

여기에 주의해야 할 두 가지가 있습니다. 한편으로는 위에서 설명한 설정은 util-linux 패키지에 포함된 그림자 암호가 없는 로그인에만 적용됩니다. NIS 에서 그림자 비밀번호를 사용하는 복잡성은 아래에서 설명합니다. 반면 login 명령은 passwd 파일에 액세스하는 유일한 명령이 아닙니다. 많은 사람들이 거의 항상 사용하고 있는 ls 명령을 참조하십시오. 긴 목록이 생성될 때마다 ls 는 파일의 사용자와 그룹의 기호 이름을 표시합니다. 즉, 발견한 각 uid 및 GID 에 대해 NIS 서버를 한 번 쿼리합니다. 로컬 네트워크가 차단되면 작업이 심각하게 지연됩니다. 또는 더 나쁜 것은 NIS 서버가 동일한 물리적 네트워크에 없는 경우 라우터를 통해 데이터를 전송해야 한다는 것입니다.

아직 끝나지 않았습니다. 사용자가 비밀번호를 변경하려고 하면 어떻게 되는지 상상해 보세요. 일반적으로 새 암호를 읽고 로컬 passwd 파일을 업데이트하는 passwd 를 실행합니다. NIS 에서는 이 파일이 더 이상 로컬에 존재하지 않기 때문에 불가능합니다. 그러나 사용자가 NIS 에 로그인할 때 비밀번호를 변경하고자 하는 옵션은 아닙니다. 따라서 NIS 는 현재 NIS 에서 유사한 작업을 수행할 수 있는 yppasswd 라는 혼합 대체 passwd 를 제공합니다. 서버 호스트의 암호를 변경하기 위해 RPC 를 통해 해당 호스트의 yppasswdd 데몬에 연락하고 업데이트된 암호 정보를 제공합니다. 일반적으로 다음과 같은 방법으로 일반 프로그램에 yppasswd 를 설치합니다.

# CD /bin

# mv 암호. 이전

# ln yppasswd 비밀번호

또한 서버에 rpc.yppasswdd 를 설치하고 rc.inet2 에서 시작해야 합니다. 이렇게 하면 NIS 로 인한 왜곡을 사용자에게 효과적으로 숨길 수 있습니다.

10.8 그림자를 지원하는 NIS 사용.

지금까지 섀도우 로그인 프로그램 그룹을 사용하는 사이트에는 NIS 지원이 없습니다. Shadow program group 의 저자인 John F. Haugh 는 최근 GNU library 의 GPL 보호 shadow 라이브러리 함수 버전을 comp.sources.misc 에 발표했습니다. NIS 에 대한 지원은 있지만 완전하지는 않습니다. 이러한 함수는 에 추가되지 않았습니다 반면 NIS 를 통해 /etc/shadow 에서 정보를 게시하는 것은 shadow 구성 요소의 목적에 위배됩니다.

NYS 암호 조회 기능은 shadow.byname 매핑이나 이러한 매핑을 사용하지 않지만 NYS 는 로컬 /etc/shadow 파일의 투명한 사용을 지원합니다. 지정된 로그인과 관련된 정보를 찾기 위해 getpwnam 의 NYS 구현을 호출하면 nsswitch.conf 의 passwd 항목으로 지정된 도구가 검색됩니다. Nis 서비스는 단순히 NIS 서버의 passwd.byname 맵에서 이 이름을 찾습니다. 파일 서비스는 /etc/shadow 가 있는지 확인하고 있는 경우 열려고 합니다. 존재하지 않거나 사용자에게 루트 권한이 없는 경우 /etc/passwd 에서만 사용자 정보를 찾는 기존의 처리 방법으로 돌아갑니다. 그러나 그림자 파일이 존재하고 열 수 있는 경우 NYS 는 그림자에서 사용자의 비밀번호를 추출합니다. Getpwuid 함수도 이런 방식으로 구현됩니다. 이렇게 하면 NYS 로 컴파일된 실행 파일이 로컬 그림자 구성 요소의 설치를 투명하게 처리합니다.

10.9 는 기존 NIS 코드를 사용합니다.

현재 표준 c 라이브러리의 클라이언트 코드를 사용하면 NIS 클라이언트 구성이 약간 다를 수 있습니다. 한편으로는 구성 파일에서 정보를 가져오는 대신 ypbind 데몬을 사용하여 실행 중인 서버를 브로드캐스팅하고 쿼리합니다. 따라서 시작 중에 ypbind 실행을 시작해야 합니다. NIS 도메인을 설정하고 RPC 포트 매퍼를 시작한 후에 호출해야 합니다. 이제 위와 같이 ypcat 를 호출하여 서버가 작동하는지 테스트합니다.

최근 NIS 에 대한 버그 보고서가 많이 있는데, 오류 메시지는 "clntudp _ create: RPC: port mapper failure–RPC: impossible to receive" 라고 적혀 있다. 이는 ypbind 와 라이브러리 함수 간에 정보를 바인딩하는 통신 (통신) 방식이 호환되지 않게 변경되었기 때문입니다. NIS 도구에 대한 최신 소스 프로그램을 얻고 다시 컴파일하면 이 문제를 해결할 수 있습니다. [5]

마찬가지로 NIS 정보를 로컬 파일의 정보와 병합할지 여부와 방법을 결정하는 기존 NIS 방법도 NYS 에서 사용하는 방법과 다릅니다. 예를 들어 NIS 암호 매핑을 사용하려면 /etc/passwd 맵에 다음 행을 포함해야 합니다.

+:*:O:O:::

이렇게 하면 조회 함수가 NIS 지도를 "삽입" 할 수 있는 종료 위치가 표시됩니다. /etc/group 에 비슷한 행을 삽입하면 (마지막 두 개의 콜론 삭제) group 에 대해 같은 작업이 수행됩니다. * 지도. 호스트를 사용하기 위해서. * maps 에서 배포한 지도는 host.conf 파일에서 순서 행만 변경하면 됩니다. 예를 들어 NIS, DNS 및 /etc/hosts 파일 (이 순서대로) 을 사용하려면 이 행을 로 변경해야 합니다.

Yp 바인딩 호스트 주문

현재 기존의 NIS 구현은 다른 지도를 지원하지 않습니다.