Next Previous Contents

## 7. Что мне нужно для установки NIS+ ?

## 7.1 Программное обеспечение

Код клиента Linux NIS+ был разработан для GNU C library 2. Также имеется порт для версии Linux libc5, так как многие коммерческие приложения собраны с этой библиотекой и не могут быть перекомпилированы для использования glibc. Имеется несколько проблем с libc5 и NIS+: статические программы не могут быть связаны с ней и программы скомпилированные с этой библиотекой не работают с другими версиями libc5.

Вам нужно получить и скомпилировать библиотеку GNU C Library 2.1 для платформы Intel или GNU C Library 2.1.1 для 64bit платформ. В качестве базовой системы вам понадобится основанный на glibc дистрибутив Linux, такой как Debian 2.x, RedHat 5.x или SuSE Linux 6.x.

Для других дистрибутивов вам понадобится перекомпилировать компилятор gcc/g++, libstdc++ и ncurses. Для Redhat, вам понадобится сделать большое количество изменений в настройках PAM. Для SuSE Linux 6.0, вам понадобится перекомпилировать пакет shadow.

Клиент NIS+ может быть получен отсюда:

> `

>       Site             Directory                     File Name

>       ftp.funet.fi     /pub/gnu/funet                libc-*, glibc-crypt-*,
>                                                      glibc-linuxthreads-*
>       ftp.kernel.org   /pub/linux/utils/net/NIS+     nis-utils-19990223.tar.gz
>       ftp.kernel.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 пожалуйста следуйте инструкциям, которые идут вместе с исходными текстами. Вы можете найти исправленную версию libc5, основанную на NYS, и исходные тексты как замену стандартной libc5 здесь:

> `

>       Site               Directory                  File Name

>       ftp.kernel.org     /pub/linux/utils/net/NIS+  libc-5.4.44-nsl-0.4.10.tar.gz

> `

Вы должны также посмотреть http://www.suse.de/~kukuk/linux/nisplus.html для подробной информации и последних версиях исходных текстов.

## 7.2 Установка клиента NIS+

ВАЖНО: Для установки клиента NIS+ прочтите вашу документацию Solaris NIS+ которая говорит о стороне сервера. Этот документ описывает только то, что нужно сделать на стороне клиента!

После установки новой libc и nis-tools, создайте мандат для нового клиента на сервере NIS+. Убедитесь, что запущен portmap. Затем проверьте, чтобы ваш Linux PC имел то же самое время как и NIS+ сервер. По соображениям безопастности RPC, вы имеете только маленькое окно около 3-х минут, в котором созданные вами мандаты разрешены. Хорошо бы запустить xntpd на каждый узел. После этого, выполните команды

> `

>      domainname nisplus.domain.
>      nisinit -c -H <NIS+ server>

> `

для инициализации файла холодного старта. Прочтите страницу руководства по nisinit на предмет опций. Убедитесь, что имя домена будет всегда установлено после перезагрузки. Если вы не знаете какое у вас в сети имя домена NIS+, спросите у администратора вашей системы/сети.

Теперь вы должны изменить ваш файл /etc/nsswitch.conf. Убедитесь, что только после publickey стоит nisplus ("publickey: nisplus"), и ничего другого!

Затем запустите keyserv и убедитесь, что он будет всегда запускаться во время загрузки как первый демон после portmap. Запустите

> `

>      keylogin -r

> `

для записи root secretkey на вашей системе. (Я надеюсь, что вы добавили publickey для нового узла в NIS+ сервер?).

Команда "niscat passwd.org_dir" должна выдать вам все ваши записи в базе данных паролей.

## 7.3 NIS+, keylogin, login и PAM

Когда пользователь входит в систему, ему нужно установить его secretkey для keyserv. Это делается вызовом "keylogin". login из пакета shadow будет делать это для пользователя, если он был скомпилирован для glibc 2.1. Для login, основанном на PAM, вы должны установить pam_keylogin-1.2.tar.gz и изменить файл /etc/pam.d/login для использования pam_unix_auth, а не pwdb, который не поддерживает NIS+. Например:

> `

>      #%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

> `

## 7.4 Файл nsswitch.conf

Файл Переключателя Служб Имен /etc/nsswitch.conf определяет порядок поиска, который выполняется когда требуется определенный кусок информации, также как файл /etc/host.conf, который определяет способ выполнения поиска узлов. Например, строка

> `

>         hosts: files nis dns

> `

говорит, что функции поиска узлов должны сперва смотреть в локальный файл /etc/hosts, затем производить поиск через NIS+ и наконец использовать службу доменных имен (/etc/resolv.conf и демон named), и если нужный узел не найден, возвратить ошибку. Данный файл должен быть доступен на чтение для любого пользователя! Вы можете найти больше информации на станице руководства nsswitch(5) или nsswitch.conf(5).

Хороший файл /etc/nsswitch.conf для NIS+ это:

> `

>      #
>      # /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                 Use NIS+ (NIS version 3)
>      #       nis                     Use NIS (NIS version 2), also called YP
>      #       dns                     Use DNS (Domain Name Service)
>      #       files                   Use the local files
>      #       db                      Use the /var/db databases
>      #       [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

> `

Next Previous Contents