仅当添加虚拟后缀时,PAM 许可才有效

仅当添加虚拟后缀时,PAM 许可才有效

我正在尝试使用 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 容器中(高山图像)。

我观察到的另一个奇怪的行为是:将nullokdebug标志放在第二行末尾会导致配置无效,但将它们放在中间可以解决问题。发生了什么事?T

答案1

好吧,事实证明这两种奇怪行为的问题都出在 CRLF 字符上。

一旦我使用 LF,一切都开始按预期工作。

相关内容