Linux
使用 shell 腳本檢查使用者密碼
我有一個腳本詢問使用者的密碼,我想檢查給定的密碼是否錯誤。
#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