如何比較目前密碼與新密碼 mac - dscl

如何比較目前密碼與新密碼 mac - dscl

我正在編寫一個腳本來更改我們所有 Mac 上的管理員密碼。

它是一個 =basic 腳本,但我想在嘗試更改密碼之前檢查密碼是否正確:

if [ currentPwd == newPwd ] then

echo 'password is correct'
else

#change account password

fi

這是我用來更改密碼的行:

#Change management account locally on mac
sudo dscl . passwd /Users/"${accountName}" "${currentPassword}" "${newPassword}"

echo " Local Admin Account - Password changed! "

這工作正常,但我想先檢查密碼是否尚未更改。我怎麼做?

答案1

使用這個,帶引號:note single=

if [ "$currentPassword" = "$newPassword" ]; then
    echo already changed
else
    sudo dscl ...
    echo Password changed
fi

答案2

這解決了我的問題:

#Check for authentication 
        sudo dscl /Local/Default -authonly "${accountName}" "${currentPassword}" 2>&1 /dev/null
        if [ "$?" != "0" ]; then
            #Exit code was not 0 - password has already been changed so no further action
            echo "No action taken, account already updated! "

相關內容