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