Соблюдает ли 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, поддерживаемый ОС), в некоторых системах это не работает, если приложение было статически связано. Это потому, что соответствующая библиотека базы данных динамически загружается в программу.