Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

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