Provided by: manpages-ru_0.98-4_all bug

ИМЯ

       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