Next Previous Contents

## 8. Установка сервера NIS

## 8.1 Программа-сервер ypserv

Данный документ описывает только установку сервера NIS "ypserv".

Сам сервер может быть найден здесь:

> `

>       Site               Directory                    File Name

>       ftp.kernel.org     /pub/linux/utils/net/NIS     ypserv-1.3.6.tar.gz

> `

Также неплохо посмотреть страничку http://www.suse.de/~kukuk/linux/nis.html для подробностей.

Установка сервера одна и та же как для традиционной NIS так и для NYS.

Скомпилируйте программное обеспечение, чтобы получить программы ypserv и makedbm. Вы можете настроить ypserv для использования файла securenet или с использованием tcp_wrapper. tcp_wrapper является более удобным, но большое количество людей имеют с ним проблемы. И некоторые файлы с настройками для tcp_wrappers могут привести к нехватке памяти. Если у вас проблемы с ypserv скомпилированным для tcp_wrapper, перекомпилируйте его для использования с файлом securenets. Команда ypserv --version скажет вам, какую версию вы имеете.

Если вы запустили ваш сервер как мастер, определите какие файлы нужны вам для доступа через NIS и затем добавьте или удалите соответствующие записи в правиле "all" в /var/yp/Makefile. Вы всегда должны просматривать Makefile и править Options в начале этого файла.

Есть одно большое различие между ypserv 1.1 и ypserv 1.2. Начиная с версии 1.2, дескрипторы файлов кэшируются. Это приводит к тому, что вы должны вызывать makedbm всегда с опцией -c, если вы создаете новые карты. Убедитесь, что вы используете новый /var/yp/Makefile от ypserv 1.2 или выше или добавьте флаг -c для makedbm в Makefile. Если вы этого не сделаете, ypserv будет продолжать использовать старые карты и не будет их обновлять.

Теперь отредактируйте /var/yp/securenets и /etc/ypserv.conf. Для подробностей, прочтите страницы руководства man на ypserv(8) и ypserv.conf(5).

Убедитесь, что portmapper (portmap(8)) запущен и запустите сервер ypserv. Команда

> `

>         % rpcinfo -u localhost ypserv

> `

должна выдать примерно следующее

> `

>         program 100004 version 1 ready and waiting
>         program 100004 version 2 ready and waiting

> `

Строка "version 1" может быть опущена в зависимости от версии ypserv и настроек, которые вы используете. Она необходима только если вы имеете старых клиентов NIS от SunOS 4.x.

Теперь сгенерируйте базу данных NIS (YP). На мастер-сервере запустите команду

> `

>         % /usr/lib/yp/ypinit -m

> `

На подчиненном сервере убедитесь, что ypwhich -m работает. Это означает, что ваш подчиненный сервер должен быть настроен как клиент NIS перед тем как вы запустите команду

> `

>         % /usr/lib/yp/ypinit -s masterhost

> `

для установки этого узла как подчиненного сервера NIS.

Вот теперь ваш сервер запущен.

Если вы имеете проблемы, вы можете запустить ypserv и ypbind в режиме отладки в другом терминале. Отладочные сообщения должны показать вам где произошла ошибка.

Если вам нужно обновить карту, запустите make в каталоге /var/yp на вашем мастер-сервере. Это приведет к обновлению карты и ее выталкиванию на подчиненные серверы, если ее исходный файл имеет более свежую дату. Пожалуйста не используйте команду ypinit для обновления карты.

Может быть вы захотите исправить crontab пользователя root *на подчиненном* сервере и добавить туда следующие строки:

> `

>           20 *    * * *    /usr/lib/yp/ypxfr_1perhour
>           40 6    * * *    /usr/lib/yp/ypxfr_1perday
>           55 6,18 * * *    /usr/lib/yp/ypxfr_2perday

> `

Тогда вы будете уверены, что большинство карт NIS обновлены, даже если какое-нибудь обновление утеряно, потому что подчиненный сервер был выключен во время выполнения обновления на мастер-сервере.

Вы можете добавить подчиненный сервер позднее. Во первых, убедитесь, что новый подчиненный сервер имеет права на подключение к мастер-серверу NIS. Затем запустите

> `

>         % /usr/lib/yp/ypinit -s masterhost

> `

на новом подчиненном сервере. На мастер-сервере добавьте имя нового подчиненного сервера в файл /var/yp/ypservers и запустите make в каталоге /var/yp для обновления карты.

Если вы хотите ограничить доступ пользователей к вашему серверу NIS, вы должны установить NIS сервер как клиент, запустив ypbind и добавить записи со знаком плюс в /etc/passwd _halfway_. Функции библиотеки будут игнорировать все обычные записи после первой записи NIS и будут получать остаток информации от NIS. Это способ обслуживания правил доступа NIS. Пример:

> `

>          root:x:0:0:root:/root:/bin/bash
>          daemon:*:1:1:daemon:/usr/sbin:
>          bin:*:2:2:bin:/bin:
>          sys:*:3:3:sys:/dev:
>          sync:*:4:100:sync:/bin:/bin/sync
>          games:*:5:100:games:/usr/games:
>          man:*:6:100:man:/var/catman:
>          lp:*:7:7:lp:/var/spool/lpd:
>          mail:*:8:8:mail:/var/spool/mail:
>          news:*:9:9:news:/var/spool/news:
>          uucp:*:10:50:uucp:/var/spool/uucp:
>          nobody:*:65534:65534:noone at all,,,,:/dev/null:
>          +miquels::::::
>          +:*:::::/etc/NoShell
>          [ All normal users AFTER this line! ]
>          tester:*:299:10:Just a test account:/tmp:
>          miquels:1234567890123:101:10:Miquel van Smoorenburg:/home/miquels:/bin/zsh

> `

Пользователь "tester" будет существовать, но у его интерпретатором команд будет /etc/NoShell. Пользователь miquels будет иметь нормальный доступ.

В противоположность этому, вы можете отредактировать файл /var/yp/Makefile и настроить NIS для использования другого файла паролей. На больших системах, файлы паролей и групп NIS обычно записываются в /etc/yp/. Если вы делаете это, то обычные инструменты администратора, которые работают с файлом паролей passwd, такие как chfn, adduser не будут работать корректно и вам понадобятся специальные инструменты.

Однако, yppasswd, ypchsh и ypchfn конечно же работать будут.

## 8.2 Программа-сервер yps

Для установки сервера NIS "yps" пожалуйста вернитесь к предыдущему параграфу. Сервер "yps" устанавливается сходным образом, _но_ он к нему нельзя применить те же инструкции в точности. "yps" не поддерживается автором и содержит некоторые дырки в безопастности. Лучше бы вам его не использовать.

Вы можете найти программное обеспечение "yps" по адресу:

> `

>       Site                  Directory                   File Name

>       ftp.lysator.liu.se    /pub/NYS/servers            yps-0.21.tar.gz
>       ftp.kernel.org        /pub/linux/utils/net/NIS    yps-0.21.tar.gz

> `

## 8.3 Программа rpc.ypxfrd

rpc.ypxfrd - используется для увеличения скорости передачи очень больших карт NIS от мастер-сервера NIS к подчиненным серверам. Если подчиненный сервер NIS получает сообщение, что имеется новая карта, то он запускает pxfr для того чтобы ее получить. ypxfr будет читать содержимое карты от мастер-сервера, используя функцию yp_all(). Этот процесс может занять несколько минут, когда карты очень большие.

Сервер rpc.ypxfrd увеличивает скорость процесса передачи путем предоставления подчиненным серверам NIS возможности просто копировать файлы карт с мастер-сервера вместо того, чтобы строить свои собственные карты "с нуля". rpc.ypxfrd использует основанный на RPC протокол передачи файлов, так что подчиненные сервера не нуждаются в построении новых карт.

rpc.ypxfrd может быть запущен через inetd. Но таким образом он запускается очень медленно, он должен бы запускаться ypserv. Запуск rpc.ypxfrd будет вам нужен только на мастер-сервере NIS.

## 8.4 Программа rpc.yppasswdd

Когда пользователи изменяют собственные пароли, база данных паролей NIS и предположительно другие базы данных NIS, которые зависят от нее должны быть обновлены. Программа "rpc.yppasswdd" это сервер, который управляет изменением паролей и гарантирует, что информация NIS будет вовремя обновлена. В настоящий момент rpc.yppasswdd интегрирован в ypserv. Теперь вам не нужны отдельные yppasswd-0.9.tar.gz или yppasswd-0.10.tar.gz, и вы больше не должны их использовать. rpc.yppasswdd в ypserv 1.3.2 имеет полную поддержку теневых паролей. yppasswd теперь часть yp-tools-2.2.tar.gz.

Запуск rpc.yppasswdd нужен вам только на мастер-сервере NIS. По умолчанию, пользователям не разрешается изменять их собственные имена или интерпретатор команд. Вы можете позволить им это используя опции -e chfn или -e chsh.

Если ваши файлы passwd и shadow находятся в каталоге отличном от /etc, то вам нужно использовать опцию -D. Например, если вы поместили их в каталог /etc/yp и хотите разрешить пользователям изменять их интерпретаторы команд, то вы должны запустить rpc.yppasswdd со следующими параметрами:

> `

>        rpc.yppasswdd -D /etc/yp -e chsh

> `

or

> `

>        rpc.yppasswdd -s /etc/yp/shadow -p /etc/yp/passwd -e chsh

> `

Больше ничего делать не надо. Вы только должны убедится, что rpc.yppasswdd использует те же файлы что и /var/yp/Makefile. Ошибки будут протоколироваться в syslog.

Next Previous Contents