Linux Man на русском

  User    Syst    Libr    Device    Files    Other    Admin  



   nsswitch.conf - файл настроек диспетчера службы имён

nsswitch.conf(5) файл настроек диспетчера службы имён


ОПИСАНИЕ

Файл настроек диспетчера службы имён (Name Service Switch, (NSS)) /etc/nsswitch.conf используется библиотекой GNU C для определения источников служб имён разных категорий и их очерёдности. Каждая категория информации обозначается по имени её базы данных.

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

Библиотека GNU C распознаёт следующие базы данных:

aliases Почтовые псевдонимы, используемые getaliasent(3) и подобными функциями.

ethers Номера ethernet.

group Группы пользователей, используемые getgrent(3) и подобными функциями.

hosts Имена узлов и номера, используемые gethostbyname(3) и подобными функциями.

initgroups Дополнительный список групп доступа, используется функцией getgrouplist(3).

netgroup Список узлов и пользователей сети, используемый для правил доступа. Библиотеки C до версии glibc 2.1 поддерживают сетевые группы только посредством NIS.

networks Имена сетей и номера, используемые 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:


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]».

    Список поддерживаемых системой служб зависит от наличия динамических библиотек (и, таким образом, расширяем). Библиотека с именем /lib/libnss_СЛУЖБА.so.X предоставляет службу СЛУЖБА. В стандартной установке вы можете использовать «files», «db», «nis» и «nisplus». Для базы данных hosts вы можете дополнительно указать «dns». Для баз данных passwd, group и shadow вы можете дополнительно указать «compat» (см. Режим совместимости далее). Номер версии X может быть равен 1 (для glibc 2.0) или 2 (для glibc 2.1 и новее). В системах с дополнительно установленными библиотеками могут быть другие службы, такие как «hesiod», «ldap», «winbind» и «wins».

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

    [СОСТОЯНИЕ=ДЕЙСТВИЕ]
    [!СОСТОЯНИЕ=ДЕЙСТВИЕ]

    где

    СОСТОЯНИЕ => success | notfound | unavail | tryagain
    ДЕЙСТВИЕ => return | continue

    Символ ! инвертирует результат теста, то есть совпадают все результаты, кроме указанного. Регистр символов ключевых слов не важен.

    Значение СОСТОЯНИЕ — это результат вызова функции поиска заданной службы. Оно может принимать значения:

    success Запрашиваемая запись найдена и ошибок не произошло. Для этого состояния действием по умолчанию является «return».

    notfound Поиск выполнен, но нужная запись не была найдена. Для этого состояния действием по умолчанию является «continue».

    unavail Служба постоянно недоступна. Это может означать, что недоступен для чтения нужный файл или, для сетевых служб, что сервер недоступен или не обслуживает запросы. Для этого состояния действием по умолчанию является «continue».

    tryagain Служба временно недоступна. Это может означать, что какой-либо файл заблокирован или что в данный момент сервер не может принять больше соединений. Для этого состояния действием по умолчанию является «continue».

    Значением ДЕЙСТВИЕ может быть одно из:

    return Вернуть результат. Не вызывать функции для дальнейшего поиска. Однако, с целью совместимости, если это действие указывается для базы данных group и состояние равно notfound, и файл настройки не содержит строку initgroups, то всегда вызывается следующая функция поиска, независимо от результата поиска.

    continue Вызвать следующую функцию поиска.

    Режим совместимости (compat)

    Служба NSS «compat» подобна «files», за исключением того, что она позволяет иметь дополнительные специальные записи в /etc/passwd для разграничения прав доступа пользователей и сетевых групп в системе. В этом режиме допустимы следующие записи:

    +пользователь Включить указанного пользователя в карту NIS passwd.

    email-protectedсетевая группа Включить всех пользователей в указанную сетевую группу.

    -пользователь Исключить указанного пользователя из карты NIS passwd.

    email-protectedсетевая группа Исключить всех пользователей из указанной сетевой группы.

    + Включить каждого пользователя, за исключением исключённых ранее, в карту NIS passwd.

    По умолчанию источником является «nis», но это можно изменить, указав «nisplus» в качестве источника псевдо-базы данных passwd_compat, group_compat и shadow_compat.

    ФАЙЛЫ

    Каждая СЛУЖБА реализована в динамической объектной библиотеки с именем libnss_СЛУЖБА.so.X, которая находится в каталоге /lib.

    /etc/nsswitch.conf файл настройки NSS
    /lib/libnss_compat.so.X реализует источник «compat»
    /lib/libnss_db.so.X реализует источник «db»
    /lib/libnss_dns.so.X реализует источник «dns»
    /lib/libnss_files.so.X реализует источник «files»
    /lib/libnss_hesiod.so.X реализует источник «hesiod»
    /lib/libnss_nis.so.X реализует источник «nis»
    /lib/libnss_nisplus.so.X реализует источник «nisplus»

    При указании в соответствующих базах источника «files», читаются следующие файлы:


    aliases /etc/aliases

    ethers /etc/ethers

    group /etc/group

    hosts /etc/hosts

    initgroups /etc/group

    netgroup /etc/netgroup

    networks /etc/networks

    passwd /etc/passwd

    protocols /etc/protocols

    publickey /etc/publickey

    rpc /etc/rpc

    services /etc/services

    shadow /etc/shadow


    ЗАМЕЧАНИЯ

    Внутри каждого процесса, который использует файл nsswitch.conf, файл полностью читается только один раз. Если позднее файл был изменён, то процесс продолжит выполнение, используя старые настройки.

    Изначально использовался только один источник служебной информации, часто в виде одного файла настройки (например, /etc/passwd). Однако, по мере того, как становились популярными другие службы, такие как служба сетевой информации (Network Information Service (NIS)) и служба доменных имён (Domain Name Service (DNS)), потребовался более гибкий способ определения порядка поиска вместо встроенного в библиотеку C. Для решения этой проблемы был создан диспетчер службы имён (Name Service Switch), основанный на механизме, использованном Sun Microsystems в C-библиотеке Solaris 2.