По умолчанию имена хостов просматриваются сперва в локальной
базе /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.
|