Оригинальный документ доступен по адресу:
http://www.eng.auburn.edu/users/rayh/solaris/NIS+_FAQ.html
Дата: Июль 30, 1999
Знаками + отмечены новые элементы.
* отмечены элементы в которые внесены изменения.
Ваши дополнения/изменения можете отослать по адресу: Ray W. Hiltbrand (Ray.W.Hiltbrand@Eng.Auburn.EDU)
Перевод Сергея Карташова.
NIS+ FAQ
1.0: Введение в NIS+
1.1: Объяснение основ NIS+ Объектов
2.0: Отладка NIS+
2.1: Проблемы авторизации
2.2: Проверка таблиц NIS+
2.3: Использование утилиты snoop
2.4: Проблемы производительности
3.0: Общие "Хау Ту"
3.1: Как подготовить ваш сайт для NIS+
3.2: Как установить Root NIS+ Master
*3.3: Как установить NIS+ Client
3.4: Как установить Root NIS+ Replica
3.5: Как установить Subdomain NIS+ Master
3.6: Как установить Subdomain NIS+ Replica
*3.7: Как сконфигурировать Root Server после изменения IP адреса
3.7a: Как сконфигурировать Root Server после изменения IP адреса
(альтернативный (старый) вариант)
3.8: Как добавить пользователя в группу Admin
3.9: Как поменять NIS+ пароль пользователя
3.10: Как поменять NIS+ пароль root'а
3.11: Как администрировать NIS+ Credentials
3.12: Как администрировать группы NIS+
3.13: Как администрировать таблицы NIS+
3.14: Как проверить таблицы NIS+
3.15: Как модифицировать таблицы NIS+
3.16: Что нужно делать при регулярном администрировании NIS+
3.17: Как удалить NIS+
3.18: How to define the printer table
3.19: Как удалить реплику
3.20: Как переинициализировать Coldstart файл
+3.21: Как получить dump таблицы cred
+3.22: Как сделать backup/recover NIS+ объектов
+3.23: Как перевести NIS+ root реплику в root мастер сервер
4.0: Некоторые Часто Задаваемые Вопросы
4.1: Разные вопросы
4.2: Проблемы при установке NIS+
4.3: Проблемы при авторизации пользователя
+4.4: Как разрешить проблему "Unable to Authenticate NIS+ server"
4.5: NIS+ Lookup проблемы
5.0: Patches
5.1: Solaris 2.3 NIS+ Patches
5.2: Solaris 2.4 NIS+ Patches
5.3: Solaris 2.5[.1] NIS+ Patches
5.4: Solaris 2.6 NIS+ Patches
*5.5: Solaris 7 NIS+ Patches
6.0: Ссылки
6.1: Важные страницы Man
6.2: Документы Sunsolve
6.2.1: FAQs
6.2.2: Infodocs
6.2.3: SRDBs
6.3: Образовательный цент Sun
6.4: Документация Solaris
6.5: Документация по администрированию NIS+ других фирм
6.6: RFCs
1.0: Введение в NIS+
NIS+ расшифровывается как Network Information Service Plus. Он был
разработан на смену NIS, и является сервисом имен в OS Solaris по-умолчанию.
NIS+ может предоставлять ограниченную поддержку для NIS клиентов
посредством работы в режиме YP-совместимости.
NIS+ в основном был разработан для преодоления проблем, которые не
решались с помощью NIS.
Важно заметить, что на самом деле нет особой связи между NIS+ и NIS.
Совокупность команд и общая структура NIS+ отличаются от NIS.
Синтаксис команд в NIS+ также другой, нежели в NIS.
NIS+ был разработан "с нуля".
В NIS+ выше уровень секретности за счет использования дополнительного
метода авторизации. Пользователи все еще будут иметь стандартный
LOGIN PASSWORD, который дает им вход в систему. Кроме того, они
также будут иметь SECURE RPC PASSWORD или NETWORK PASSWORD.
(Network пароли хранятся в виде криптованных записей в NIS+ таблице,
называемой 'cred' и называются 'мандатами' или 'credentials', которые
далее в тексте будут упоминаться как 'мандаты'. - прим. перевод.)
Этот новый пароль необходим для фактического доступа к NIS+ и
именно он обеспечивает новый уровень секретности.
Обычно пользовательские LOGIN PASSWORD и NETWORK PASSWORD совпадают,
и пользователь будет автоматически иметь доступ ко всем функциональностям
NIS+ после входа в систему. Однако, если они разные, то пользователь
будет должен исполнить команду KEYLOGIN и ввести свой NETWORK PASSWORD,
чтобы получить доступ к NIS+.
Имеется огромное количество программ, связанных с NIS+. Наиболее
важные рассматриваются в этом документе. Для более подробного и детального
ознакомления с командами относящимися к NIS+, читайте ANSWERBOOK или MAN.
Из специально упомянутых - NIS+ демоны:
RPC.NISD и NIS_CACHEMGR это стандартные NIS+ демоны. Они должны
исполняться на каждом NIS+ сервере и клиенте.
1.1: Объяснение основ NIS+ Объектов
NIS+ объекты - это структурные элементы, используемые для построения
и определения NIS+ пространства. Имеется 5 основных объектов NIS+.
Объекты всегда отделяются точками.
ОБЪЕКТЫ-ДИРЕКТОРИИ: Похожи на систему директорий UNIX тем, что они
могут содержать один или более объектов таких, как: таблицы, группы,
отдельные записи (entry) или линки.
Объекты-директории составляют перевернутую древовидную структуру,
в которой корневой (root) домейн находится наверху, а ветви поддомейнов
располагаются по направлению к низу. Они используются для разделения
пространства NIS+ на различные части. Каждый главный объект-директорий
будет содержать домейновые объекты-директории org_dir и groups_dir.
Org_dir содержит объекты-таблицы для данного домейна, groups_dir
содержит объекты административной группы NIS+.
Пример ОБЪЕКТА-ДИРЕКТОРИИ:
Sun.Com.
org_dir.Sun.Com.
groups_dir.Sun.Com.
ОБЪЕКТЫ-ТАБЛИЦЫ: Подобны NIS таблицам (maps). В них хранится различная
информация о сети. Таблицы могут содержать ноль или более ОБЪЕКТОВ-ЗАПИСЕЙ.
Имеется 17 предопределенных объектов-таблиц. Таблицы могут администрироваться
с помощью команд 'nistbladm' или 'nisaddent'. Объекты-записи формируют
строки в таблице (ряды).
Пример ОБЪЕКТА-ТАБЛИЦЫ:
Passwd.org_dir.Sun.Com.
Hosts.org_dir.Sun.Com.
Пример ОБЪЕКТА-ЗАПИСИ:
[name=user1],passwd.org_dir.Sun.Com.
ОБЪЕКТЫ-ГРУППЫ: Это группы пользователей-администраторов пространства NIS+.
Они предоставляют права на модификацию объектов NIS+ на групповом принципе.
Администрируются группы с помощью команды 'nisgrpadm'.
Пример ОБЪЕКТА-ГРУППЫ:
admin.groups_dir.Sun.Com.
ОБЪЕКТЫ-ЛИНКИ: Это указатели на другие объекты. Они подобны символическим
линкам в файловой системе. Обычно указывают на таблицу или запись в таблице.
Администрируются с помощью команды 'nisln'.
2.0: Отладка NIS+
Перед началом решения проблем, связанных с NIS+, Вы должны быть уверены,
что на Вашей системе установлены все рекомендованные патчи.
В частности патчи ядра должны соответствовать текущему patch level,
и все системы должны иметь одинаковый patch rev.
2.1: Проблемы авторизации
Большинство проблем в NIS+ связано с авторизацией. Если у Вас исполняется
rpc.nisd на уровне секретности 2, Вы можете использовать программу 'niscat'
для определения, может ли пользователь авторизоваться:
%%%% /usr/bin/niscat passwd.org_dir
Если пользователь может видеть закодированные значения паролей в
столбце 'passwd', то он может авторизоваться. Если же он видит в этом поле *NP*,
то у него не хватает прав на чтение этого столбца таблицы. В этом случае
Вы должны исполнить 'keylogin' и переавторизовать пользователя.
Если это работает, то пользователь должен просто исполнить 'chkey',
чтобы синхронизовать свои login и network пароли.
Если keylogin все еще не дает возможности авторизоваться пользователю,
вероятно, что его мандаты не установлены корректно.
Вы можете проверить, имеет ли пользователь правильно установленные
мандаты просмотром cred таблицы:
%%%% /usr/bin/niscat cred.org_dir
Вы можете создать мандаты для пользователя с помощью команды 'nisclient':
%%%% /usr/lib/nis/nisclient -c username
Если имеются credential проблемы, то весьма вероятно, что они
связаны с мандатами самой машины.
Если пользователь с заведомо корректными значениями мандатов тем не менее
не может авторизоваться на какой-то машине, Вы, вероятно, захотите
установить NIS+ клиента на ней вновь, как это описано в Секции 3.3.
2.2: Проверка таблиц NIS+
Некоторые проблемы NIS+ могут быть связаны с тем, что необходимая информация
отсутствует в таблицах. Вы можете проверить содержимое таблиц с помощью
различных команд.
niscat будет выводить полное содержимое таблицы:
%%%% /usr/bin/niscat passwd.org_dir
Вы можете также посмотреть свойства объектов в таблице:
%%%% /usr/bin/niscat -o passwd.org_dir
Это может быть весьма полезным, так как может показать Вам, имеет
ли таблица какие-нибудь необычные права, которые могут ограничивать
доступ.
nismatch можно использовать для поиска информации в таблице:
%%%% /usr/bin/nismatch -h joe passwd.org_dir
niscat и nismatch обращаются непосредственно к таблицам NIS+.
getent, с другой стороны, будет просматривать таблицы в порядке,
определенном в файле /etc/nsswitch.conf.
Типично команда 'getent' выглядит следующим образом:
%%%% getent passwd joe
Она будет искать пользователя 'joe' в различных таблицах passwd (локальных
и NIS+). В типичном случае, она будет просматривать файлы в первую
очередь, а затем NIS+. Если Вы обнаружили, что 'getent' и 'nismatch' дают
разные результаты, проверьте состояние файла /etc/nsswitch.conf.
Возможно, сервис, который указан в nsswitch.conf первым, дает другое
значение. возможно также, что NIS+ вовсе не присутствует в Вашем nsswitch.conf.
2.3: Использование утилиты 'snoop'
Если Вы имеете периодические проблемы, 'snoop' оказывается полезным
для их обнаружения. Чтобы использовать 'snoop' корректно, Вы должны
запускать его на не вовлеченной в проблему машине. То есть, если Вы
имеете клиента с периодическими проблемами с NIS+, Вы должны исполнять
'snoop' на машине в той же подсети, но она не должна быть ни клиентом,
ни сервером NIS+:
unrelated-machine# snoop problem-machine
Это будет сообщать Вам обо всех пакетах входящих в и выходящих из
изучаемой машины. Вы должны искать NIS+ пакеты, обращая особое внимание
на ошибки. Если Вы заметите нечто наподобие повторяющихся ошибок,
полезно посмотреть, с каким именно сервером "разговаривал" Ваш клиент
в это самое время. Возможно, один из Ваших серверов имеет плохую,
либо старую информацию.
2.4: Проблемы производительности
Некоторые проблемы NIS+ могут влиять на производительность системы.
Может получиться, что серверы окажутся перегруженными.
Вы можете также получить сообщение "NIS+ Server Unreachable", когда
Ваша сеть будет перегружена. Для идентификации таких проблем в
дальнейшем можно использовать команды 'snoop' и 'netstat', однако
Настройка Производительности (Perfomance Tuning) не входит в список
услуг, обеспечиваемых SunServicе'ом.
3.0 Общие "Хау Ту"
3.1: Как подготовить ваш сайт для NIS+
Перед настройкой НИС+ необходимо выполнить начальное планирование,
включающее: определение аппаратных и программных требований,
определение имени домена, уровня секретности и планирование иерархии домена.
Обычно для средних и больших доменов Вам нужна OS Solaris 2.3, либо выше,
от 32 до 64 Мб оперативной памяти и около 128 Мб swap.
Размер /var/nis должен быть достаточным для хранения примерно 20 Мб.
Все эти требования можно найти в Administering Name Services Manual
(см. Раздел 7.4).
Примечание: Приведенные здесь требования не есть догма, подразумеваются
минимальные требования для конкретной службы, то есть требования к памяти и
дисковому пространству зависят от задач в комплексе и от достижений в области
HARDWARE.
Имя домена для root-сервера должно быть как минимум второго
урочня. То есть имена доменов вида "xyz." не поддерживаются,
а корректным именем домена является имя вида "xyz.com.".
Примечание: понятия доменов в NIS+ и DNS отличаются как в
смысловом выражении, NIS+ много шире и объемнее, так и в начертательном:
NIS+ domain DNS domain
----------- ----------
abba.com. abba.com
^
|
+-- это не опечатка и точка служит для отличия
NIS+ domain от DNS.
Другая вещь, требующая внимания - это уровень секретности. По-умолчанию
уровень секретности равен 2. Если Вы хотите иметь безопасное окружение,
Вы должны исполнять NIS+ с уровнем секретности 2. Однако, если у Вас в сети
имеется SunOS(другой unix) клиент, который будет обслуживаться NIS+ сервером,
то NIS+ необходимо исполнять в режиме YP-совместимости(NIS), что снижает
уровень секретности. Вы должны также подумать о правах доступа для
пользователей и группы администраторов.
Вы должны изучить важные NIS+ понятия такие, как различие между
login password и network password. Это очень важно при решении
проблем авторизации.
И наконец, когда Вы будете готовы, для создания и конфигурирования
NIS+ рекомендуется использовать быстрые установочные скрипты.
Например, для создания root сервера используйте скрипт 'nisserver',
для создания клиентов используйте скрипт 'nisclient'. Эти скрипты
легки в использовании и уменьшают вероятность допустить ошибку.
use and reduce chances for errors. Следующие Разделы кратко излагают
использование этих скриптов.
3.2: Как установить Root NIS+ Master
Чтобы установить root сервер зайдите суперюзером на соответствующую
машину и исполните скрипт 'nisserver' для создания домена root:
root-server# /usr/lib/nis/nisserver -v -r -d domain_name
(где domain_name - Ваш NIS+ домен, и не забудьте также в конце имени
поставить точку '.', например: xxx.yyy.zzz. )
Впоследствии, Вы, вероятно, пожелаете заполнить таблицы NIS+ из
комплекта ASCII файлов. Хорошая идея - создать отдельную директорию
и редактировать файлы, необходимые для генерации таблиц там.
Например, создайте директорию /var/tmp/nisfiles и скопируйте в нее
файлы из /etc, и затем редактируйте их там. Вы, вероятно, захотите
отредактировать passwd файл, например, потому, что Вам нужны только
записи об обычных пользователях в passwd таблице NIS+.
Ниже приводится список стандартных таблиц NIS+, которые Вы можете
пожелать включить при заполнении таблиц NIS+ (хотя, нет никакой
необходимости, чтобы они все были включены):
aliases
auto_home
auto_master
bootparams
cred
group
hosts
netgroups
netmasks
networks
passwd
protocols
rpc
services
timezone
Для заполнения таблиц войдите в директорию, где находятся отредактированные
файлы и исполните скрипт 'nispopulate':
root-master# cd /var/tmp/nisfiles
root-master# /usr/lib/nis/nispopulate -v -F
Важно заметить, что при этом network password, созданный в таблице
мандатов одинаков для всех пользователей и имеет значение "nisplus".
Впоследствии они должны быть заменены на что-нибудь более секретное.
Каждый обычный пользователь должен исполнить 'keylogin' и затем
выполнить команду 'chkey' и ввести новый network password.
Строго рекомендуется, чтобы login password и network password были
одинаковыми. В NIS+ login явно исполняет 'keylogin' и, если network
password совпадает с login password, то пользователю не нужно
дополнительно исполнять 'keylogin' для авторизации.
Когда формирование таблиц NIS+ закончится, Вам необходимо перезагрузить
Ваш сервер. Когда он загрузится, Вы можете проверить корректность
работы NIS+ с помощью стандартных NIS+ команд:
root-master%%%% /usr/bin/nisls
root-master%%%% /usr/bin/niscat passwd.org_dir
3.3: Как установить NIS+ Client
Чтобы установить NIS+ клиента, во-первых зайдите суперюзером на
мастер-сервер и убедитесь, что в таблице hosts NIS+ содержится
запись для данного клиента. Если нет, то добавьте ее с помощью
утилиты 'admintool'. После этого исполните скрипт 'nisclient'
для создания мандатов для клиентской машины:
root-master# /usr/lib/nis/nisclient -v -d domain_name -c client_machine
(где domain_name - Ваш NIS+ домен, а and client_machine - имя Вашей
клиентской машины)
Не пугайтесь, если 'nisclient' сообщит, что мандаты уже существуют
для клиентской машины.
Далее, зайдите суперюзером на машину-клиент и исполните скрипт
'nisclient' для ее инициализации:
client# /usr/lib/nis/nisclient -v -i -h master_machine -a master_ip -d
domain_name
(где master_machine имя мастер-сервера Вашего NIS+ домена, master_ip -
его IP-адрес и domain_name - имя Вашего NIS+ домена).
client# cp /etc/nsswitch.nisplus /etc/nsswitch.conf
(Вам может потребоваться изменить 'host' строку в файле /etc/nsswitch.conf,
если Вы используете DNS.)
3.4: Как установить Root NIS+ Replica
После того, как требуемая машина была подготовлена, как клиент (см.Раздел 3.3),
запустите NIS+ демон:
root-replica# /usr/sbin/rpc.nisd
Далее, исполните на root-мастере скрипт 'nisserver' следующим образом:
root-master# /usr/lib/nis/nisserver -v -R -d domain_name -h replica_machine
(где domain_name - Ваш NIS+ домен, а replica_machine - имя Вашей машины-реплики).
В заключение, исполните 'nisping' на сервере-мастере для перессылки
таблиц на сервер-реплику:
root-master# /usr/lib/nis/nisping domain_name.
root-master# /usr/lib/nis/nisping org_dir.domain_name.
root-master# /usr/lib/nis/nisping groups_dir.domain_name.
(где domain_name - Ваш NIS+ домен).
3.5: Как установить Subdomain NIS+ Master
Сервер субдомена сначала должен быть приготовлен, как клиент вышестоящего
домена (см.Раздел 3.3). Это может быть, как root-домен, так и тоже
какой-то субдомен. После того, как Вы это сделаете, исполните на нем
rpc.nisd:
subdomain-master# /usr/sbin/rpc.nisd
После этого Вы должны зайти на мастер вышестоящего домена и исполнить
там скрипт 'nisserver' (в следующем примере используется root-master,
но это может также быть и master вышестоящего поддомена):
root-master# /usr/lib/nis/nisserver -v -M -d subdomain_name -h subdomain_master
(где subdomain_name - имя Вашего нового NIS+ поддомена, а subdomain_master -
имя Вашего Subdomain master).
После этого Вы можете заполнить NIS+ таблицы для Вашего ново Субдомена.
Это делается на мастере поддомена подобно тому, как описано в Разделе 3.2:
subdomain-master# cd /var/tmp/nisfiles
subdomain-master# /usr/lib/nis/nispopulate -v -F
Впоследствии перезагрузите Ваш новый мастер поддомена.
3.6: Как установить Subdomain NIS+ Replica
Для установки Subdomain Replica должна быть использована та же процедура,
которая описана в Разделе 3.4. Однако, все команды будут исполняться
не на root-master, а на subdomain-master.
3.7: Как сконфигурировать Root Server после изменения IP адреса
Установим следующие допущения:
- Пусть Ваш NIS+ root домен называется "root.dom".
- Пусть root сервер называется "master" и имеет IP адрес 1.2.3.4.
- Допустим Вы хотите изменить значение IP на 4.3.2.1.
- Пусть у Вас имеется реплика с именем "replica" и адресом 1.2.3.5.
- Вы хотите изменить адрес реплики на 4.3.2.2.
Выполните следующие шаги:
1. Для всех NIS+ серверов добавьте в таблицу записи с их значениями IP.
Следующие команды добавляют новые IP адреса для мастера и реплики:
nistbladm -a addr=4.3.2.1 name='"master"' cname='"master"' hosts.org_dir
nistbladm -a addr=4.3.2.2 name='"replica"' cname='"replica"' hosts.org_dir
2. Используйте 'nisupdkeys', чтобы обновить значения IP адресов в объектах-директориях
следующим образом: (В строке 'hosts' файла /etc/nsswitch.conf первым должен стоять 'nisplus')
/usr/lib/nis/nisupdkeys -a groups_dir.root.dom.
/usr/lib/nis/nisupdkeys -a org_dir.root.dom.
/usr/lib/nis/nisupdkeys -a root.dom.
Замечание: Вы должны сделать это для каждого объекта-директории, имеющегося на машине.
3. Поднимите второй логический интерфейс на каждом NIS+ сервере с новым значением
IP адреса.
На мастере исполните следующую команду:
ifconfig le0:1 4.3.2.1 netmask + broadcast + -trailers up
На реплике - следующую:
ifconfig le0:1 4.3.2.2 netmask + broadcast + -trailers up
4. Разошлите новые объекты-директории на все реплики следующими командами:
/usr/lib/nis/nisping root.dom.
/usr/lib/nis/nisping groups_dir.root.dom.
/usr/lib/nis/nisping org_dir.root.dom.
5. Подождите время, эквивалентное time-to-live, чтобы дождаться, когда
объекты-директории "выдохнутся".
Это ДЕЙСТВИТЕЛЬНО важно. Не пропускайте этот шаг. Обычно time-to-live
равен 12 часам, так что ждите 12 часов. Вы можете узнать time-to-live
посредством команды:
niscat -o root.dom. groups_dir.root.dom. org_dir.root.dom.
Вы также можете изменить time-to-live для объектов-директорий
для ускорения процесса. Для того, чтобы изменить его в значение 1 час,
используйте следующую nischttl команду:
nischttl 1h root.dom.
nischttl 1h groups_dir.root.dom.
nischttl 1h org_dir.root.dom.
Если Вы хотите соглассовать time-to-live для объектов, Вам придется
ждать 12 часов, пока не распространится новое значение time-to-live.
6. Чтобы иметь полностью прозрачный сервис (т.е. чтобы Ваши
манипуляции с адресами не нарушили нормальную работу домена), установите
одну или более систем в качестве гейтвеев между двумя логическими
сетями. Чтобы это сделать, выполните следующие шаги.
7. Для каждого клиента сделайте следующее:
a. Отредактируйте запись в таблице hosts.org_dir, чтобы она
содержала новый IP адрес.
b. Отредактируйте файл /etc/hosts.
c. Перезагрузите клиента.
8. Удалите записи со старыми IP адресами на NIS+ root сервере
следующим образом:
a. Отредактируйте IP адреса в объектах-директориях:
/usr/lib/nis/nisupdkeys -a groups_dir.root.dom.
/usr/lib/nis/nisupdkeys -a org_dir.root.dom.
/usr/lib/nis/nispupkeys -a root.dom.
b. Распространите изменения на все реплики командами:
/usr/lib/nis/nisping groups_dir.root.dom.
/usr/lib/nis/nisping org_dir.root.dom.
/usr/lib/nis/nisping root.dom.
c. Ожидайте в течение time-to-live (обычно 12 часов), чтобы
информация о старых IP адресах удалилась из клиентских кэшей.
9. Когда все клиенты будут "обработаны" таким образом, выполните
следующие шаги:
a. Опустите старые (логические) интерфейсы на NIS+ серверах:
ifconfig le0 down
b. Удалите старые записи из таблицы host.
c. Отредактируйте файлы /etc/hosts.
d. На машине, исполняющей in.routed, остановите его снова
и сбросьте ip_forwarding в старое состояние.
3.7a: Как сконфигурировать Root Server после изменения IP адреса
(альтернативный (старый) вариант)
К сожалению, не существует простого способа для настройки root-сервера
вновь после изменения IP адреса. Это из-за того, что клиенты хранят
IP адрес сервера в своих cold start файлах, а сам сервер хранит свой
старый IP адрес в соем кэше. Вы должны полностью переинициализировать
Root Server после изменения IP адреса.
Наилучший способ проделать это - сохранить (сдампить) NIS+ таблицы
в ASCII файлы с помощью команды 'nisaddent':
root-master# cd /var/tmp/nisfiles
root-master# /usr/lib/nis/nisaddent -d aliases > aliases
root-master# /usr/lib/nis/nisaddent -d bootparams > bootparams
root-master# /usr/lib/nis/nisaddent -d ethers > ethers
root-master# /usr/lib/nis/nisaddent -d group > group
root-master# /usr/lib/nis/nisaddent -d hosts > hosts
root-master# /usr/lib/nis/nisaddent -d netgroup > netgroup
root-master# /usr/lib/nis/nisaddent -d netid >
root-master# /usr/lib/nis/nisaddent -d netmasks > netmasks
root-master# /usr/lib/nis/nisaddent -d networks > networks
root-master# /usr/lib/nis/nisaddent -d passwd > passwd
root-master# /usr/lib/nis/nisaddent -d protocols > protocols
root-master# /usr/lib/nis/nisaddent -d publickey > publickey
root-master# /usr/lib/nis/nisaddent -d rpc > rpc
root-master# /usr/lib/nis/nisaddent -d services > services
root-master# /usr/lib/nis/nisaddent -d shadow > shadow
root-master# /usr/lib/nis/nisaddent -d timezone > timezone
root-master# /usr/lib/nis/nisaddent -d -t auto_home.org_dir key-value > auto_home
root-master# /usr/lib/nis/nisaddent -d -t auto_master.org_dir key-value > auto_master
В этом месте отердактируйте созданный hosts файл для отражения изменения
ip адреса(ов).
Затем Вы должны уничтожить старую информацию о NIS+:
root-master# cp /etc/nsswitch.nisplus /etc/nsswitch.conf
root-master# kill <PID_of_rpc.nisd>
root-master# kill <PID_of_nis_cachemgr>
root-master# rm -f /etc/.rootkey
root-master# rm -rf /var/nis/*
И наконец, Вы можете переконфигурировать Ваш NIS+ сервер, как это
описано в Разделе 3.2. После того, как Вы настроите Root Master сервер,
Вам придется переинициализировать клиентов NIS+. На клиентах удалите
старую информацию NIS+, как описано выше и следуйте процедуре, описанной
в Разделе 3.3, для переинициализации клиентов.
3.8: Как добавить пользователя в группу Admin
При установке сервера по-умолчанию на Вашем мастер-сервере выполнять
модификации таблиц NIS+ может только root. Вероятно, Вы можете пожелать
предоставить такие права для всех системных администраторов.
Это можно сделать путем добавления системных администраторов в группу
admin:
# /usr/bin/nisgrpadm -a admin.domain_name. joe
# /usr/bin/nisgrpadm -a admin.domain_name. liz
Эти команды дадут возможность пользователям 'joe' и 'liz' модифицировать
большинство таблиц NIS+ под своими собственными аккаунтами. Вы предоставили им
значительные привилегии и потому должны быть уверены, что пользователям joe и
liz можно доверять, и что их аккаунты имеют надлежащую степень секретности.
Если Вы захотите посмотреть список членов группы admin, используйте ключ '-l':
# /usr/bin/nisgrpadm -l admin.domain_name.
Group entry for "admin.nisplus.lab.net." group:
Explicit members:
omni.nisplus.lab.net.
cascades.nisplus.lab.net.
kevinc.nisplus.lab.net.
No implicit members
No recursive members
No explicit nonmembers
No implicit nonmembers
No recursive nonmembers
3.9: Как поменять NIS+ пароль пользователя
В OS Solaris 2.5 и выше команда 'passwd' выполняет все функции,
которые ранее выполнялись командой 'nispasswd'.
%% /usr/bin/passwd -r nisplus
Под root'ом либо используйте пакет 'adminsuite', либо из командной строки:
# /usr/bin/passwd -r nisplus username
В OS Solaris 2.4 и ранее обычный пользователь может поменять свой пароль комадой
'nispasswd':
%% /usr/bin/nispasswd
Эта команда выполнит необходимые изменения в таблице passwd, а также
в таблице мандатов (cred).
Root может поменять пароль любого пользователя либо с помощью 'adminsuite',
либо следующей командой:
# /usr/bin/nispasswd user_name
Однако, эта процедура НИКОГДА не должна быть использована для изменения
пароля самого root'а.
3.10: Как поменять NIS+ пароль root'а
Чтобы изменить пароль root'а, Вы ДОЛЖНЫ использовать следующую процедуру.
Во-первых, исполните команду 'passwd' и установите новый пароль:
# /usr/bin/passwd
Не используйте nispasswd!
Это изменит пароль в локальном /etc/passwd файле. После этого
выполните 'chkey -p' и введите новый network пароль:
# /usr/bin/chkey -p
Updating nisplus publickey database.
Reencrypting key for 'unix.total@joe.com'.
Please enter the Secure-RPC password for root: <--- Здесь вводится старый пароль
Please enter the login password for root: <--- Здесь вводится новый пароль
#
Если Вы используете какой-либо другой метод изменения пароля root'а, Вы
можете полностью испортить Ваш NIS+ домен.
3.11: Как администрировать NIS+ Credentials
Для создания, редактирования и удаления локальных (LOCAL) и DES
мандатов можно использовать команду 'nisaddcred'.
Чтобы создать или отредактировать мандаты для другого NIS+ principal:
%%%% /usr/bin/nisaddcred -p uid -P principal-name local
%%%% /usr/bin/nisaddcred -p rpc-netname -P principal-name des
Здесь rpc-netname - unix.uid@domain_name для обычного пользователя и
unix.hostname@domain_name для root'а на данной машине. Заметим, что
имена доменов НЕ содержат точку в конце, в противоположность
большинству команд NIS+.
principal-name это name.domain_name., где name может быть именем
пользователя, либо хоста.
Например, joe (uid 555) в домене example.com имеет следующие имена:
principal-name: joe.example.com.
rpc-netname: unix.555@example.com
В то время, как root на машине testhas имеет следующие:
principal-name: test.example.com.
rpc-netname: unix.test@example.com
Некоторые предостережения: Вы можете создать только DES мандаты
для машины-клиента. DES мандаты могут быть созданы только в
домене клиента. Однако, Вы можете создать локальные мандаты
для клиента-пользователя в других доменах.
Чтобы удалить мандаты:
%%%% /usr/bin/nisaddcred -r principal-name
3.12: Как администрировать группы NIS+
Для администрирования групп NIS+ можно использовать следующие команды.
Имейте в виду, что группы NIS+ это не то же самое, что и обычные
группы UNIX.
Вы можете посмотреть свойства обьекта или группы с помощью
команды 'niscat':
%%%% /usr/bin/niscat -o group-name.groups_dir.domain_name.
Команда 'nisgrpadm' создает, удаляет и выполняет различные
административные действия над группами NIS+.
Для создания группы:
%%%% /usr/bin/nisgrpadm -c group-name.domain_name.
Группа, которую вы создадите, будет наследовать все свойства
объекта, которые определены в переменной NIS_DEFAULTS. Вы можете
посмотреть эти установки по-умолчанию командой 'nisdefaults':
root-master# /usr/bin/nisdefaults
prinicipal name : master.domain_name
domain name : domain_name
Host Name : master.domain_name
Group Name:
Access Rights : ----rmcdr---r---
Time to live :12:0:0
Search Patch : domain-name
Для уничтожения группы:
%%%% /usr/bin/nisgrpadm -d group-name.domain_name.
Для перечисления членов группы:
%%%% /usr/bin/nisgrpadm -l group-name.domain_name.
Для добавления членов в NIS+ группу:
%%%% /usr/bin/nisgrpadm -a group-name member
Для удаления членов из NIS+ группы:
%%%% /usr/bin/nisgrpadm -r group-name member
Чтобы определить, принадлежит ли член группе:
%%%% /usr/bin/nisgrpadm -t group-name member
3.13: Как администрировать таблицы NIS+
Команда 'nistbladm' - основная команда NIS+ для администрирования
таблиц. С помощью этой команды Вы можете создавать, модифицировать
или уничтожать таблицы и отдельные записи в таблицах.
Чтобы создать таблицу Вы должны иметь соответствующие права
на директорию, в которой эта таблица будет размещаться.
Чтобы уничтожить таблицу Вы, соответственно, должны иметь права
на уничтожение. Чтобы модифицировать таблицу, либо добавить,
изменить или удалить записи Вы должны иметь права на модификацию таблиц
или соответствующих записей.
Колонки таблиц могут иметь следующие характеристики:
S Searchable
I case insensitive
C encrypted
Для создания таблицы:
%%%% /usr/bin/nistbladm -c table-type column-spec .... table-name
Например, чтобы создать таблицу типа 'computers' с именем
'computers.example.com.', с двумя колонками 'name' and 'model',
каждая из которых searchable, Вы должны использовать следующую
команду:
%%%% /usr/bin/nistbladm -c computers name=S model=S computers.example.com.
(предполагается, что example.com. - имя Вашего NIS+ домена)
Чтобы уничтожить таблицу:
%%%% /usr/bin/nistbladm -d table-name
Например, чтобы уничтожить таблицу 'computers', Вы должны использовать
следующую команду:
%%%% /usr/bin/nistbladm -d computers.example.com.
Подробнее об добавлении записей и их модификации смотрите 'man nistbladm'.
3.14: Как проверить таблицы NIS+
Команда 'niscat' показывает содержимое таблиц NIS+.
Чтобы посмотреть свойства объектов таблицы:
%%%% /usr/bin/niscat -o table-name
Или:
%%%% /usr/bin/niscat -o entry
Чтобы посмотреть содержимое таблицы:
%%%% /usr/bin/niscat -h table-name
3.15: Как модифицировать таблицы NIS+
Таблицы NIS+ можно модифицировать различными способами. Единственное
замечание: чтобы выполнять модификации большинства таблиц NIS+ principal
исполнителя должен принадлежать группе 'admin' NIS+ (см.Раздел 3.8).
Лучшим способом является использование графической утилиты 'admintool'.
Минусом данного способа является следующее: для использования admintool
необходим X11, не все стандартные таблицы доступны через admintool и
новые таблицы также не будут доступны через admintool.
Если Вы не можете использовать admintool для модификации таблицы,
лучшей альтернативой является 'nisaddent'. Команда 'nisaddent'
загружает информацию из текстовых файлов или из NIS карт в таблицы NIS+.
Она может также выгружать содержимое NIS+ таблиц обратно в текстовые файлы.
Команда 'nisaddent' имеет следующие ключи:
-a append: добавляет содержимое источника (текс. файл или NIS карта) в таблицу
-r replace: замещает содержимое таблицы содержимым источника
-m merge: объединяет содержимое источника с содержимым таблицы
(добавляет записи, которых нет и модифицирует записи
уже имеющиеся)
-d dump : выводит содержимое таблицы в видет текста в stdout
(Без ключей -a, -r или -m по-умолчанию используется REPLACE)
Вы можете поместить новые записи в текстовом файле и затем объединить:
%%%% /usr/lib/nis/nisaddent -m -f filename table-type
Например:
%%%% /usr/lib/nis/nisaddent -m -f /etc/hosts hosts
Либо Вы можете выгрузить таблицу в файл, выполнить необходимые изменения
и затем заменить таблицу.
Например:
%%%% /usr/lib/nis/nisaddent -d hosts > /tmp/hosts
%%%% vi /tmp/hosts
%%%% /usr/lib/nis/nisaddent -rvf /tmp/hosts hosts
Специальный случай - это модификация таблицы паролей с помощью 'nisaddent'.
Пример:
%%%% /usr/lib/nis/nisaddent -d passwd > /tmp/passwd
%%%% /usr/lib/nis/nisaddent -d shadow > /tmp/shadow
%%%% vi /tmp/passwd
%%%% /usr/lib/nis/nisaddent -r -f /tmp/passwd passwd
%%%% /usr/lib/nis/nisaddent -m -f /tmp/shadow -t passwd.org_dir shadow
Если Вы опустите дампирование и последующее слияние таблицы 'shadow',
то все пароли будут утеряны.
Если Вы не желаете использовать 'nisaddent', то последнее, что остается - это
использовать команду 'nistbladm' для прямой модификации таблицы.
Это может оказаться несколько сложным. Подробнее смотрите 'man nistbladm'.
3.16: Что нужно делать при регулярном администрировании NIS+
В зависимости от изменений, проводимых в namespace, хорошей идеей является
периодическое исполнение команды 'nisping -C' (это необходимо,
чтобы пинговались все объекты: domain, org_dir.domain и groups_dir.domain),
чтобы log файлы записывались на диск. Вы можете поместить эту команду
в cron tab на Вашем root-master сервере, чтобы быть уверенным, что
она исполняется ежедневно.
Другая важная административная задача - выполнение регулярного бэкапа
директории /var/nis и файла /etc/.rootkey, чтобы быть уверенным, что
Вы можете все восстановить в случае серьезной аварии.
Наконец, имейте в виду, что у Вас должен быть 'простой файл' бэкапов
(видимо, имеется в виду 'текстовые копии' таблиц - прим. перевод.) Ваших NIS+
данных. Будьте уверены, что Вы дампите Ваши таблицы регулярно
(см.Раздел 3.7) и, особенно, если Вы выполняете какие-либо изменения
с помощью Solstice Adminsuite. При использовании Adminsuite не создаются
копии файлов и, если Ваши упражнения приведут к потере /var/nis,
Вы не сможете восстановить данные, если у Вас нет бинарной копии /var/nis,
либо текстовых файлов бэкапа.
3.17: Как удалить NIS+
Если Вы хотите удалить NIS+, Вы должны выполнить следующие команды
на всех Ваших NIS+ машинах. (NIS+ клиенты не будут исполнять rpc.nisd):
# cp /etc/nsswitch.files /etc/nsswitch.conf
# kill <PID_of_rpc.nisd> (Этот шаг только для серверов NIS+)
# kill <PID_of_nis_cachemgr>
# rm -f /etc/.rootkey
# rm -rf /etc/defaultdomain
# rm -rf /var/nis/*
Предполагается, что Вы начинаете с клиентов и заканчиваете серверами.
3.18: Администрирование Printer Namespace с NISPLUS и FNS
FNS обеспечивает возможность сохранять связи принтеров в пространстве имен FNS.
Это дает серверам печати возможность аннонсировать свой сервис и позволяет
пользователям просматривать и выбирать доступные принтеры. Nisplus не может
делать этого без FNS!
По вопросам установки FNS смотрите "NIS+ and FNS Administration Guide"
для Solaris 2.x.
ЗАМЕЧАНИЕ: Это Sun Soft Print Client (SSPC) только.
1. Проверьте наличие пространства имен nisplus/fns
master# /usr/bin/fnlist -l org
если Вы получаете в ответ что-нибудь, кроме 'not found', продолжайте далее.
если результат - 'not found', то делайте следующее:
master# /usr/sbin/fncreate -t org org//
2. Создайте принтерный контекст на мастер-сервере nisplus.
master# /usr/sbin/fncreate_printer -f /etc/printers.conf
thisorgunit/service/printer
3. Модифицируйте/создайте файл printers.conf на мастере.
syntax:
master# /usr/bin/lpset -n fns -a bsaddr=(printserver host),(printername) (printername)
Где:
(pinterserver hosts) - машина, где принтер размещен физически.
(printername) - точное имя принтера.
например:
master# /usr/bin/lpset -n fns -a bsdaddr=machine1,printer1 printer1
4. Принтерные связи (контексты) в NIS+ могут быть удалены с помощью
команды 'fndestroy'.
Более подробно смотрите "NIS+ and FNS Administration Guide".
ЗАМЕЧАНИЕ: Для централизованного администрирования Вашего printers.conf
через NIS+ у Вас должен исполняться Sun Soft Print Client (SSPC).
your printers.conf via NIS+. SSPC НЕ ЯВЛЯЕТСЯ стандартным программным
обеспечением в основной конфигурации OS Solaris 2.5.1 или ниже.
Вы *должны* иметь работающее SSPC окружение печати для конфигурирования
этой таблицы. SSPC is the default print environment as of 2.6.
3.19 Как удалить реплику
Начните с удаления объектов-директорий для реплики.
Rootmaster# /usr/bin/nisrmdir -f -s <replica> org_dir.domainname.
Rootmaster# /usr/bin/nisrmdir -f -s <replica> groups_dir.domainname.
Rootmaster# /usr/bin/nisrmdir -f -s <replica> domainname.
Замечание: Обязательно ставьте точку в конце объектов и объект
'domainname' удаляйте последним.
Далее выполните следующие команды на реплике:
Replica# rm -rf /var/nis/*
Replica# rm /etc/.rootkey
Replica# rm /etc/defaultdomain
Replica# cp /etc/nsswitch.files /etc/nsswitch.conf
Replica# kill <PID_of_rpc.nisd>
Replica# kill <PID_of_nis_cachemgr>
В этот момент Вы уже не исполняете name service.
3.20 Как переинициализировать Coldstart файл
Существует много причин, по которым могут быть ошибки при чтении
файла ColdStart. Если быстрая связка не помогает Вам, то, вероятно,
лучше всего переинициализировать кэш. Все, что нужно сделать, это
следующее:
# kill <PID_of_rpc.nisd> <-- завершение текущего процесса а затем
# /usr/sbin/nisinit -c -H server <-- создание нового sold start файла
# /usr/sbin/nis_cachemgr -i <-- запуск нового процесса
с игнорированием старого кэша
Вам не нужно делать что-нибудь еще. Если проблема все еще существует,
то, вероятно, у Вас в NIS+ домене более фундаментальная проблема.
3.21: Как получить dump таблицы cred
Вы надо получить dump таблицы cred в виде двух частей.
1 - Для получения дампа DES creds:
nisaddent -d -t cred.org_dir publickey > des_cred_table
2 - Для получения дампа local creds:
nisaddent -d -t cred.org_dir netid > local_cred_table
3.22: Как сделать backup/recover NIS+ объектов-директорий
Начиная с OS Solaris 2.6, имеется две новые команды - nisbackup и
nisrestores. Эти две команды используются для создания backup копий
NIS+ объектов-директорий на NIS+ мастер сервере. nisbackup будет
создавать коппии объектов-директорий в специальной директории.
Следующая команда будет создавать копии объектов в директории /nisbackups:
nisbackup /nisbackups root.dom. org_dir.root.dom. groups_dir.root.dom.
Следующая команда будет восстанавливать копии объектов из директории /nisbackups:
nisrestore -a /nisbackups
3.23: Как перевести NIS+ root реплику в root мастер сервер
ЗАМЕЧАНИЕ: В следующих примерах <master> обозначает имя старого мастер
сервера, <replica> обозначает имя старой реплики, а `domainname` обозначает
имя NIS+ домена. Элементы, такие, как <rpc.nisd pid> обозначают
процесс ID для данного процесса, полученный с помощью команды:
ps -ef | grep <processname>
Все другие обозначения приведены в настоящем виде.
1 - Создайте объекты на мастере для реплики
На мастере:
# nismkdir -m <replica> groups_dir.`domainname`.
# nismkdir -m <replica> org_dir.`domainname`.
# nismkdir -m <replica> `domainname`.
2 - Скопируйте root.object мастера
На реплике:
# rcp <master>:/var/nis/<master>root.object /var/nis/<replica>
или для OS Solaris версий больше 2.5
# rcp <master>:/var/nis/<data>root.object /var/nis/<data>
Переместите root.object из директории /var/nis/[<master>|data] на мастере
куда-либо в другое место (не удаляйте его, так как может быть Вам
придется обратить процесс, если что-нибудь будет не правильно)
3 - Прибейте rpc.nisd и nis_cachemgr на мастере и реплике:
# kill <rpc.nisd pid> <nis_cachemgr pid>
4 - Стартуйте rpc.nisd и nis_cachemgr на новой реплике:
На новой реплике:
# /usr/sbin/rpc.nisd -S 0
# /usr/sbin/nis_cachemgr -i
5 - Проверьте, что старая реплика теперь является мастером:
На новом мастер сервере:
# nisshowcache -v
# niscat -o groups_dir.`domainname`.
# niscat -o org_dir.`domainname`.
# niscat -o `domainname`.
6 - Если в кэше еще хранится информация о старом мастере, как
о старом мастере, выполните на новом мастере следующее:
# nsmkdir -m <newmaster> groups_dir.`domainname`.
# nsmkdir -m <newmaster> org_dir.`domainname`.
7 - Измените владельца директорий:
# nischown <newmaster> groups_dir.`domainname`.
# nischown <newmaster> org_dir.`domainname`.
8 - Измените владельца всех таблиц внутри директорий:
# for tables in `nisls org_dir | grep -v org_dir`
> do
> nischown <newmaster> $tables.org_dir
> done
# for tables in `nisls groups_dir | grep -v groups_dir`
> do
> nischown <newmaster> $tables.groups_dir
> done
9 - Проверьте, что таблицы и директории принадлежат правильному
новому мастеру:
# niscat -o org_dir
# niscat -o hosts.org_dir etc...
10 - Удалите структуры, оставшиеся от старой реплики
# nisrmdir -s <oldmaster> groups_dir.`domainname`.
# nisrmdir -s <oldmaster> org_dir.`domainname`.
# nisrmdir -s <oldmaster> `domainname`.
11 - Синхронизируйте NIS+ домен
# nisping -C groups_dir.`domainname`.
# nisping -C org_dir.`domainname`.
# nisping -C `domainname`.
12 - Если они (директории и объекты) теперь принадлежат и
реплицируются правильной машиной, перестартуйте rpc.nisd
с уровнем секретности 2:
# kill <rpc.nisd pid> <nis_cachemgr pid>
# /usr/sbin/rpc.nisd
# /usr/sbin/nis_cachemgr -i
13 - Проверьте от лица root'а и произвольного пользователя,
что все работает, как надо.
14 - На старом мастере удалите старую информацию и сделайте его
клиентом домена.
Удалите все из /var/nis за исключением NIS_COLD_START и
NIS_SHARED_DIRCACHE.
Поместите имя и адрес IP нового мастера в файл /etc/hosts.
# nisinit -c -H <newmaster>
15 - Сделайте старый мастер репликой домена.
На новой реплике стартуйте rpc.nisd.
На мастере:
# nismkdir -s <replica> groups_dir.`domainname`.
# nismkdir -s <replica> org_dir.`domainname`.
# nismkdir -s <replica> `domainname`.
# nisping -C groups_dir.`domainname`. (замечание: сообщения 'server busy'
# nisping -C org_dir.`domainname`. (возникают из-за того, что предыдущая
# nisping -C `domainname`. (команда не была завершена.
16 - На каждом клиенте прибейте nis_cachemgr:
# kill <nis_cachemgr pid>
17 - На каждом клиенте получите новый coldstart файл с нового мастера:
# nisinit -c -H <newmaster>
18 - На каждом клиенте перестартуйте nis_cachemgr:
# kill <nis_cachemgr pid>
# /usr/sbin/nis_cachemgr -i
4.0 Некоторые Часто Задаваемые Вопросы
4.1: Разные вопросы
Q1: Каковы основные особенности NIS+?
Q2: Какие новые возможности дает NIS+?
Q3: В чем различие между NIS и NIS+?
A: Пространство имен NIS - плоское, что означает, что оно не поддерживает
поддомены. При использовании NIS с данного хоста доступен только один домен.
В NIS+ пространство имен имеет иерархическую структуру. Она подобна структуре
файловой системы UNIX. Поскольку пространство имен NIS+ иерархическое, оно
может быть сконфигурировано так, чтобы соответствовать логической иерархии
организации. Это означает, что Вы можете создавать поддомены для различных
уровней организаций.
В NIS даже при небольших изменениях в таблице (map) мастер сервер должен
переслать всю таблицу слейв-серверам. В то же время, в NIS+ изменения
базы данных инкрементивны. Это означает, что серверам-репликам реплицируются
(передаются) только изменения. Поэтому NIS+ базы данных редактируются более
эффективно и с меньшими затратами времени.
Другое важное различие между NIS и NIS+ - это серверные связи.
В NIS клиенты жестко связаны с определенным сервером. Во время загрузки OS
процесс 'ypbind' на клиентской стороне связывается с определенным сервером.
Однако, клиентская библиотека NIS+ это не отдельный процесс.
В NIS команда 'ypwhich' может сообщить Вам, с каким конкретно сервером
связан клиент, но это невозможно в NIS+. Другими словами, связь в NIS+
это мягкая (гибкая) связь.
NIS карты могут быть searched, но только с одной предопределенной
searchable колонкой. NIS+ таблицы могут иметь более одной searchable
колонки.
NIS поддерживает UNIX groups и netgroups. NIS+ также поддерживает
концепцию NIS+ group. Один или более пользователей NIS+ могут быть
сгруппированы в NIS+ группу. Может быть определено несколько NIS+ групп,
каждая с различным доступом и правами модификации пространства имен NIS+.
NIS+ также имеет усиленныю секретность:
NIS не поддерживает аутентикацию, авторизацию и секретный RPC,
в то время как NIS+ поддерживает.
Q: Что такое мой network пароль?
A: В большинстве случаев Ваш network пароль должен быть таким же, как и
login пароль. При инсталяции NIS+ network пароли часто устанавливаются в
значение 'nisplus' (значение по-умолчанию).
Q: Почему я не могу иметь одинаковые имена для пользователя и машины?
A: Все машины и пользователи должны иметь мандаты. Если у Вас имеется
машина и пользователь с одинаковым именем, то только один из них
сможет иметь мандат. В случае конфликтов имен такого рода Вы должны
изменить имя машины и перегенерить мандаты для пользователя и машины
после этого:
%% /usr/lib/nis/nisclient -c user
%% /usr/lib/nis/nisclient -c machine
4.2: Проблемы установки NIS+
Q: Почему nisserver "падает", когда я запускаю его, как описано
в Разделе 3.4?
A: Если по какой-то причине скрипт 'nisserver' "падает", смотрите
сообщение об ошибке. Оно даст Вам некоторые идеи относительно ошибки.
Другой вариант - выполнить конфигурацию "вручную, используя 'nisinit'
и 'nissetup', как описано в Name Services Administration Guide.
Это даст возможность определить, на каком шаге случается ошибка и
может помочь лучше диагностировать проблему. Если шаг 'nisinit -r'
завершается неудачно, то проверьте, исполняете ли Вы DNI. При инсталяции
DNI в файл /etc/netconfig добавляется следующая строчка:
nsp tpi_cots_ord - decnet nsp /dev/nsp /usr/lib/straddr.so
Если вы закомментируете эту строку и исполните скрипт опять, то он
будет работать корректно.
4.3: Проблемы при логине пользователя
Q: Почему я получаю следующую ошибку при логине:
"Password does not decrypt secret key for ..."
A: Это означает, что логин пароль пользователя и его network пароль
не совпадают. После логина пользователь должен исполнить 'keylogin' чтобы
получить свои NIS+ мандаты:
%% /usr/bin/keylogin
Пользователь должен будет ввести свой NIS+ network пароль.
Этот пароль может иметь значение 'nisplus', если пользователь
логинится в первый раз. После этого пользователь должен исполнить
команду 'chkey', чтобы синхронизировать свой логин пароль и network пароль:
%% /usr/bin/chkey -p
▀└
Пользователь снова должен будет ввести свой NIS+ network пароль (nisplus),
а затем свой логин пароль.
Q: Почему я получаю следующую ошибку при логине:
"/usr/bin/passwd: <user> does not exist"
"Connection closed by foreign host."
A1: Это может быть результатом установки флага "cleared until first login"
в admintool при заведении пользователя. Вы должны установить 'normal password',
когда создаете пользователю аккаунт.
A2: Если Вы собираетесь использовать возрастные свойства (срок действия)
паролей, то следует установить патч, как это указано в Разделе 5.0.
Примечание: Еще одна разновидность ошибки пользователя при входе на
машину из пространства NIS+ domain отличную от root master - это когда
сразу после заведения пользователя в NIS+ не были обновлены базы NIS+ на
других машин из этого NIS+ домена командой `nisping -C`
Q: Почему я не могу залогиниться через xdm?
A: Это известный баг. В Разделах 5.3 и 5.4 перечисляются патчи,
устраняющие данную проблему.
4.4: Как разрешить проблему "Unable to Authenticate NIS+ server"
Убейте и запустите снова rpc.nisd с уровнем секретности 0:
ps -ef | grep rpc.nisd
kill <pid>
/usr/sbin/rpc.nisd -r -S 0
Используйте команду 'keylogout' для удаления roots key:
keylogout -f
Добавьте root's key и "протолкните" его в директории:
nisaddcred des
ps -ef | grep keyserv
kill <pid>
nisupdkeys `nisdefaults -d`
nisupdkeys org_dir.`nisdefaults -d`
nisupdkeys groups_dir.`nisdefaults -d`
/usr/sbin/keyserv
Убедитесь, что изменения распространились:
/usr/lib/nis/nisping `nisdefaults -d`
/usr/lib/nis/nisping org_dir.`nisdefaults -d`
/usr/lib/nis/nisping groups_dir.`nisdefaults -d`
Примените /usr/lib/nis/nisping ко всем другим директориям, которые
Вы создали помимо указанных.
Перстартуйте NIS с уровнем секретности 2:
ps -ef | grep rpc.nisd
kill <pid>
/usr/sbin/rpc.nisd -S 2
4.5: NIS+ Lookup проблемы
Q: Почему я получаю противоречивые результаты при определенных NIS+ lookups?
A: В NIS+ связь с сервером мягкая. То есть, обращения могут быть
к разным серверам. Поэтому, если реплика не синхронизирована с мастером,
клиент будет получать противоречивую информацию на каждый запрос.
Когда Вы получаете противоречивую информацию на запросы, исполните
команду 'snoop' (см.Раздел 2.3), чтобы найти, какой из серверов
дает неверную информацию.
5.0: Патчи.
Ниже следует список всех NIS+ патчей для SunOS 5.3, 5.4, 5.5[.1], 5.6, 5.7.
Если у Вас есть проблемы, связанные с NIS+, для начала неплохо
установить патчи, особенно, если Вы наблюдаете основные симптомы,
перечисленные ниже.
Для того, чтобы машина была стабильной, также следует установить
все рекомендованные патчи. Список рекомендованных патчей для Вашей OS
можно найти на sunsolve1.sun.com
Примечание переводчика: В нижеследующем тексте перевод наименований
патчей не производится из соображений удобства идентификации, мало того,
воспользуйтесь услугами Sunsolve для идентификации необходимых патчей ибо
их количество и нумерация изменяются.
5.1: Solaris 2.3 NIS+ Patches
Solaris 2.3 NIS+ Patches
101318 SunOS 5.3: Jumbo patch for kernel (включает libc, lockd)
Это важный патч, который должен быть установлен на всех машинах.
Так как он устраняет большое количество ошибок NIS+, он абсолютно
необходим для каждой NIS+ машины.
101384 SunOS 5.3: Admintool Jumbo patch
Устраняет большое количество ошибок, связанных с NIS+ и утилитой
'admintool'. Этот патч должен быть установлен, если Вы используете
'admintool' для модификации таблиц NIS+.
101582 SunOS 5.3: POINT PATCH: Password aging & NIS+ don't work (together)
Этот опциональный патч должен быть установлен, если Вы собираетесь
использовать возрастные свойства паролей в NIS+.
101736 SunOS 5.3: nisplus patch
Устраняет ошибки в библиотеке NIS+. Должен быть установлен на всех
NIS+ машинах.
102447 OpenWindows 3.3: xdm cannot be used on NIS+ networks
Устраняет ошибку, которая препятствует пользователям NIS+
заходить через xdm.
5.2: Solaris 2.4 NIS+ Patches
101945 SunOS 5.4: jumbo patch for kernel
Это важный патч, который должен быть установлен на всех машинах.
Так как он устраняет большое количество ошибок NIS+, он абсолютно
необходим для каждой NIS+ машины.
102294 OpenWindows 3.4: xdm cannot be used on NIS+ networks
Устраняет ошибку, которая препятствует пользователям NIS+
заходить через xdm.
101973 SunOS 5.4: fixes for libnsl and ypbind
Это обязательный патч для NIS+.
102277 SunOS 5.4: nss_nisplus.so.1 fixes
102153 SunOS 5.4: Admintool Jumbo patch
102273 SunOS 5.4: nisupdkeys -a does not deal properly with multi-homed systems
102336 SunOS 5.4: POINT PATCH: 1091205 - Password aging & NIS+ don't work
Этот опциональный патч должен быть установлен, если Вы собираетесь
использовать возрастные свойства паролей в NIS+.
102521 SunOS 5.4: rpc.nisd leaks one file descriptor each checkpoint request
*** Не требуется, если установлен патч 101973-15
или более поздний
102677 SunOS 5.4: nispasswd coredumps in mailoc with SEGV
102608 SunOS 5.4: nisaddent and nispopulate fixes
103064 SunOS 5.4: nis_cachemgr fixes
5.3: Solaris 2.5 NIS+ Patches
103093 SunOS 5.5: kernel jumbo patch (2170949 bytes)
103708 SunOS 5.5: rpc.nisd_resolv rebuild for BIND 4.9.3
103279 SunOS 5.5: nscd breaks password shadowing with NIS+
103266 SunOS 5.5: nissetup default permissions for password table not secure
103187 SunOS 5.5: SunOS 5.5: libc, libnsl, libucb, nis_cachemgr and rpc.nisd patch
103661 SunOS 5.5: nisaddent patch
103774 SunOS 5.5: nistbladm patch
103790 SunOS 5.5: nss_nisplus.so.1 patch
104000 SunOS 5.5: nispasswdd fixes
Solaris 2.5.1 NIS+ Patches
103640 SunOS 5.5.1: kernel patch
103686 SunOS 5.5.1: rpc.nisd_resolv patch
103680 SunOS 5.5.1: nscd/nscd_nischeck rebuild for BIND 4.9.3
103612 SunOS 5.5.1: libc, libnsl, libucb, nis_cachemgr and rpc.nisd patch
103643 SunOS 5.5.1: /usr/lib/nis/nisaddent fixes
103770 SunOS 5.5.1: nistbladm patch
103785 SunOS 5.5.1: nss_nisplus.so.1 patch
103995 SunOS 5.5.1: rpc.nispasswdd patch
104255 SunOS 5.5.1: POINT PATCH: 1257084 - /usr/lib/nss_nis.so.1
5.4: Solaris 2.6 NIS+ Patches
105401 SunOS 5.6: libnsl and NIS+ commands patch
105552 SunOS 5.6: /usr/sbin/rpc.nisd_resolv patch
105743 SunOS 5.6: /usr/lib/libxfn.so.2 patch
105562 SunOS 5.6: chkey and keylogin patch
105564 SunOS 5.6: /kernel/misc/rpcsec patch
105403 SunOS 5.6: /usr/lib/netsvc/yp/ypbind patch
105216 SunOS 5.6: /usr/sbin/rpcbind patch
106044 SunOS 5.6: /usr/lib/nss_nisplus.so.1 patch
5.5: Solaris 7 NIS+ Patches
107215 SunOS 5.7: /usr/sbin/rpc.nisd patch
6.0: Ссылки
6.1: Важные страницы Man
chkey
keylogin
newkey
nis
nis_cachemgr
nisaddcred
niscat
nisaddent
nischgrp
nischown
nischttl
nisclient
nisdefaults
nisgrep
nisgrpadm
nisinit
nislog
nisls
nismatch
nismkdir
nisping
nispopulate
nisrm
nisrmdir
nisserver
nistbladm
nisudpkeys
rpc.nisd
nisbackup
nisrestore
6.2: Документы Sunsolve
На Sunsolve имеется набор документов относящихся к обсуждению и изучению
вопросов касающихся NIS+, но для доступа к этим документам необходимо быть
зарегистрированным на Sunsolve и иметь соответствующий ID.
6.2.1: FAQs
1012 NIS+ вопросы(faqs).
6.2.2: Infodocs
2216 NIS+ вопросы.
11742 Как преобразовать NIS+ root replica server в root master.
17749 Процедура смены root users паролея на NIS+ машинах.
6.2.3: SRDBs
5816 FQDN имена хостов с NIS+.
5874 восстановление nis+ database.
6285 смена passwd на NIS+ server нарушает authenticat.
6487 различие между NIS и NIS+.
6640 почему NIS+ требует passwords.
6616 можно ли вернуться обратно на NIS.
7202 не удается изменить NIS passwords обслуживаемые NIS+ серверами.
10448 Изменение NIS+ master server.
10941 NIS+ сообщения об ошибках.
10951 NIS+ сервера недостижимы.
11728 Смена IP адреса NIS+ сервера.
11742 Как преобразовать NIS+ root replica server в root master server.
14994 Смена root master's IP адреса в AdminSuite, nis+ credentials теперь стали плохими.
18603 NIS+ master и replica рассинхронизировались, что делать?
19155 Перестройка NIS+ root master credentials.
6.3: Образовательный цент Sun
Концепции и администрирование NIS+ курсы предлагаемые SUNED (контактный номер
1-800 для более полной информации)
*Solaris 2.X NIS+ Administration with Workshop
6.4: Документация Solaris
Name Services Administration Guide, part #801-6633-10
Name Services Configuration Guide, part #801-6635-10
Online документация по NIS+ доступная на docs.sun.com
6.5: Документация по администрированию NIS+ других фирм
All About Administering NIS+, by Rick Ramsey, Prentice Hall.
ISBN 0-13-309576-2
6.6: RFCs
По NIS+ нет RFC.
Ваши дополнения/изменения можете отослать по адресу:
Ray W. Hiltbrand (Ray.W.Hiltbrand@Eng.Auburn.EDU)
Перевод Сергея Карташова.