- 问题发生在远程服务器上,因此一切都通过 完成
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 修改了此文件,并且意外地cat
将echo
文本添加到了文件中。我从未接触过任何pam
相关内容。
无论如何,一旦我发现问题,修复就很简单,但调试输出肯定相当不清楚。