Как сравнить текущий пароль с новым паролем 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! "

Связанный контент