設置 sudo 密碼與登錄密碼不同
我正在嘗試使用 PAM 為 sudo 使用與登錄時不同的密碼。
我最初是在這篇文章中工作的
不幸的是,每次我這樣做時都會遇到身份驗證錯誤,而且我不確定出了什麼問題。也許我錯誤地散列了我的密碼或錯誤地添加到數據庫中,但我不確定問題出在哪裡。
sudo 的配置讀取
session required pam_env.so readenv=1 user_readenv=0 session required pam_env.so readenv=1 envfile=/etc/default/locale user_readenv=0 auth required pam_userdb.so crypt=crypt db=/var/local/sudopass/passwd.db \#@include common-auth @include common-account @include common-session-noninteractive
我設置密碼
passwd -m des password
用於測試目的,然後使用 db5.3 創建數據庫 passwd.dbdb5.3_load -h /var/local/sudopass -t hash -T passwd.db
我的使用者名
73o8ECeyEW3Y2(密碼雜湊)
然後認證錯誤。請注意,當我將此數據庫放在我的主目錄中時,無論我如何設置權限,PAM 都找不到該數據庫。)
目前 auth.log 轉儲
我在獲取身份驗證錯誤時遇到問題,但這是 auth.log
Oct 18 12:07:43 az-GlAdOS-mk11-m sudo: pam_userdb(sudo:auth): Verify user
az’ 中的目前問題,帶有密碼10 月 18 日 12:07:43 az-GlAdOS-mk11-m sudo: pam_userdb(sudo:auth): user_lookup: 無法打開數據庫`/var/local/sudopass/passwd.db’: 沒有這樣的文件或目錄
10 月 18 日 12:07:43 az-GlAdOS-mk11-m sudo:az:PAM 身份驗證錯誤:服務模組錯誤;TTY=pts/4 ; 密碼=/home/az;使用者=根;命令=/bin/nano /etc/pam.d/sudo`
您連結到的指南是 5 年前的。PAM 不再使用 DES。嘗試使用它來生成您的密碼雜湊:
echo pass|mkpasswd -s -m sha-512
您可以使用 中的
targetpw
選項sudoers
,這將使 sudo 不詢問您自己的密碼,而是詢問您要執行命令的使用者的密碼(在大多數情況下是root
)。然後,您可以為自己的使用者和root
使用者帳戶使用不同的密碼。在您的 sudoers 文件中使用以下程式碼段來全域啟用此行為(使用 編輯它
visudo
):Defaults targetpw ALL ALL=(ALL) ALL
第二行意味著系統上的每個使用者都可以使用 sudo 如果他們知道目標使用者的密碼。如果省略它,則需要配置組的成員身份和目標的密碼。(請注意,如果您有權訪問 ,則可以繞過組要求
su
,因為它不支持此配置。)您還可以使用以下兩種變體之一,它們僅將
targetpw
指令分別應用於特定使用者或組:Defaults:username targetpw username ALL=(ALL) ALL Defaults:%groupname targetpw %groupname ALL=(ALL) ALL
(不要指定您
ALL ALL=(ALL) ALL
是否使用其中之一!)