diff options
Diffstat (limited to 'scripts/standalone_root_pw_reset')
-rwxr-xr-x | scripts/standalone_root_pw_reset | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/scripts/standalone_root_pw_reset b/scripts/standalone_root_pw_reset new file mode 100755 index 00000000..2d2a3d25 --- /dev/null +++ b/scripts/standalone_root_pw_reset @@ -0,0 +1,83 @@ +#!/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 <gilligan@vyatta.com> +# 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 |