Библиотека сайта rus-linux.net
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