#!/bin/bash # **** License **** # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # This code was originally developed by Vyatta, Inc. # Portions created by Vyatta are Copyright (C) 2007 Vyatta, Inc. # All Rights Reserved. # # Author: Bob Gilligan # Description: Standalone script to reset the root passwd to factory default # value. Note: This script can ONLY be run as a standalone # init program by grub. # # **** End License **** # The Vyatta config file: CF=/opt/vyatta/etc/config/config.boot echo "Standalone root password recovery tool." # # Check to see if we are running in standalone mode. We'll # know that we are if our pid is 1. # if [ "$$" != "1" ]; then echo "This tool can only be run in standalone mode." exit 1 fi # # OK, now we know we are running in standalone mode. Talk to the # user. # echo "Do you wish to reset the reset the root password to its" echo -n "factory setting value of \"vyatta\"? (Yes/No) [No]: " # # Parse the user's response # read response response=${response:0:1} if [ "$response" != "y" -a "$response" != "Y" ]; then echo "OK, the root password will not be reset." echo -n "Rebooting in 5 seconds..." sleep 5 echo /sbin/reboot -f fi echo "Starting process to reset the root password..." echo "Re-mounting root filesystem read/write..." mount -o remount,rw / echo "Mounting the config filesystem..." mount /opt/vyatta/etc/config/ echo "Saving backup copy of config.boot..." cp $CF ${CF}.before_pwrecovery echo "Reseting the root password..." sed -i -e "/^.* user root {/,/^.* }/s/encrypted-password: .*$/encrypted-password: \"\$1\$\$Ht7gBYnxI1xCdO\/JOnodh.\"/" $CF echo "Root password has been reset." echo "Logging the activity..." echo "`date`: Root password reset to factory value" >> /var/log/messages echo -n "Machine will reboot in 5 seconds..." sync sleep 5 echo /sbin/reboot -f