Sudo

設置 sudo 密碼與登錄密碼不同

  • October 22, 2018

我正在嘗試使用 PAM 為 sudo 使用與登錄時不同的密碼。

我最初是在這篇文章中工作的

設置 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.db

db5.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是否使用其中之一!)

引用自:https://unix.stackexchange.com/questions/475091