61 lines
1.4 KiB
Bash
Executable File
61 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
##########################################################################
|
|
# Script : Change PW for Admin Account
|
|
# Autor : Andreas Vogel
|
|
# Copyright : NEXTEnterprise gmbh, 2021
|
|
##########################################################################
|
|
|
|
set -x
|
|
|
|
############################################# Variablen #########################################################################
|
|
|
|
decode () {
|
|
echo "$1" | base64 -d ; echo
|
|
}
|
|
|
|
USER=${4}
|
|
PASS_AKTIV=$(decode ${5})
|
|
PASS_NEW=$(decode ${6})
|
|
|
|
############################################# Funktion #########################################################################
|
|
change_pw () {
|
|
expect <<EOF
|
|
spawn passwd $USER
|
|
expect "Old Password:"
|
|
send $PASS_AKTIV\r
|
|
expect "New Password:"
|
|
send $PASS_NEW\r
|
|
expect "Retype New Password:"
|
|
send $PASS_NEW\r
|
|
expect
|
|
EOF
|
|
}
|
|
|
|
|
|
check_change()
|
|
{
|
|
verify="$(dscl /Local/Default -authonly $USER $PASS_NEW)"
|
|
|
|
if [ "$verify" == "" ]
|
|
then
|
|
echo "Passwort wurde erfolgreich geändert"
|
|
else
|
|
|
|
echo "Error: Passwort für $USER konnte nicht geändert werden."
|
|
exit 1
|
|
|
|
fi
|
|
}
|
|
|
|
|
|
############################################# Ausführung #############################################################################
|
|
|
|
if [[ $(dscl /Local/Default -authonly $USER $PASS_NEW 2> /dev/null) == "" ]]
|
|
then
|
|
echo "Das Passwort entspricht bereits dem aktuellen Passwort - das Script wird beendet."
|
|
exit 0
|
|
else
|
|
change_pw
|
|
fi
|
|
|
|
check_change |