Я хотел бы иметь возможность настроить /etc/pam.d/sshd так, чтобы:
для всех пользователей, кроме тех, что находятся в группе "admin", модуль pam_radius обязательный.
для тех пользователей в группе admin модуль pam_radius достаточно.
Как это сделать?
Основываясь на ссылке, предоставленной Эндрю Б (спасибо Эндрю), я решил это следующим образом:
в /etc/pam.d/sshd:
auth [success=1 default=ignore] pam_access.so accessfile=/etc/security/ssh.conf
auth required pam_radius_auth.so
auth sufficient pam_radius_auth.so
@include common-auth
Я создал файл /etc/security/ssh.conf:
-:ALL EXCEPT admin:ALL
Этот файл запрещает доступ всем, кроме тех, кто находится в группе администраторов. Причина, по которой я не поместил эту строку в /etc/security/access.conf, заключается в том, что это может иметь непредвиденные последствия для других модулей, использующих pam_access.so. Таким образом, он получает свой собственный файл.
Вкратце, это позволяет администраторам иметь возможность входить в систему через механизмы @ common-auth (unix, ldap), если радиус не работает.