Соблюдает ли getpwnam /etc/nsswitch.conf?

Соблюдает ли getpwnam /etc/nsswitch.conf?

Manpage для getpwnam состояния

Функция getpwnam() возвращает указатель на структуру, содержащую разбитые поля записи в базе данных паролей (например, локальный файл паролей /etc/passwd, NIS и LDAP), который соответствует имени пользователя.

Это заставляет меня полагать, что он должен уважать /etc/nsswitch.conf, перебирая все записи, перечисленные для passwd строка (... но у меня есть сообщение об ошибке, указывающее, что это не так).

Редактировать: я нашел 3c man-страницу, которая указывает, что он уважает его, так что теперь вопрос в том, под какими операционными системами он поддерживается

2 ответа

Решение

Он уважает /etc/nsswitch.conf в каждой операционной системе, соответствующей POSIX.

Хотя это будет нормально уважать /etc/nsswitch.conf (или любой другой механизм выбора базы данных passwd, поддерживаемый ОС), в некоторых системах это не работает, если приложение было статически связано. Это потому, что соответствующая библиотека базы данных динамически загружается в программу.

Другие вопросы по тегам