Google Authenticator PAM для определенных пользователей
Моя текущая конфигурация sshd PAM:
#%PAM-1.0
auth include system-auth
account required pam_nologin.so
account include system-auth
password include system-auth
session optional pam_keyinit.so force revoke
session include system-auth
session required pam_loginuid.so
Я добавляю Google Authenticator, но мы не готовы распространить его на всех пользователей.
Я полагаю, что для пользователей из группы "gauth" должно потребоваться PAM Google Authenticator, но я надеялся, что кто-нибудь сможет проверить мою работу, прежде чем я выйду из SSH...
#%PAM-1.0
auth include system-auth
account required pam_nologin.so
account include system-auth
password include system-auth
auth [success=1 default=ignore] pam_succeed_if.so quiet user notingroup gauth
auth required pam_google_authenticator.so
session optional pam_keyinit.so force revoke
session include system-auth
session required pam_loginuid.so
Правильно ли я понимаю, что "success=1" означает "пропустить следующую строку, если это успешно"?
2 ответа
Я верю, что вы понимаете правильно, основываясь на документации PAM.
Вы должны иметь возможность вносить изменения, тестировать и возвращать их обратно, если это необходимо, если вы открываете другое соединение для тестирования, оставляя свой исходный сеанс ssh подключенным (хотя убедитесь, что время не истекло!)
Когда я играю со стеком PAM, я обычно не использую сервис, который я на самом деле хочу изменить, поскольку это "продуктивный" сервис.
Так что в этом случае я бы протестировал с /etc/pam.d/login вместо ssh. Логин можно проверить, просто позвонив:
login
Если конфиг PAM выглядит хорошо, я могу перенести его в gdm, ssh или что-то еще. (Кому нужен локальный логин;-)
И да, успех =n означает, в случае успеха, пропустить следующие n строк.