So vergleichen Sie das aktuelle Passwort mit dem neuen Passwort auf dem Mac - dscl

So vergleichen Sie das aktuelle Passwort mit dem neuen Passwort auf dem Mac - dscl

Ich schreibe ein Skript, um das Administratorkennwort auf allen unseren Macs zu ändern.

Es handelt sich um ein einfaches Skript, aber ich möchte vor dem Versuch, es zu ändern, prüfen, ob das Passwort bereits korrekt ist:

if [ currentPwd == newPwd ] then

echo 'password is correct'
else

#change account password

fi

Dies ist die Zeile, die ich zum Ändern des Passworts verwende:

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

echo " Local Admin Account - Password changed! "

Das funktioniert einwandfrei, aber ich möchte zunächst prüfen, ob das Passwort nicht bereits geändert wurde. Wie mache ich das?

Antwort1

Verwenden Sie dies mit den Anführungszeichen: note single=

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

Antwort2

Das hat mein Problem gelöst:

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

verwandte Informationen