|
Bog BOS: NSS (Name Service Switch) |
Последние изменения: |
Последнее изменение файла: 2011.07.13
Скопировано с www.bog.pp.ru: 2024.11.23
NSS (Name Service Switch) позволяет системному администратору выбирать различные сервисы имен (поиск в текстовом файле, DNS, NIS, NIS+) для поиска в БД доменных имен, имен пользователей, имен групп пользователей и т.д..
Прикладная программа, которой необходимо, например, получить адрес хоста по его имени, вызывает подпрограмму gethostbyname(3) или аналогичную. При сборке программы к ней прилинковываются подпрограммы из библиотеки libc (glibc), которые проверяют наличие требуемой информации в кеше nscd (если, конечно, запущен сервер nscd). Если информацию из кеша извлечь не удалось, то используется NSS для определения сервиса имен, который (которые) будет использован для поиска адреса по имени. В общем случае, таким сервисом служит DNS клиент (resolver).
Метод NSS был первоначально использован фирмой Sun Microsystems в Solaris 2 для облегчения перехода от локальных списков пользователей к NIS. Аналогичный механизм был реализован в GNU libc (glibc) для гибкого выбора системным администратором одного из возможных сервисов имен для каждого из следующих пространств имен:
Реализованные сервисы имен (возможно добавление своих сервисов):
Конфигурация NSS задается в файле /etc/nsswitch.conf. Для каждого пространства имен в отдельной строке указывается последовательность сервисов имен через пробел (приоритет слева направо). Имя пространства имен указывается в начале строки через двоеточие. Имена сервисов используются для вызова модулей вида /usr/lib/libnss_имя-сервиса.so (/lib/libnss_имя-сервиса.so.2, /lib/nss_имя-сервиса.so). Между имен сервисов можно записывать условные действия, например:
passwd: nisplus [NOTFOUND=return] files
приведет к поиску имени пользователя в NIS+, возврату отрицательного ответа при отсутствии имени пользователя в БД NIS+, поиску в файле /etc/passwd при отсутствии ответа от NIS+. Кроме статуса NOTFOUND (действие по умолчанию - continue) можно также использовать SUCCESS (return), UNAVAIL (continue), TRYAGAIN (continue). Перед статусом может стоять знак отрицания (!).
На тяжело нагруженном сервере рекомендуется тщательно оптимизировать настройку NSS.
|
Bog BOS: NSS (Name Service Switch) |
Последние изменения: |