Я установил конфигурацию аутентификации PAM для OpenVPN.

auth required pam_exec.so debug expose_authtok /opt/openvpn/bin/pamauth

Скрипт pamauth возвращает 0 в случае успеха. Я проверяю, что это правда, также выводя значение в файл из скрипта pamauth .

<user authentication process>
echo $EXIT_CODE >/tmp/result       #yields a '0' in /tmp/result
exit $EXIT_CODE

Но аутентификация не проходит, и auth.log показывает следующее, хотя я ясно вижу из /tmp/result что мой скрипт pamauth запустился и вызвал exit 0

Jul  5 09:53:29 client openvpn: pam_exec(openvpn:auth): send password to child
Jul  5 09:53:29 client openvpn: pam_exec(openvpn:auth): Calling /opt/openvpn/bin/pamauth ...
Jul  5 09:53:29 client openvpn: pam_unix(openvpn:account): could not identify user (from getpwnam(test40))

1 ответ1

0

В сообщении об ошибке даже не упоминается pam_exec .

Jul  5 09:53:29 client openvpn: pam_unix(openvpn:account): could not identify user (from getpwnam(test40))

Проблема в стадии управления account ( аккаунтом ). (Если в конфигурации для pam.d/openvpn нет модулей account , PAM будет использовать модули, настроенные в pam.d/other .)

"Не удалось идентифицировать пользователя" здесь означает, что модуль pam_unix не смог найти учетную запись пользователя test40 в системе. Если вы недавно редактировали nsswitch.conf , возможно, вам придется перезапустить OpenVPN.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .