#!/bin/bash # **** License **** # Version: VPL 1.0 # # The contents of this file are subject to the Vyatta Public License # Version 1.0 ("License"); you may not use this file except in # compliance with the License. You may obtain a copy of the License at # http://www.vyatta.com/vpl # # Software distributed under the License is distributed on an "AS IS" # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See # the License for the specific language governing rights and limitations # under the License. # # 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