PAM:身份验证失败,密码有效

PAM:身份验证失败,密码有效

命令

pamtester -v auth pknopf authenticate
pamtester: invoking pam_start(auth, pknopf, ...)
pamtester: performing operation - authenticate
Password:
pamtester: Authentication failure

日记

Feb 06 13:22:17 PAULS-ARCH unix_chkpwd[31998]: check pass; user unknown
Feb 06 13:22:17 PAULS-ARCH unix_chkpwd[31998]: password check failed for user (pknopf)
Feb 06 13:22:17 PAULS-ARCH pamtester[31997]: pam_unix(auth:auth): authentication failure; logname= uid=1000 euid=1000 tty= ruser= rhost=  user=pknopf

就目前情况而言,每个锁定屏幕都会阻止我“解锁”(KDE 锁定屏幕i3lock等)。

如果我开始i3locksudo我可以正确输入解锁屏幕的密码。但是,如果我以普通用户身份运行它,则无法使用普通用户或 root 密码来解锁。

这是我的 PAM 配置i3lock

#
# PAM configuration file for the i3lock screen locker. By default, it includes
# the 'system-auth' configuration file (see /etc/pam.d/login)
#
auth include system-auth

跑步ls -l /etc/passwd /etc/shadow /etc/group节目

-rw-r--r-- 1 root root 803 Feb 6 14:16 /etc/group
-rw-r--r-- 1 root root 1005 Feb 6 14:16 /etc/passwd
-rw------- 1 root root 713 Feb 6 14:16 /etc/shadow

这是 Arch 的全新安装,所以我不认为配置太奇怪。我应该寻找什么来调试这个?

跑步ls -l /sbin/unix_chkpwd节目

-rwxr-xr-x 1 root root 31392 Jun  9  2016 /sbin/unix_chkpwd

答案1

您的系统安装似乎已损坏。由于某种原因,该文件/sbin/unix_chkpwd失去了我期望看到的特权位。

通过以 root 身份运行以下命令来修复权限:

chmod u+s /sbin/unix_chkpwd

并验证权限现在如下(请参阅s用户权限中的位):

-rwsr-xr-x 1 root root 31392 Jun  9  2016 /sbin/unix_chkpwd

在我的 Raspbian 发行版上,权限设置略有不同(并且限制更严格)。如果上述更改不起作用,小心更改这两个文件的权限,看看这是否有帮助(组名并不重要,只要在两种情况下都相同即可):

-rw-r----- 1 root shadow  1354 Dec  6 13:02 /etc/shadow
-rwxr-sr-x 1 root shadow 30424 Mar 27  2017 /sbin/unix_chkpwd

答案2

在 Debian 机器上,就我而言,我必须将 exim4 用户添加到shadow组中。

usermod -a -G shadow Debian-exim

PAM:在 Debian 系统上,PAM 模块以与调用程序相同的用户身份运行,因此它们无法执行您自己无法执行的任何操作,特别是无法访问 /etc/shadow,除非用户位于影子组中。 - 如果您想使用 /etc/shadow 进行 Exim 的 SMTP 身份验证,您需要将 exim 作为组影子运行。只有 exim4-daemon-heavy 与 libpam 链接。我们建议改用 saslauthd。

http://lira.no-ip.org:8080/doc/exim4-base/README.Debian.html

答案3

有同样的问题,但还必须修复

chmod u+s /bin/sudo
chmod u+s /sbin/unix_chkpwd
chmod u+s /usr/bin/su 

错误是

unix_chkpwd[37679]: password check failed for user XXX
su: pam_unix(su-l:auth): authentication failure;

相关内容