2021-05-12 14:32:11
Arch Linux sudo: PAM authentication error: Module is unknown [Solved!]
問題描述:
我的 Arch Linux 已經用了快半年多,由於 Arch Linux 的滾掛問題,我從沒有直接升級過系統。軟體版本以及庫自然落後了一些。
就在我準備需要用到 NFS 時,掛載網路檔案系統時由於 librpc 太舊而失敗了。所以看來我得更新 librpc 了。用 yaourt -Ss 檢視了一下源上的版本。
最新的 NFS 需要 libtirpc.so.3 而我的卻是 libtirpc.so.1 。最後安裝了 libtirpc-1.0.1-2 後。悲劇發生了。任何用到 sudo , 以及 su 的地方,均出現如下錯誤:
sudo: PAM authentication error: Module is unknown
我意識到,我一旦重新啟動了將無法開機了。本來已經天晚,心想睡吧。明天再弄,先不關電腦就好。
結果,第二天發現螢幕已鎖定,突然又明白了什麼。果然尼碼,認證失敗。根本登不進去!真是悲劇。
解決辦法:
我參考 https://bbs.archlinux.org/viewtopic.php?pid=1578812 上別人的討論。發現別人是更新系統導致的,雖然降了 libtirpc 的版本,但是其他依賴沒有降下去。當然他是失敗。
但是我不一樣,我僅僅更新了 libtirpc ,而且當時我發現並沒有安裝任何的依賴軟體包。所以我認為我只要降回原來 libtirpc 的版本。便能解決問題。
具體做法:
重新啟動,進入 Grub 引導介面,按 e 編輯核心啟動引數。如圖,在 linux 那行末尾新增 single 以單使用者身份啟動,進入電源模式:
然後按 Ctrl + x 啟動。啟動後,請求輸入 root 密碼登入。此時可以成功登入 ( 暫時沒深究過為什麼 )。
登入後,就有一個 Shell 可用了,而且還是 root 賬戶。
# cd /var/cache/pacman/pkg # ls -l | grep rpc librpcsecgss-0.19-8-x86_64.pkg.tar.xz libtirpc-0.3.2-2-x86_64.pkg.tar.xz libtirpc-1.0.1-2-x86_64.pkg.tar.xz rpcbind-0.2.3-3-x86_64.pkg.tar.xz
顯然 libtirpc-0.3.2 是我之前合適的版本。(因為知道 Arch Linux 已滾掛,所以一直沒清理 pacman 安裝過的軟體包 ,如果你清理了,那就得費功夫找你原來版本的包了。)
# pacman -U libtirpc-0.3.2-2-x86_64.pkg.tar.xz
成功安裝後,重新啟動系統,問題便解決了。至於 NFS ,看來我還得好好思考下怎麼解決。
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-05/144138.htm
相關文章