Linux

使用 shell 腳本檢查使用者密碼

  • December 13, 2016

我有一個腳本詢問使用者的密碼,我想檢查給定的密碼是否錯誤。

#A little fragment of my script

read -sp 'Your password: ' password;

if [[ $password -ne WHAT GOES HERE? ]]; then
   MORE CODE HERE
else
   MORE CODE HERE
fi

沒有完全可移植的方法來檢查使用者的密碼。這需要一個特權執行檔,所以這不是你可以從頭開始的東西。PAM用於大多數非嵌入式 Linux 系統以及許多嵌入式系統和大多數其他 Unix 變體,它帶有一個 setuid 二進製文件,但它沒有直接的 shell 介面,您需要通過 PAM 堆棧。

您可以在 Perl、Python 或Ruby中使用 PAM 綁定。

您可以安裝幾個checkpassword實現之一。

如果允許使用者對任何事情執行 sudo,sudo -kv則將提示進行身份驗證(除非在 sudo 配置中已禁用此功能)。但如果沒有關於使用者的 sudoers 規則,這將不起作用。

你可以執行su。這適用於大多數實現。在您的情況下,這可能是最好的選擇。

if su -c true "$USER"; then
 echo "Correct password"
fi

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