Настройка UNIX и Linux для совместной работы

Узнайте о том, как обеспечить совместный доступ к системным базам данных и файловым системам из операционных систем Linux® и UNIX® с помощью информационной службы сети (Network Information Service, NIS) и сетевой файловой системы (Network File System, NFS). В последнем случае рассматриваются как прямые ссылки (direct links), так и средство автоматического монтирования (automounter). Несмотря на схожесть UNIX и Linux, между ними существуют некоторые различия, которые могут усложнить процесс интеграции этих операционных систем. Например, несмотря на то, что обе эти ОС используют одинаковую систему аутентификации, большинство систем являются автономными. Наладив обмен учетными данными, вы сможете использовать технологию единого входа (Single Sign-On, SSO) на любых серверах вашей сети.

Мартин Браун, внештатный автор, консультант

Мартин Браун (Martin Brown) пишет статьи уже более семи лет. Он является автором многочисленных книг и статей по различным темам. Его квалификация охватывает множество платформ и языков разработки - Perl, Python, Java™, JavaScript, Basic, Pascal, Modula-2, C, C++, Rebol, Gawk, Shellscript, Windows®, Solaris, Linux, BeOS, Mac OS X и т.д., а также Web-программирование, системное управление и интеграция. Мартин является внутренним экспертом (SME) компании Microsoft® и регулярно пишет для ServerWatch.com, LinuxToday.com и IBM developerWorks. Он также принимает участие в блогах Computerworld, The Apple Blog и на других сайтах. Связаться с ним можно через его Web-сайт.



15.05.2008

Обмен информацией через службу NIS

Информационная служба сети (NIS) была разработана компанией Sun Microsystems и была также известна под именем Yellow Pages. Системный механизм работы этой службы довольно прост и основан на конвертации системных баз данных, таких как /etc/hosts и /etc/passwd, в универсальный формат (в формат DBM, аббревиатура которого уже давно утратила свое значение).

Базы данных располагаются на основном NIS-сервере (NIS-мастере). Каждая отдельная база помещена в именованный домен, а общий доступ к этим базам осуществляется через RPC-интерфейс. Служба NIS работает с различными файлами, включая следующие:

  • passwd (а также файл /etc/shadow, если он используется)
  • groups
  • hosts
  • netmask
  • netgroup
  • automount
  • services
  • protocols
  • ethers
  • aliases (файл псевдонимов для почтовой службы)

Вторичные серверы (или slave-серверы – компьютеры, содержащие резервные копии баз данных) копируют опубликованные базы с основного сервера. NIS-клиенты запрашивают информацию с NIS-сервера по мере необходимости (например, при входе пользователя в систему) и никогда не хранят полученную информацию, поскольку привязаны к NIS-серверу при помощи ypbind. Схема взаимодействия серверов и клиентов NIS изображена на рисунке 1.

Рисунок 1. Схема взаимодействия участников NIS
Схема взаимодействия участников NIS

Все изменения, происходящие в базе данных NIS, передаются на slave-серверы автоматически в момент наступления, либо вручную при помощи команды yppush.

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


Выбор между NIS и NIS+

Основное различие между службами NIS и NIS+ заключается в том, что NIS+ поддерживает аутентификацию и шифрование при обмене данными между основными и вторичными NIS-серверами. Тем не менее, из-за требований безопасности служба NIS+ существенно сложнее в настройке и обслуживании. Помимо этого NIS+ расширяет систему имен, помещая базы данных в древовидную структуру объектов, а не в один простой домен, тем самым позволяя организовывать более сложные и масштабные распределения.

Обычно для любой стандартной среды возможностей службы NIS оказывается достаточно, и при правильном конфигурировании не создается угрозы безопасности сети, имеющей выход в Интернет. Службу NIS+ следует использовать только в тех окружениях, в которых частные сети более уязвимы, например, в университетах или распределенных конфигурациях, когда данные NIS передаются через публичные сети.


Настройка NIS-сервера

В системах Solaris, AIX® и HP-UX поддержка NIS включена по умолчанию. Дистрибутивы Linux® часто содержат NIS в качестве стандартного компонента, и библиотека glibc также включает в себя поддержку этой службы. Тем не менее, вы можете столкнуться с необходимостью установки дополнительного набора инструментов, необходимых для настройки и управления службой NIS. Для NIS-сервера под управлением Linux вам необходимо установить следующие пакеты:

  • ypserver
  • makedbm

После установки этих пакетов вам потребуется отредактировать поставляемый make-файл (как правило, /var/yp/Makefile). Этот файл содержит параметры конфигурации, которые будут использоваться для построения первоначальной базы данных YP. Вам будет необходимо отредактировать определение для правила all, перечислив все типы файлов, которые должны поддерживаться службой NIS. По умолчанию это правило включает поддержку всех файлов, как показано в листинге 1.

Листинг 1. Определение для правила all
all: passwd group hosts ipnodes ethers networks rpc services protocols \
     netgroup bootparams aliases publickey netid netmasks c2secure \
     timezone auto.master auto.home ageing \
     auth.attr exec.attr prof.attr user.attr audit.user

Вы можете удалить те файлы, с которыми вам не нужно работать - например, все файлы, за исключением passwd, group и hosts.

Теперь вы готовы к заполнению базы данных. Сначала задайте имя NIS-домена:

$ domainname mcslp.nis

На сервере под управлением Linux отредактируйте файлы /var/yp/securenets и /etc/ypserv.conf в соответствии с настройками ваших локальных сетей. Эти файлы определяют, какие компьютеры могут обмениваться информацией внутри вашего NIS-домена и получать доступ к ней.

Теперь выполните инициализацию базы данных:

$ ypinit -m

Команда ypinit выполняет за вас оставшуюся часть работы, используя make-файл для преобразования исходных файлов (например, /etc/passwd) в формат NIS.

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

$ cd /var/yp
$ make

Если вы хотите разрешить отдельным пользователям удаленно обновлять свои пароли входа в систему, убедитесь, что в системе запущен демон rpc.yppasswdd; он принимает клиентские запросы на прямое обновление базы данных NIS, при этом все изменения передаются через основной и дополнительные серверы NIS, и корректно принимаются всеми клиентскими компьютерами.


Настройка NIS-клиента

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

В операционной системе UNIX NIS-сервер определяется автоматически при вызове команды ypbind. В большинстве версий Linux вы должны задать список доступных NIS-серверов в файле /etc/yp.conf. Например, вы можете сделать это следующим образом:

ypserver 192.168.0.22

Основной процесс подключения клиента к NIS-серверу выглядит следующим образом:

  1. Указание NIS-домена: $ domainname mcslp.nis.
  2. Запуск демона portmap (сервера преобразования программных номеров RPC), если он еще не запущен: $/sbin/portmap.
  3. Создание каталога /var/yp, который будет использоваться для хранения служебной информации NIS.
  4. Запуск ypbind: $ /usr/sbin/ypbind.

Теперь проверьте соединение с NIS-сервером, запустив команду ypcat для выполнения прямого запроса к базе данных. Например, чтобы получить отсортированный по имени снимок файла passwd, выполните следующую команду:

$ ypcat passwd.byname

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


Файл nsswitch.conf

Как в Linux, так и в UNIX файл nsswitch.conf обычно используется для указания источников информации различного типа. Например, можно настроить систему на поиск данных о компьютерах с помощью DNS-запросов, в локальных файлах или с использованием службы NIS.

Помимо самих источников данных, в файле nsswitch.conf настраивается также и очередность их использования, которая может повлиять на выбор правильного источника, а также на способность восстановления вашей сети в случае возникновения каких-либо сбоев.

Форматом файла nsswitch.conf является список строк, состоящих из двух параметров: имя системной базы данных и соответствующий ей список источников данных, перечисленных в желаемом порядке использования. В листинге 2 приведен пример исходного файла nsswitch.conf; поиск информации производится в службах NIS и DNS, а также в локальных файлах.

Листинг 2. Исходные строки файла nsswitch.conf
passwd:      nis files
shadow:      nis files
group:       nis files

hosts:       nis dns files
networks:    nis dns files

Из листинга 2 видно, что поиск информации для базы passwd производится в базе данных NIS (если эта служба доступна). При входе пользователя в систему в первую очередь будет происходить обращение к таблицам NIS. Если служба NIS не сможет найти в своих таблицах указанное имя пользователя и возвратит ошибку, система перейдет к поиску информации в следующем указанном источнике – в нашем случае, в локальных файлах.

Следующие советы помогут вам правильно настроить и использовать файл nsswitch.conf:

  • Поиск в локальных файлах всегда должен производиться в самую последнюю очередь; особенно это касается таких баз, как passwd, shadow и hosts. Если вы не настроите такую очередность, компьютер может оказаться неработоспособным, поскольку в случае отказа службы NIS даже пользователь root не сможет войти в систему.
  • Убедитесь, что в перечисленных источниках содержатся все важные учетные записи и данные о компьютерах, а также прочая ключевая информация.
  • Если компьютер подключен к Интернету, то более эффективным способом разрешения Интернет-имен будет являться использование службы DNS, а не функции перенаправления NIS.

Если вы будете следовать этим рекомендациям, вы исключите возможность оказаться заблокированными вашей собственной системой.


Общий доступ к файлам через NFS

Сетевая файловая система (NFS) также была разработана компанией Sun Microsystems в качестве средства обмена файлами между различными компьютерами. Когда общий доступ к каталогу предоставлен с помощью NFS, вы можете монтировать этот каталог на другой машине так, как если бы он находился на ее локальном диске. Вся информация о безопасности, правах доступа к файлам и так далее реплицируется между NFS-клиентом и NFS-сервером. Поскольку для доступа к общим файлам NFS используются идентификаторы пользователей и групп, а также прочие сведения о пользователях, то удобнее всего передавать эту информацию через службу NIS.

В общем случае, прежде чем запускать NFS-сервер, вам нужно настроить общие каталоги. В ОС Linux для этого используется файл /etc/exports, в котором определяются общие каталоги, а также различные опции для этих каталогов (такие как права доступа). Например, чтобы предоставить общий доступ к каталогу /export/data только компьютерам вашей сети, вы можете использовать следующую строку:

/export/data *.mcslp.pri(rw,sync) *(sync)

Опция rw устанавливает права на чтение или запись для всех клиентских компьютеров вашей сети и доступ только на чтение, который является доступом по умолчанию, для всех других узлов. Опция sync обеспечивает синхронизацию данных файловой системы между удаленными точками монтирования и сервером.

Для предоставления общего доступа в системе Solaris используется файл /etc/dfs/dfstab, в котором вы указываете команды для каждого каталога. Например, вы можете предоставить общий доступ к каталогу /export/data с правами на чтение или запись для всех компьютеров с помощью следующей строки:

share -F nfs -o rw /export/data

Для предоставления общего доступа к каталогам в системе AIX используйте инструмент smit, а в системе HP-UX – инструмент SAM.

Во всех этих случаях после подготовки файлов и настройки необходимых параметров вы должны запустить службу NFS-сервера.

На клиентских компьютерах вам необходимо всего лишь запустить службу NFS-клиента. После этого вы можете монтировать файловую систему NFS при помощи команды mount, указывая через двоеточие имя сервера и полный путь к удаленному каталогу. Например:

$ mount bear:/export/data /mnt/data

Вы можете автоматически монтировать каталоги NFS во время загрузки компьютера с помощью файлов /etc/fstab или /etc/vfstab, использующими тот же самый формат строки. Однако для упрощения процесса монтирования и обеспечения наилучшей производительности вашего сервера лучше всего использовать систему автоматического монтирования.


Использование системы автоматического монтирования

В качестве дополнительной возможности NFS вы можете задействовать систему автоматического монтирования. Этот компонент автоматически монтирует каталоги при обращении к ним. Например, если у вас настроено автоматическое монтирование NFS-каталога /mnt/data, он автоматически будет смонтирован и станет доступным в тот момент, когда вы наберете следующую команду:

$ cd /mnt/data

Когда каталог перестает использоваться, происходит его автоматическое размонтирование. Автомонтировщик становится особенно полезным при работе с домашними каталогами пользователей: пользователь может войти в систему на любой машине и получить доступ к своему домашнему каталогу, который будет автоматически смонтирован с удаленного NFS-сервера.

Использование автомонтировщика не только упрощает монтирование удаленных каталогов с NFS-сервера, но также помогает снизить нагрузку на сервер, избавляя от ненужных взаимодействий с клиентскими компьютерами, не использующими ресурсы NFS.

Функция автоматического монтирования включена в различные версии ОС UNIX. Если вы работаете в ОС Linux, то прежде чем настраивать и запускать автомонтировщик, вы должны сконфигурировать поддержку этой функции в ядре и перезагрузить компьютер. Для настройки автомонтировщика вы должны сначала отредактировать файл etc/auto.master (или /etc/autofs/auto.master) – так называемую главную карту автомонтировщика. В этом файле определены наборы сопоставлений верхнего уровня и указывается, какие карты и в каких файлах должны использоваться для каталогов верхнего уровня. Например, следующие строки сопоставляют каталоги /home и /mnt двум другим картам:

/home /etc/autofs/auto.home
/mnt  /etc/autofs/auto.mnt

Затем в рамках карты каталога /mnt вы настраиваете его подкаталоги и соответствующие им NFS-ресурсы. В листинге 3 приведен фрагмент карты каталога mnt.

Листинг 3. Фрагмент карты каталога mnt
applications     atuin:/Volumes/Shared1/Applications
archiveprepare   atuin:/Volumes/Shared1/ArchivePrepare
backupprepare    atuin:/Volumes/Shared1/BackupPrepare
build            atuin:/Volumes/Shared1/Build
correspondence   atuin:/Volumes/Shared1/Correspondence
devprojects      atuin:/Volumes/Shared1/DevProjects
docarchive       atuin:/Volumes/Shared1/DocArchive
incoming         atuin:/Volumes/Shared1/Incoming
information      atuin:/Volumes/Shared1/Information

Так как приведенный выше фрагмент является картой каталога /mnt, то при обращении пользователя к каталогу /mnt/applications автомонтировщик монтирует сопоставленный ему NFS-каталог, в нашем случае – atuin:/Volumes/Shared1/Applications.

При работе в UNIX вам также нужно будет запустить службу автомонтировщика. В большинстве версий UNIX эта служба называется automount или automountd, тогда как во многих версиях Linux она называется autofs и запускается следующим образом:

/etc/init.d/autofs start

Синхронизация времени

При совместном использовании NIS/NIS+ и NFS неплохо убедиться, что на всех серверах установлено одинаковое время. Для служб NIS/NIS+ это критически важно, так как механизмы синхронизации и проверки актуальности баз данных основаны на использовании временных отпечатков. Если время на ваших компьютерах не будет синхронизировано, вторичные NIS-серверы могут перестать принимать информацию с основного NIS-сервера, а основной NIS-сервер может начать отклонять обновления баз данных.

Простейший способ выполнить синхронизацию – это использовать протокол сетевого времени (Network Time Protocol, NTP), который является встроенным либо дополнительно устанавливаемым компонентом большинства систем Linux, и все больше и больше используется в системах UNIX.

Ключевым компонентом после загрузки и компиляции пакета будет являться служба ntpd. Демон ntpd выполняется в фоновом режиме и может предоставлять информацию для синхронизации времени, а также автоматически обновлять время на локальной машине в соответствии со временем на сервере.

Если вы используете службу NIS, настройте основной NIS-сервер в качестве источника для синхронизации остальных компьютеров в сети. Сервер можно настроить как на использование собственных встроенных часов, так и на получение времени от одного из многих публичных серверов (при наличии подключения к Интернету). Например, такую услугу предоставляет мой Интернет-провайдер, и файл конфигурации моего основного NIS-сервера /etc/ntp.conf содержит имя NTP-сервера моего Интернет-провайдера:

server ntp0.zen.co.uk minpoll 12 maxpoll 17

Затем на каждом NIS-сервере и NIS-клиенте сети используется одинаковый файл /etc/ntp.conf, настроенный на получение информации о времени от основного NIS-сервера:

server atuin.mcslp.pri minpoll 12 maxpoll 17

После того, как обе системы настроены, запустите демон NTP на основном NIS-сервере, выполнив следующую команду:

/etc/init.d/ntp start

Повторите этот процесс на каждом вторичном NIS-сервере и на каждом NIS-клиенте.


Заключение

Совместный доступ к данным существенно упрощает процесс интеграции ваших UNIX и Linux систем. Если вы обеспечите совместный доступ к учетным данным, а также к другой пользовательской информации, ваши пользователи смогут входить в систему и работать на машинах UNIX и Linux, не задумываясь о необходимости запоминать несколько разных паролей. Настроив совместное использование данного функционала с функционалом NFS, вы можете предоставлять пользователям общий доступ к файлам. Если при этом вы используете автоматическое монтирование домашних каталогов, то независимо от операционной системы или компьютеров, за которыми работают пользователи, они смогут использовать свои файлы и ресурсы так, будто эти файлы расположены на локальном диске.

Ресурсы

Научиться

  • Оригинал статьи "Make UNIX and Linux work together" (EN).
  • В статье AIX and Linux Interoperability (EN) раздела IBM Redbook обсуждаются методы улучшения совместной работы AIX и Linux с использованием NIS, NFS и других технологий.
  • В статье Using the Network File System in AIX (EN) раскрываются основы файловой системы NFS.
  • Глава Understanding the automounter (EN) руководства "Solaris Advanced System Administrator's Guide" (EN) поможет вам правильно настроить и использовать систему автоматического монтирования практически в любой системе Linux и UNIX.
  • Managing NFS and NIS (EN) - отличное руководство по использованию служб NIS и NFS на самых различных платформах.
  • Следите за обновлениями и событиями в разделе developerWorks technical events and Webcasts (EN).
  • Хотите узнать больше? Раздел AIX и UNIX ресурса developerWorks содержит сотни статей и руководств всех уровней сложности для пользователей AIX и UNIX.

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux, AIX и UNIX
ArticleID=308122
ArticleTitle=Настройка UNIX и Linux для совместной работы
publish-date=05152008