現在のパスワードと新しいパスワードを比較する方法 mac - dscl

現在のパスワードと新しいパスワードを比較する方法 mac - dscl

すべての Mac の管理者パスワードを変更するスクリプトを作成しています。

これは基本的なスクリプトですが、パスワードを変更する前に、パスワードが既に正しいかどうかを確認したいと思います。

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! "

関連情報