Клиент входа в систему не разрешит этого - также PAM не будет этого делать, так как PAM ожидает только один пароль.
Что бы вы сделали, это либо
A) введите пароль и OTP как один "пароль "+"OTP" или
B) сначала введите "пароль", а затем OTP.
Если вы хотите проверить пароль на pam_unix, это не сработает, так как вы не можете разделить пароль в PAM.
Так что вы можете сделать версию B):
Тогда вы определите что-то вроде:
auth requried pam_unix.so
auth required pam_OTP.so
Тогда PAM попросит вас ввести ваше имя пользователя, то для Вашего unix-пароля, и если он правильный. попросит у тебя твой OTP. (Если вы используете что-то вроде pam_otpw.)
После того, как я проверил, gdm НЕ отображал два экрана входа друг за другом, так что вам нужно проверить с вашим приложением.
Но вы также можете использовать OTP-бэкэнд, который поддерживает аутентификацию, как в A). privacyIDEA позволяет аутентифицироваться именно так, вы установите pam_radius, а затем аутентифицируетесь с "password "+"OTP". Для PAM это только один запрос на аутентификацию и один пароль для обработки, privacyIDEA разделит его в бэкэнде.
Хорошо. Неважно. Я был ближе к решению, чем думал. Прочитав Практические сценарии rc.d в BSD , мне просто нужно было добавить fcgiwrap_user = "www"
в /etc/rc.conf
.