在 ubuntu 14.04 上,我的用户通过 ldap 在我公司的域上进行身份验证时遇到了问题,IT 人员使用了一些配置文件和软件包。现在,在本地用户上,每当我执行带有sudo
提示的命令时,都会要求两次输入密码。
我已经通过互联网进行了广泛的搜索,但找不到解决方案。我已经尝试了所有可能的解决方案:所有 PAM 配置文件都已重置,以及/etc/nsswitch.conf
.我已经卸载并清除了所有与 相关的软件包ldap
,已经检查过/etc/hosts
....../etc/sudoers
但问题仍然存在。
我可以提供的唯一两个重要线索是,这只发生在命令行上(如果我使用 GUI 执行 synaptic,系统只要求我输入密码一次),而且从 看来,/var/log/auth.log
pam_unix.so 是仅被调用一次,因此 PAM 似乎没问题。
如何追踪这个问题的根源?
答案1
我已经成功解决了我的问题。让我困惑的是我认为
pam-auth-更新--force
完全覆盖所有 PAM 配置文件 ( /etc/pam.d/common-*
),因此这些文件最终会像全新的一样。但事实并非如此。所做pam-auth-update
的就是覆盖这些文件的所有文本,直到默认配置文件的最后一行,它实际上是这样读的# end of pam-auth-update config
(我没有意识到这是不言自明的)。用户在该行之前写入的所有内容都会被覆盖,但出现的所有内容后该行没有被更新触及。
由于某种原因,线路
@include common-auth
@include common-session
@include common-session-noninteractive
执行服务时由 PAM 调用的文件sudo
已粘贴到文件的最后common-session-noninteractive
,更新 PAM 并不会删除它们。他们让 PAM 第二次询问密码。