nsswitch.conf(5) | File Formats Manual | nsswitch.conf(5) |
nsswitch.conf - файл настроек диспетчера службы имён
Файл настроек диспетчера службы имён (Name Service Switch, (NSS)) /etc/nsswitch.conf используется библиотекой GNU C и другими приложениями для определения источников служб имён разных категорий и их очерёдности. Каждая категория информации обозначается по имени её базы данных.
Данный файл представляет собой простой текст в кодировке ASCII с колонками, разделёнными пробелами или символами табуляции. В первой колонке указывается имя базы данных. В оставшихся колонках задаётся порядок запросов к источникам и ограниченный набор действий, который может быть выполнен в зависимости от результата запроса.
Библиотека GNU C распознаёт следующие базы данных:
The GNU C Library ignores databases with unknown names. Some applications use this to implement special handling for their own databases. For example, sudo(8) consults the sudoers database. Delegation of subordinate user/group IDs can be configured using the subid database. Refer to subuid(5) and subgid(5) for more details.
Пример файла /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
В первой колонке содержится имя базы данных. В остальных колонках указывается:
Список поддерживаемых системой служб зависит от наличия динамических библиотек (и, таким образом, расширяем). Библиотека с именем /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».
Также, после указания службы может быть указано действие. Действие изменяет дальнейшее поведение в зависимости от результата, полученного из предыдущего источника данных. Действия задаются следующим образом:
где
Символ ! инвертирует результат теста, то есть совпадают все результаты, кроме указанного. Регистр символов ключевых слов не важен.
Значение СОСТОЯНИЕ — это результат вызова функции поиска заданной службы. Оно может принимать значения:
Значением ДЕЙСТВИЕ может быть одно из:
Служба NSS «compat» подобна «files», за исключением того, что она позволяет иметь дополнительные специальные записи в соответствующих файлах для разграничения прав доступа пользователей и сетевых групп в системе. В этом режиме допустимы следующие записи:
Для баз данных passwd и shadow:
Для базы данных group:
По умолчанию источником является «nis», но это можно изменить, указав любую службу NSS, за исключением самого «compat» в качестве источника псевдо-базы данных passwd_compat, group_compat и shadow_compat.
Каждая СЛУЖБА реализована в динамической объектной библиотеки с именем libnss_СЛУЖБА.so.X, которая находится в каталоге /lib.
При указании в соответствующих базах источника «files», читаются следующие файлы:
Starting with glibc 2.33, nsswitch.conf is automatically reloaded if the file is changed. In earlier versions, the entire file was read only once within each process. If the file was later changed, the process would continue using the old configuration.
Изначально использовался только один источник служебной информации, часто в виде одного файла настройки (например, /etc/passwd). Однако, по мере того, как становились популярными другие службы, такие как служба сетевой информации (Network Information Service (NIS)) и служба доменных имён (Domain Name Service (DNS)), потребовался более гибкий способ определения порядка поиска вместо встроенного в библиотеку C. Для решения этой проблемы был создан диспетчер службы имён (Name Service Switch), основанный на механизме, использованном Sun Microsystems в C-библиотеке Solaris 2.
Русский перевод этой страницы руководства был сделан Alex Nik <rage.iz.me@gmail.com>, Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>
Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.
Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.
5 февраля 2023 г. | Linux man-pages 6.03 |