PAM을 사용하여 2FA(중요한 정보가 아님)에 대해 OpenVPN을 인증하려고 합니다. 내 PAM 구성은 다음과 같습니다.

account required        pam_permit.so
auth    required        pam_google_authenticator.so secret=/etc/openvpn/google-authenticator/${USER} user=root forward_pass nullok debug authtok_prompt=pin

첫 번째 줄(또는 내가 넣은 곳)에 문제가 있습니다. 표시된 대로 줄을 사용하면 이해할 수 없는 이유로 PAM 구성이 중단됩니다.

/var/log/auth.log:

: No such file or directoryrary /lib/security/pam_permit.so PAM unable to dlopen(/lib/security/pam_permit.so
2022-01-06 23:02:53 err openvpn(pam_google_authenticato[9]: PAM adding faulty module: /lib/security/pam_permit.so

그러나 해당 줄 끝에 아무거나 추가하면(공백이나 더미 텍스트도 포함) PAM 구성이 완벽하게 작동합니다! 즉, 이것을 갖는 것 account required pam_permit.so (마지막에 공백에 주의), 또는 이것이 account required pam_permit.so DUMMY작동합니다!

나는 그 이유가 무엇인지 이해하지 못한다. 누구든지 여기서 문제가 무엇인지 이해하도록 도울 수 있습니까?

저는 Docker 컨테이너( 알파인 이미지)에 있습니다.

내가 관찰한 또 다른 이상한 동작: nullok, 또는 debug플래그를 두 번째 줄 끝에 넣으면 구성이 유효하지 않게 되지만 중간에 넣으면 문제가 해결됩니다. 무슨 일이야?

answer

글쎄, 두 이상한 행동의 문제는 CRLF 문자라는 것이 밝혀졌습니다.

LF를 사용하자마자 모든 것이 예상대로 작동하기 시작했습니다.