天天看點

【轉】解決Debian下sudo指令unable to initialize PAM問題

配置的Debian系統,先是用root賬戶apt-get install sudo安裝sudo指令;然後通過useradd指令建立子賬戶;最後修改sudoers通過添加相應賬戶名來開放執行sudo的權限。

本以為做完一切萬事大吉,可以切換到子賬戶痛快的用sudo了。其實不然,當我切換到剛才建立的子賬戶并執行sudo指令時出現了下面的錯誤提示:

<col>

無法初始化PAM,什麼是PAM?引用百度百科上的描述:

PAM(Pluggable Authentication Modules )是由Sun提出的一種認證機制。它通過提供一些動态連結庫和一套統一的API,将系統提供的服務 和該服務的認證方式分開,使得系統管理者可以靈活地根據需要給不同的服務配置不同的認證方式而無需更改服務程式,同時也便于向系統中添加新的認證手段。

實際上這是通過配置子產品實作認證的認證模式,PAM的配置檔案均位于Debian下/etc/pam.d目錄下,通過ls列出該目錄目前檔案,發現sudo果然在其中。使用cat /etc/pam.d/sudo出現以下資訊:

這裡分别通過@include指令包含了三類共享的認證子產品配置檔案,這些檔案也處于/etc/pam.d目錄下,好,問題也來了,我竟然沒有找到common-session-noninteractive這個配置檔案,聯想到剛才PAM錯誤的No such file or directory消息,基本可以推斷是這個配置檔案丢失導緻PAM無法引導sudo啟動。

上網搜尋了一下,得知關于common-session-noninteractive配置檔案的内容如下:

當然我們可以根據上述内容自己建立一個common-session-noninteractive配置檔案,好了,做完這些我們再一次進入子賬戶,然後嘗試sudo ls,呵呵,發現sudo能夠正常使用了,問題已經解決!​

上一篇: PAM

繼續閱讀