PAM:验证失败,密码有效

Pau*_*opf 13 pam

命令

pamtester -v auth pknopf authenticate
pamtester: invoking pam_start(auth, pknopf, ...)
pamtester: performing operation - authenticate
Password:
pamtester: Authentication failure
Run Code Online (Sandbox Code Playgroud)

期刊

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
Run Code Online (Sandbox Code Playgroud)

就目前而言,每个锁屏都会阻止我“解锁”(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
Run Code Online (Sandbox Code Playgroud)

跑步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
Run Code Online (Sandbox Code Playgroud)

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

跑步ls -l /sbin/unix_chkpwd节目

-rwxr-xr-x 1 root root 31392 Jun  9  2016 /sbin/unix_chkpwd
Run Code Online (Sandbox Code Playgroud)

roa*_*ima 16

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

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

chmod u+s /sbin/unix_chkpwd
Run Code Online (Sandbox Code Playgroud)

并验证权限如下(参见s用户权限中的位):

-rwsr-xr-x 1 root root 31392 Jun  9  2016 /sbin/unix_chkpwd
Run Code Online (Sandbox Code Playgroud)

在我的 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
Run Code Online (Sandbox Code Playgroud)


Dan*_*ski 5

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

usermod -a -G shadow Debian-exim
Run Code Online (Sandbox Code Playgroud)

PAM:在 Debian 系统上,PAM 模块以与调用程序相同的用户身份运行,因此它们不能做任何你自己不能做的事情,特别是不能访问 /etc/shadow,除非用户在组 shadow 中。- 如果您想将 /etc/shadow 用于 Exim 的 SMTP AUTH,您需要将 exim 作为组 shadow 运行。只有 exim4-daemon-heavy 与 libpam 相关联。我们建议改用 saslauthd。

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

  • 这会造成巨大的安全隐患。 (2认同)
  • 将服务用户“Debian-exim”添加到影子组,攻击者可以在服务受到威胁时读取包含(散列)机器密码的“/etc/shadow”。我没有替代解决方案,但我只想指出安全隐患。 (2认同)
  • 这可能是正确的解决方案,但从安全的角度来看绝对*不是安全的解决方案*。 (2认同)