由于 libpam 错误,在 Debian Wheezy -> Jessie 升级后,CUPS 无法正常工作

由于 libpam 错误,在 Debian Wheezy -> Jessie 升级后,CUPS 无法正常工作

我刚刚通过更改/etc/apt/sources.lst.如果重要的话:我固定systemd为保留sysvinit,升级后我删除了固定。如果我现在做的apt-get update && apt-get dist-upgrade一切都是最新的。到目前为止,一切正常,只出现了 CUPS 身份验证的问题:

在 Wheezy 上,已经安装并运行了 CUPS,并通过 授予了远程访问权限cupsctl --remote-admin。我可以在网络界面上使用 进行身份验证root:myrootpassword。升级后,我cupsctl --remote-admin再次进行了操作,它成功了,这样我就可以访问管理网络面板了。更改选项仍然需要身份验证,但使用root:myrootpassword不再有效。

我查找了/var/log/cups/error_log尝试在 CUPS Web 界面上进行身份验证时打印的日志文件:

pam_authenticate() returned 28 (Module is unknown)

然后我查看了/etc/pam.d/cups,其中有:

@include common-auth
@include common-account
@include common-session

这三个包含文件存在于同一目录中并且非空。然而我对 pam 没有经验。这些软件包已安装:

# dpkg --get-selections | grep  pam
libpam-cap:amd64                                install
libpam-ck-connector:amd64                       install
libpam-modules:amd64                            install
libpam-modules-bin                              install
libpam-runtime                                  install
libpam0g:amd64                                  install
libpam0g:i386                                   install

该文件/var/log/auth.log有:

Apr 17 15:01:14 mypc cupsd: PAM unable to dlopen(pam_ck_connector.so): /lib/security/pam_ck_connector.so: cannot open shared object file: No such file or directory
Apr 17 15:01:14 mypc cupsd: PAM adding faulty module: pam_ck_connector.so

但是软件包pam_ck_connector已安装并且是最新版本。做一个find / -name pam_ck_connector.so给予:

/lib/x86_64-linux-gnu/security/pam_ck_connector.so

所以看来这个文件只是位于错误的路径中。我尝试设置一个符号链接,但后来我进入了/var/log/auth.log这个文件:

wrong ELF class: ELFCLASS64

然后我安装了该i386软件包:

apt-get install libpam-ck-connector:i386

它安装到/lib/i386[...]/security/libpam-ck-connector.so.我再次设置了一个符号链接。但随后又出现了同样的按摩pam_cap。那么,我们是否遇到某些软件包(libpam*cups)的 32<->64 位兼容性问题或 Debian 软件包管理器/数据库中的错误?让人们手动安装这些东西并设置符号链接不可能是正确的方法,不是吗?

如何修复此错误消息,以便root:myrootpassword从 CUPS Web 面板再次进行身份验证?

答案1

由于某种原因,您最终i386 cups-daemon安装了,而不是amd64.这就是为什么它最终需要i386PAM 模块......

要解决此问题,您需要删除cups-daemon并重新安装该amd64版本;作为根用户:

apt-get remove cups-daemon:i386
apt-get install cups-daemon:amd64

如果您的dpkg架构设置正确,您应该能够删除:amd64最后一个命令的部分。

相关内容