#!/bin/bash

if [[ $UID != 0 ]] ; then
	exit 0
fi

if [[ ! -f /etc/reset-password-conf ]] ; then
        exit 0
fi

if [[ ! -e /dev/sda1 ]] ; then
        exit 0
fi

MOUNT_DIR=$(mktemp -d)
mount /dev/sda1 $MOUNT_DIR
UUID=$(head -1 /etc/reset-password-conf)
if [[ ! -f $MOUNT_DIR/$UUID ]] ; then
        umount /dev/sda1
        exit 0
fi

MD5_KEY=$(tail -1 /etc/reset-password-conf | awk '{ print $1 }' )
USERNAME=$(tail -2 /etc/reset-password-conf | head -1)
MD5_USB=$(md5sum $MOUNT_DIR/$UUID | awk '{ print $1 }')

if [[ "$MD5_KEY" != "$MD5_USB" ]] ; then
        exit 0
fi

if [[ -z $USERNAME ]] || [[ -z $MD5_KEY ]] ; then
        echo "ERROR:  malformed reset-password-conf file!"
        echo "Not reseting!"
        umount /dev/sda1
        exit 1
fi

echo "Resetting the password for $USERNAME"
passwd -d $USERNAME
passwd -e $USERNAME

echo "Self destructing password reset keys..."
rm $MOUNT_DIR/$UUID
rm /etc/reset-password-conf
umount $MOUNT_DIR
rmdir $MOUNT_DIR

