 | Конфигурация NIS
Когда надо использовать NIS
Большая часть утилит, связанных с NIS, все еще имеют префикс yp, из-за того, что она была первоначально известна как "Sun Yellow Pages"; проблемы с использованием торговой марки вынудили сменить имя на NIS. NIS используется, когда нужно совместно использовать информацию, такую как пользователи и группы (содержимым /etc/passwd и /etc/group, соответственно), внутри сети, предлагая пользователям права доступа на любой машине внутри домена NIS.
NIS действует способом, аналогичным тому, как DNS определяет домены, где распределена информация, и разрешает master и slave серверам иерархически распределять информацию внутри домена. Фактически, NIS можно использовать вместо DNS, путем распределения информации о доменном имени, обнаруженной в /etc/hosts, но на практике так делают редко. NIS присуща определенная гибкость, так что любой тип информации может быть, в принципе, помещен в базу данных NIS (которая имеет формат DBM, и хотя утилита makedbm из пакета NIS сервера преобразовывает простые файлы в этот формат, как правило, "за сценой").
Также существует служба, которая называется NIS+, предназначенная заменить NIS, включая шифрование данных и идентификацию; однако NIS+ не имеет обратной совместимости с NIS и не является широко используемым.
Перед тем, как начать
Для запуска любой из утилит NIS, необходимо запустить демона /sbin/portmap, который переводит номера программ RPC в номера портов протокола TCP/IP (или UDP/IP), поскольку клиенты NIS делают вызова RPC. Ьольшинство дистрибутивов Linux запускают /sbin/portmap в своих скриптах инициализации системы, однако следует проверить, что этот демон запущен, с помощью % ps -ax | grep portmap.
Если он еще не выполняется, установите /sbin/portmap и внесите его в скрипты запуска вашей системы.
Утилиты клиента NIS (демон ypbind)
Клиент NIS содержит утилиты ypbind, ypwhich, ypcat, yppoll и ypmatch. Демон ypbind должен быть запущен от root, и обычно он запускается одним из скриптов запуска системы (хотя это и не обязательно).
Другие утилиты зависят от служб ypbind, но выполняются на пользовательском уровне. Старые версии ypbind рассылают по локальной сети запрос на соединение, но это позволяет злонамеренному NIS-серверу отвечать на запрос и давать клиентам неправильную имформацию о пользователях и группах. Предпочтитается с помощью файла /etc/yp.conf настраивать определенные серверы, к которым может подключиться ypbind. Когда настроено несколько серверов (или когда, несмотря на опасность, используется рассылка), ypbind может переключаться между серверами каждые 15 минут, в зависимости от того, кто из них откликается быстрее всего. Эти разные сервера должны быть связаны друг с другом как master/slave, клиенту не нужно ни знать не заботиться об этом. Например, конфигурация ypbind может иметь такой вид:
Listing 3. /etc/yp.conf
ypserver 192.168.2.1
ypserver 192.168.2.2
ypserver 192.168.1.100
ypserver 192.168.2.200
|
Перед запуском /usr/sbin/ypbind, следует задать вашей сети доменное имя NIS. Оно может быть любым именем, на использование которого настроен NIS, и, вообще говоря, должно отличаться от доменного имени. Это доменное имя NIS задается примерно так: % ypdomainname my.nis.domain.
Утилиты для клиента NIS (другие конфигурации)
Если вы желаете использовать NIS для поиска доменного имени, следует изменить /etc/host.conf так, чтобы включить NIS в порядок поиска; например, чтобы проверить имя сначала в /etc/hosts, затем в NIS, а затем в DNS:
Listing 4. Изменение порядка lookup
% cat /etc/host.conf
order hosts,nis,bind
|
Для подключения NIS-распределенных пользователей, следует изменить клиентский файл /etc/passwd, добавив туда +::::::.
Информация базы данных NIS ведет себя как шаблон для попыток входа с такой "незаполненным" содержимым. При желании можно настроить информацию о пользователе, например, так:
Listing 5. Подробный /etc/passwd
+user1:::::::
+user2:::::::
+user3:::::::
+@sysadmins:::::::
-ftp
+:*::::::/etc/NoShell
|
Это даст разрешение на вход для user1, user2 и user3, а также всем членам сетевой группы sysadmin, и обеспечивает хранение учетных записей всех пользователей в базе данных NIS.
Источники NIS настаиваются в /etc/nsswitch.conf. Имя этого файла предполагает, что он предназначен строго для сервера имен, однако там описывается разные типы данных. В основном эта конфигурация описывает порядок, в котором происходит поиск источников информации. Имя nis в этой последовательности означает, что информацию получают с NIS-сервера; имя files значит, что нкжно использовать соответствующий локальный файл конфигурации. Имя dns используется для опции hosts.
Кроме того, можно указать, что делать, если начальные источники не содержат требуемой информации: return означает отказ (а если NIS еще доступен, continue значит, что нужно попробовать обратиться за данными к следующему источнику). Например:
Listing 6. /etc/nsswitch.conf
passwd: compat
group: compat
shadow: compat
hosts: dns [!UNAVAIL=return] files
networks: nis [NOTFOUND=return] files
ethers: nis [NOTFOUND=continue] files
protocols: nis [NOTFOUND=return] files
rpc: nis [NOTFOUND=return] files
services: nis [NOTFOUND=return] files
|
Утилиты пользователя NIS-клиента
Утилиты ypwhich, ypcat, yppoll, и ypmatch используются на пользовательском уровне для запросов информации NIS:
- ypwchich выдает имя NIS-сервера.
- ypcat выдает значения всех ключей базы данных NIS.
- yppoll выдает версию и master server карты NIS.
- ypmatch выдает значения одного или более ключей из карты NIS.
За более подробной информацией по каждой утилите обратитесь к соответствующим man-страницам.
Утилиты сервера NIS (ypinit, ypserv)
Для предоставления клиентам баз данных NIS NIS-сервер использует демона ypserv, который сконфигурирован файлом /etc/ypserv.conf. Как уже упоминалось, внутри домена можно запускать два NIS-сервера, master и slave. Набор баз данных NIS инициализируется на master сервере (только во время первого запуска; после этого используется make -C /var/yp) с помощью команды: % /usr/lib/yp/ypinit -m.
slave сервер в действительности -- просто NIS-клиент, который получает базы данных от master сервера и выполняет ypserv. Чтобы скопировать информацию с master сервера на локально запущенный slave сервер, выполняют % /usr/lib/yp/ypinit -s my.nist.domain.
На master сервере, базы данных NIS составляется из данных, размещенных в (некоторых из) следующих знакомых конфигурационных файлов:
- /etc/passwd,
- /etc/group,
- /etc/hosts,
- /etc/networks,
- /etc/services,
- /etc/protocols,
- /etc/netgroup,
- /etc/rpc.
То, какие базы данных экспортируются, задается в /var/yp/Makefile, который также распространяет изменения при новой сборке.
Slave серверы оповещаются (посредством программы yppush) о любых изменениях в картах NIS, если они пересобираются, и автоматически возвращают необходимые изменения, чтобы синхронизировать свои базы данных. NIS-клиентам не требуется делать этого, поскольку они непрерывно общаются с NIS-сервером и считывают информацию, хранящуюся в его DBM базах данных.
|  |