6.7. Изменение порядка разрешения имён

Описание.  Кандидат BSDA должен уметь определить в каком порядке опрашиваются различные системы при разрешении имён и знать в каком конфигурационном файле это определяется

Практика. ping(8), telnet(1), nsswitch.conf(5), resolv.conf(5), host.conf(5)

Комментарий

6.7.1. nsswitch.conf(5)

По умолчанию имена хостов просматриваются сперва в локальной базе /etc/hosts, затем в распределённой базе DNS. Можно считать, что это и то и другое это одна большая база данных, состоящая из двух источников: локального файла и удалённой системы. За то в каком порядке опрашивать эти источники отвечает системный вызов nsdispatch(3), который конфигурируется при помощи файла nsswitch.conf(5). Диспетчер имён nsdispatch(3) отвечает не только за порядок опроса источников в базе имен хостов (т.е. за работу системного вызова gethostbyname(3)) Но и за работу некоторых других баз (см. ниже). Далее фрагментарно дан перевод к соответствующей странице man(1) выполненный мною.

Файл nsswitch.conf(5) служит для конфигурирования системы nsdispatch(3).

Данный конфигурационный файл управляет процессами разрешения имён в базах данных хостов, пользователей, групп и т.д. Каждая база данных состоит из нескольких источников (локальные файлы, DNS, NIS), а порядок просмотра этих источников задаётся в nsswitch.conf(5).

Каждая запись в nsswitch.conf(5) состоит из имени базы и списка источников разделённых пробелами.

Поле с источниками может включать следующие имена:

files
локальные файлы: /etc/hosts, /etc/passwd и проч.
dns
Система DNS. Базы hosts и networks используют записи класса IN остальные базы используют класс HS (Hesoid)
nis
NIS (YP)
compat
Поддерживает +/- в базах passwd и group. Если такой источник имеется, он дожен быть единственным для данной базы.

Поддерживаются следующие базы данных:

group
getgrent(3)
hosts
gethostbyname(3)
networks
getnetbyname(3)
passwd
getpwent(3)
shells
getusershell(3)
[Замечание]Замечание
Всё сказанное в настоящем разделе верно для FreeBSD, NetBSD и DragonFly BSD, но не для OpenBSD. В OpenBSD файла nsswitch.conf(5) нет. В BSD nsswitch.conf(5) впервые появился в NetBSD, затем перекочевал в FreeBSD и DragonFly BSD.

Обновлено: 12.03.2015