由於 libpam 錯誤,Debian Wheezy -> Jessie 升級後 CUPS 無法正常工作
我剛剛通過更改
/etc/apt/sources.lst
. 如果重要:我固定systemd
留sysvinit
在 中,升級後我刪除了 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
. 這就是為什麼它最終需要i386
PAM 模組……要解決此問題,您需要刪除
cups-daemon
並重新安裝該amd64
版本;作為根:apt-get remove cups-daemon:i386 apt-get install cups-daemon:amd64
如果您的
dpkg
架構設置正確,您應該能夠刪除:amd64
最後一個命令的部分。