/bin/login 尽管通过了 pam 帐户检查,但仍检查 passwd

/bin/login checks passwd despite passing pam account checks

为了学习 PAM 的基础知识,我编写了一个高度宽松的模块,returns PAM_SUCCESS 用于所有检查(身份验证、帐户、密码、会话)。所以理论上,应该可以使用任何用户名登录,即使是 /etc/passwd 中未列出的用户名,对吗?

不过,看起来 /bin/login 会自行执行帐户检查!如何禁用此功能,以便让任何用户名登录? (纯粹出于理论目的)。

我的模块日志:

pam_sm_authenticate:AUTH request for notinpasswd, allowing it
pam_sm_acct_mgmt:ACCT request, allowing it
Invalid user name "notinpasswd" in pam_open:670. Abort.            -- printed by /bin/login

这是我的 pam。d/other 配置:

auth      required   pam_open.so
account   required   pam_open.so
password  required   pam_open.so
session   required   pam_open.so

好吧,考虑到用户必须有可用的 shell,可能值得考虑使用真实的用户名。你试过了吗?如果 so.let 我知道并且我会四处挖掘,但在我的脑海中,一个有效的 shell 和用户是必需的。