首頁 > 軟體

Arch Linux sudo: PAM authentication error: Module is unknown [Solved!]

2020-06-16 17:14:15

問題描述:  

我的 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


IT145.com E-mail:sddin#qq.com