Sudo 不再识别我的密码

Sudo 不再识别我的密码
  • 问题发生在远程服务器上,因此一切都通过 完成ssh
  • 我可以用我的密钥登录,这里没问题。
  • 我可以随意更改我的密码passwd(我相信这表明这是我的用户的正确密码)。
  • 我的用户在 sudoers 文件中(我可以检查pkexec cat /etc/sudoers并输入 root 密码)

但是,以普通用户身份登录后,我无法sudo再运行命令,只是说Sorry, try again密码输入错误。

我不知道是什么原因造成的,我尝试更改密码,虽然可以,但却无法解决问题sudo

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.10
Release:        12.10
Codename:       quantal

答案1

好的,已经修复,但我真的不知道到底是什么原因导致的。

问题出在/etc/pam.d/common-session-noninteractive

它有过

session [success=1 default=ignore] pam_succeed_if.so service in cron 
quiet use_uid

看起来,将这段代码放在两行而不是一行会完全破坏 PAM。我刚刚将其改为

session [success=1 default=ignore] pam_succeed_if.so service in cron quiet use_uid

现在一切恢复正常。

我必须感谢@AaronD 的评论,因为它指引我去调查 PAM,起初我发现它没什么错误(查看/etc/pam.d/sudo),但是当我查看/var/log/auth.log并注意到所有的 PAM 错误时,我感觉我正在朝着正确的方向挖掘。

日志条目如下:

Dec 28 15:43:33 srv12120 sudo: PAM (sudo) illegal module type: quiet
Dec 28 15:43:33 srv12120 sudo: PAM pam_parse: expecting return value; [...use_uid]
Dec 28 15:43:33 srv12120 sudo: PAM (sudo) no module name supplied

通过谷歌搜索,我此论坛帖子这给了我上面强调的解决方案。

答案2

我最近遇到了同样的问题,尽管我不得不用稍微不同的方法来解决它。原因非常相似。

基本上,就我的情况而言,不知何故,/etc/pam.d/common-session-noninteractive以一种相当奇怪的方式被稍微损坏了。我的common-session-noninteractive看起来像这样:

# since the modules above will each just jump around
session required                        pam_permit.so
# The pam_umask module will set the umask according to the system default in
# /etc/login.defs and user settings, solving the problem of different
# umask settings with different shells, display managers, remote sessions etc.
# See "man pam_umask".
session optional                        pam_umask.so
# and here are more per-package modules (the "Additional" block)
Dec 25 11:45:01 websrv CRON[44085]: pam_unix(cron:session): session opened for user root by (uid=0) session 
required                        pam_unix.so
# end of pam-auth-update config

问题在于Dec 25 11:45:01 websrv CRON[44085]: pam_unix(cron:session): session opened for user root by (uid=0)文本,它显然以某种方式插入到了pam配置文件中。

我的假设是,事实上,真的猜测是某个脚本以某种方式从附加到内核身份验证日志的 tty 修改了此文件,并且意外地catecho文本添加到了文件中。我从未接触过任何pam相关内容。

无论如何,一旦我发现问题,修复就很简单,但调试输出肯定相当不清楚。

相关内容