Скачиваний:
105
Добавлен:
01.05.2014
Размер:
154.62 Кб
Скачать

Обзор системы nis

Файлы данных NIS и большинство команд этой системы хранятся в одном каталоге: /var/yp, /usr/etc/yp или /etc/yp. В реальности некоторые системы используют два каталога: один для команд, другой для файлов данных. Все NIS-карты хранятся в виде пар ndbm-файлов. Один из них называется карта, .dir, а второй — карта .раg; хранятся оба они в подкаталоге NIS-каталога, указанном для домена NIS. Например, в домене cssuns могут быть следующие ndbm-файлы для карт /etc/passwd:

/usr/etc/yp/cssuns/passwd.bynaroe.dir

/usr/etc/yp/cseune/passwd .byname,pag

/usr/etc/yp/cssuns/passwd.byuid.dir

/usr/etc/yp/csaune/pasawd.byuid.pag

Для каждого поля, по которому можно произвести поиск в файле, должна быть создана отдельная карта. Поиск в файле passwd можно производить по имени и по UID, поэтому из него получаются две карты (четыре файла).

NIS-карты из обычных файлов создает команда makedbm.

Копирование карт с главного сервера на подчиненные осушествляется помощью команды ypxfr. Это "вытягивающая" команда; для того * она импортировала карты, ее нужно запускать на каждом подчиненном сервере. Отвечает на эти запросы демон с именем ypxfrd, который запускается на главном сервере. Команда ypxfr — интеллектуалка, она не пересылает карту, если та устарела. Подчиненные серверы иногда выполняют программу ypxfr для того, чтобы проверить, последние ли версии карт находятся в их распоряжении. С помощью демона cron можно управлять частотой этих проверок.

Демон yppush — это "проталкивающая" версия ypxfr, которая исполняется на главном сервере. Она, по сути дела, не пересылает никаких даанных, а просто заставляет каждый подчиненный сервер выполнить ypxfr. манда yppush задается в файле Makefile, находящемся в NIS-кат для того, чтобы обеспечить рассылку откорректированных карт на подчиненные серверы.

Есть специальная карта, ypaervers, которая не соответствует ни одному обычному файлу. Эта карта содержит список всех серверов данного домена и строится автоматически при его конфигурировании. Содержимое карты изучается каждый раз, когда главному серверу нужно разослать карты на вспомогательные серверы.

После начального конфигурирования единственными активными компонентами системы NIS остаются демоны ypserv и ypbind. Демон урserv работает только на серверах (и главном, и подчиненных), принимает запросы клиентов и отвечает на них, осуществляя поиск информации в ndbm-картах.

Демон ypbind работает на всех машинах NIS-домена, в том числе серверах. С-библиотека обращается к локальному демону ypbind вс раз, когда к ней произошло обращение с административным запросом. Демон ypbind находит в соответствующем каталоге ypserv и возвращает сведения о нем С-библиотеке, которая затем обращается непосредственно к этому серверу.

После того как ypbind найдет сервер, он будет пользоваться этим cepвером при всех запросах до тех пор, пока сервер не отключится или не возникнет какая-либо иная коммуникационная проблема. Демон ypbind на машине-сервере не предоставляет себе никаких льгот, поэтому серверы обязательно обращаются к самим себе. Механизм обработки запроса показан на рис. А.

Рис. Процедура обработки запроса в системе NIS

В некоторых обстоятельствах (например, когда все серверы, кроме одного, одновременно перезагружаются) клиенты могут "закрепиться" на одном сервере и отказаться уйти с него даже после того, как станут доступны остальные серверы. Это может значительно уменьшить быстродействие системы.

В NIS есть ряд второстепенных команд, которые используются для изучения карт, определения версий карт, используемых серверами, и управления привязкой клиентов к серверам. Полный перечень команд и демонов NIS дан в таблице. 18.3.

Программа

Описание

ypserv

Демон сервера NIS, запускается во время начальной загрузки

ypbind

Демон клиента NIS, запускается во время начальной загрузки

domainname

Устанавливает имя NIS-домена, в котором находится машина (выполняется во время начальной загрузки)

Ypxfr

Копирует текущую версию карты с главного сервера

Ypxfrd

Обслуживает запросы из ypxfr (прогоняется на главном сервере)

yppush

Заставляет подчиненные серверы корректировать их версии карты

makedbn

Создает ndbm-карту на основе обычного файла

ypmake^

Обновляет ndbm-карты на основе обычных файлов, которые из менились

ypinit

Конфигурирует машину как главный или подчиненный сервер

ypset

Заставляет ypbind установить соединение с конкретным сервером

ypwhich

Определяет, какой сервер использует текущая машина

yppoll

Определяет, какую версию карты использует сервер

ypcat

Выводит на экран значения, которые содержатся в NIS-карте

ypmatch

Выводит на экран элементы карты по заданному ключу

yppasswd

Изменяет пароль на главном сервере NIS

ypchfn

Изменяет информацию GECOS на главном сервере NIS

ypchsh

Меняет регистрационный shell на главном сервере NIS

yppasswdd

Сервер для yppasswd, ypchsh и ypchfn

ypupdated

Сервер для корректировки NIS-карт (им управляет inetd)

Созданне NIS-домена

NIS следует инициализировать на главном сервере, на подчиненных сервеpax и на каждом клиенте. Эта работа выполняется в два этапа. Во-первых, необходимо запустить ypinit на каждом сервере. Во-вторых, на каждой^ машине домена следует установить доменное имя из одного из системных файлов запуска и конфигурировать /etc/passwd и /etc/group на импорт данных NIS.

Конфигурирование серверов NIS

Для инициализации главного и подчиненных серверов домена применяется программа ypinit. На главном сервере используются следующие команды:

cd /var/yp /* The NIS directory, wherever it is */

domainname foo /* Name the new domain. */

ypinit - m /*Initialize as inaster server. */

/usr/etc/ypserv /*Start the NIS server. */

Флаг -m указывает ypinit на то, что она конфигурирует главный серверу эта программа сама предложит Вам ввести список подчиненных серверов, После запуска главного сервера необходимо инициализировать каждый подчиненный сервер, для чего запускается программа ypinit с флагом -s:

cd /var/yp

ypinit -s master /* Argument is master's hostname */

/usr/etc/ypserv

Команда ypinit -s создает локальную копию текущих данных главного (сервера; наличия в них файлов данных для какого-либо домена достаточно -для того, чтобы демон ypserv знал. что он должен обслуживать этот домен.

На каждом подчиненном сервере необходимо задать crontab-элементы, которые будут "вытягивать" свежие копии всех карт с главного сервера. \ Команда ypxfr карта, где карта — имя (например passwd.byuid),; пересылает указанную карту с главного сервера. Эта команда выполняется один раз для каждой карты. Карты, как правило, изменяются не одновременно и, если пропускная способность сети ограничена, вам может захотеться пересылать одни карты чаще, чем другие. В большинстве ситуаций речь может идти о пересылке всех карт один-два раза в день (лучше поздно вечером). Следующий сценарий пересылает все карты:

*! /bin/csh -f

set. mydomain = '/usr/bin/domainname'

cd /var/yp/$mydomain # the NIS directory

foreach map ('/usr/bin/is')

/usr/etc/ypxfr $map

end

В некоторых системах используются сценарии ypxfr_lperday, ypxfr_2perday и ypxfr_lperhour, которые пересылают NIS-карты с различной частотой

Соседние файлы в папке Лекции по сетям в формате doc