Debian

由於 libpam 錯誤,Debian Wheezy -> Jessie 升級後 CUPS 無法正常工作

  • April 18, 2015

我剛剛通過更改/etc/apt/sources.lst. 如果重要:我固定systemdsysvinit在 中,升級後我刪除了 pin。如果我現在做apt-get update && apt-get dist-upgrade一切都是最新的。到目前為止,一切正常,只是出現了 CUPS 身份驗證問題:

在 Wheezy 上已經安裝並執行了 CUPS,遠端訪問被授予cupsctl --remote-admin. 我可以使用root:myrootpassword. 升級後我又做cupsctl --remote-admin了一次,它工作正常,所以我可以訪問管理 Web 面板。更改選項仍然需要身份驗證,但使用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 面板再次使用身份驗證?

出於某種原因,您最終i386 cups-daemon安裝了,而不是amd64. 這就是為什麼它最終需要i386PAM 模組……

要解決此問題,您需要刪除cups-daemon並重新安裝該amd64版本;作為根:

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

如果您的dpkg架構設置正確,您應該能夠刪除:amd64最後一個命令的部分。

引用自:https://unix.stackexchange.com/questions/196826