Я настраиваю юбико-пам для включения доступа к sudo без пароля с помощью запроса-ответа от Yubikey. Следующие работы:
# /etc/pam.d/sudo
auth sufficient pam_yubico.so mode=challenge-response
auth required pam_opendirectory.so
account required pam_permit.so
password required pam_deny.so
session required pam_permit.so
за исключением случаев, когда модуль pam_yubico.so отсутствует, не установлен или поврежден, в этом случае сообщается:
$ sudo su -
sudo: невозможно инициализировать PAM: нет такого файла или каталога
Можно ли указать PAM игнорировать отсутствующий модуль, а не просто немедленно вернуться и предотвратить продолжение оценки стека PAM?
В расширенном синтаксисе (см. pam.conf(5)
), можно определить настраиваемое поведение при сбое вызова dlopen () путем определения поведения для open_err
код ошибки. Тем не менее, sufficient
уже должен делать это за вас. Вот эквивалентный расширенный синтаксис из той же справочной страницы:
sufficient
[success=done new_authtok_reqd=done default=ignore]
Видеть, что default=ignore
в конце?
The last of these, default, implies ´all valueN´s not mentioned
explicitly. Note, the full list of PAM errors is available in
/usr/include/security/_pam_types.h.
Другими словами, default=ignore
эквивалентно open_err=ignore
. Если PAM не ведет себя не описанным здесь образом, это может означать, что сбой происходит дальше по стеку.
Чтобы устранить любые сомнения, вот определение PAM_OPEN_ERR
из заголовков:
#define PAM_OPEN_ERR 1 /* dlopen() failure when dynamically */
/* loading a service module */