Provided by:
manpages-ru_0.98-4_all 
ИМЯ
nsswitch.conf - Системные базы данных и файл с настройками для
диспетчера службы имен
ОПИСАНИЕ
Для корректной работы в локальном окружении необходима различная
настройка функций библиотеки языка C. Традиционно это делалось с
помощью файлов (таких как `/etc/passwd'), но со временем стали
популярны другие службы имен (такие как Network Information Service
(NIS) и Domain Name Service (DNS)) и они были внесены в библиотеку C,
причем обычно использовался фиксированный порядок поиска.
Linux-версия libc5 с поддержкой NYS (NYS - это специальная доработка
libc5, которая позволяет работать с NIS. Подробнее об этом читайте NIS-
HOWTO. -- Прим. пер.), а также библиотека GNU C 2.x (libc.so.6)
используют более корректный метод решения этой проблемы. Этот метод
был разработан по образцу того метода, что использован в библиотеке C,
написанной в Sun Microsystems для Solaris 2. Мы используем их название
и зовем данную схему "Name Service Switch", NSS (Диспетчер Службы
Имен). Базы данных, в которых ищется информация, и порядок их
просмотра задаются в файле /etc/nsswitch.conf.
В NSS можно использовать следующие базы данных:
aliases
Почтовые псевдонимы, используемые программой sendmail(8). В
данный момент игнорируются.
ethers Номера ethernet.
group Группы пользователей, с которыми работает функция getgrent(3).
hosts Имена хостов и номера (имеются в виду IP-адреса? -- Прим. пер.),
используемые функцией gethostbyname(3) и другими, ей подобными.
netgroup
Список хостов и пользователей сети, используемый для правил
доступа. Библиотеки C до версии glibc 2.1 поддерживают сетевые
группы только посредством NIS.
network
Имена и номера сетей, используемые функциями getnetent(3).
passwd Пароли пользователей, используемые функциями getpwent(3).
protocols
Сетевые протоколы, используемые функциями getprotoent(3).
publickey
Открытые и секретные ключи для Secure_RPC, которая используется
в NFS и NIS+.
rpc Имена и номера вызовов удаленных процедур, используемых функцией
getrpcbyname(3) и другими похожими функциями.
services
Сетевые службы, используемые функциями getservent(3).
shadow Теневые пароли пользователей, используемые getspnam(3).
Например, файл /etc/nsswitch.conf может выглядеть так (Эти настройки
будут использоваться по умолчанию, если файл /etc/nsswitch.conf
отсутствует):
passwd: compat
group: compat
shadow: compat
hosts: dns [!UNAVAIL=return] files
networks: nis [NOTFOUND=return] files
ethers: nis [NOTFOUND=return] files
protocols: nis [NOTFOUND=return] files
rpc: nis [NOTFOUND=return] files
services: nis [NOTFOUND=return] files
Первая колонка -- это база данных. Остаток строки задает используемый
метод поиска. Вы можете задать этот метод отдельно для каждой базы
данных.
Спецификация настройки для каждой базы данных может содержать два
разных элемента:
* Спецификация службы, такая как `files', `db' или `nis'.
* Реакция на поиск результата, такая как `[NOTFOUND=return]'.
Для libc5 с NYS допустимы спецификации служб `files', `nis' и
`nisplus'. Для hosts вы можете в качестве дополнительной службы
указать `dns', а для passwd и group, но не для shadow -- `compat'.
При использовании glibc у вас должен быть файл /lib/libnss_SERVICE.so.X
для каждой службы SERVICE, которую вы используете. При стандартной
установке можно использовать `files', `db', `nis' и `nisplus'. Для
hosts вы можете в качестве дополнительной службы указать `dns', для
passwd, group и shadow -- `compat'. Эти службы не будут использоваться
libc5 с NYS. Номер версии X это 1 для glibc 2.0 и 2 для glibc 2.1.
Второй элемент в спецификации предоставляет пользователю значительно
более точный контроль над процессом поиска. Элементы-действия пишутся
между двумя именами служб и заключаются в квадратные скобки. Основная
форма записи такова:
`[' ( `!'? СОСТОЯНИЕ `=' ДЕЙСТВИЕ )+ `]'
где
СОСТОЯНИЕ => success | notfound | unavail | tryagain
ДЕЙСТВИЕ => return | continue
Регистр букв не важен. СОСТОЯНИЕ -- это результат вызова функции
поиска заданной службы. Оно может принимать значения:
success
Нужная запись найдена и ошибок не произошло. Для этого
состояния действием по умолчанию является `return'.
notfound
Процесс поиска работает успешно, но нужная запись не была
найдена. Для этого состояния действием по умолчанию является
`continue'.
unavail
Служба недоступна. Это может означать, что недоступен нужный
файл, или DNS-сервер или что нет допустимых запросов. Для этого
состояния действием по умолчанию является `continue'.
tryagain
Служба временно недоступна. Это может означать, что какой-либо
файл заблокирован или что в данный момент сервер не может
принять больше соединений. Для этого состояния действием по
умолчанию является `continue'.
Взаимодействие с синтаксисом +/- (режим compat)
Linux libc5 без NYS не содержит диспетчера службы имен, но
предоставляет пользователю некоторую возможность управления процедурой
поиска. В файле /etc/passwd вы можете сделать записи вида
+ или +@_ (что включает заданного пользователя
из карты NIS passwd), - или -@_ (что исключает
заданного пользователя) и + (что включает каждого пользователя, не
считая исключенных, из карты NIS). Так как обычно просто помещают + в
конец файла /etc/passwd, чтобы включить всех пользователей из NIS, то
диспетчер в этом случае предоставляет более быструю альтернативу
(`passwd: files nis'), которая не требует одиночной записи + в файле
/etc/passwd, /etc/group и /etc/shadow. Если этого недостаточно, то
служба NSS `compat' предоставляет полную семантику +/-. По умолчанию,
источником является `nis', но он может быть переназначен, если задать
`nisplus' как источник для псевдо-баз данных passwd_compat,
group_compat и shadow_compat. Эти псевдо-базы данных доступны только в
библиотеке GNU C Library.
ФАЙЛЫ
Служба, называемая SERVICE, реализуется через разделяемую объектную
библиотеку, которая называется libnss_SERVICE.so.X и находится в
каталоге /lib.
/etc/nsswitch.conf файл с настройками
/lib/libnss_compat.so.X реализует источник `compat' для glibc2
/lib/libnss_db.so.X реализует источник `db' для glibc2
/lib/libnss_dns.so.X реализует источник `dns' для glibc2
/lib/libnss_files.so.X реализует источник `files' для glibc2
/lib/libnss_hesiod.so.X реализует источник `hesiod' для glibc2
/lib/libnss_nis.so.X реализует источник `nis' для glibc2
/lib/libnss_nisplus.so.2 реализует источник `nisplus' для glibc 2.1
ЗАМЕЧАНИЯ
Внутри каждого процесса, который использует файл nsswitch.conf, файл
полностью читается только раз; если позднее файл бы изменен, то процесс
продолжит выполнение, используя старые настройки.
В Solaris невозможно статически собрать программу, использующую службу
NSS. В Linux такой проблемы нет.
ПЕРЕВОД
Перевёл с английского Виктор Вислобоков <corochoone@perm.ru> 2004