현재 비밀번호와 새 비밀번호를 비교하는 방법 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! "

관련 정보