The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

nsswitch.conf (5)
  • nsswitch.conf (4) ( Solaris man: Специальные файлы /dev/* )
  • nsswitch.conf (4) ( Русские man: Специальные файлы /dev/* )
  • nsswitch.conf (5) ( FreeBSD man: Форматы файлов )
  • >> nsswitch.conf (5) ( Русские man: Форматы файлов )
  • nsswitch.conf (5) ( Linux man: Форматы файлов )
  •  

    ИМЯ

    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


     

    Index

    ИМЯ
    ОПИСАНИЕ
    Взаимодействие с синтаксисом +/- (режим compat)
    ФАЙЛЫ
    ЗАМЕЧАНИЯ
    ПЕРЕВОД


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру