From 045cf9441d8c4bfeb178925bf140848ab251f779 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Mon, 27 Oct 2008 15:48:23 -0700 Subject: Fix password changer to deal with update config format Colons are no longer used in config file format, so the sed command to change password was having no effect. Bugfix 3665 --- scripts/install-system | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) mode change 100644 => 100755 scripts/install-system (limited to 'scripts/install-system') diff --git a/scripts/install-system b/scripts/install-system old mode 100644 new mode 100755 index ff7a5d41..d755339d --- a/scripts/install-system +++ b/scripts/install-system @@ -854,6 +854,11 @@ copy_config () { fi } +set_encrypted_password() { + sed -i \ + -e "/ user $1 {/,/}/s/encrypted-password .*\$/encrypted-password: \"$2\"/" $3 +} + change_password() { local user=$1 local pwd1="1" @@ -861,9 +866,9 @@ change_password() { until [ "$pwd1" == "$pwd2" ] do - read -p "Enter $user password:" -r -s pwd1 <>/dev/tty 1>&0 + read -p "Enter $user password:" -r -s pwd1 <>/dev/tty 2>&0 echo - read -p "Retype $user password:" -r -s pwd2 <>/dev/tty 1>&0 + read -p "Retype $user password:" -r -s pwd2 <>/dev/tty 2>&0 echo if [ "$pwd1" != "$pwd2" ] @@ -873,10 +878,7 @@ change_password() { # escape any slashes in resulting password local epwd=$(mkpasswd -H md5 "$pwd1" | sed 's:/:\\/:g') - - sed -i \ - -e "/ user $user {/,/}/s/encrypted-password:.*\$/encrypted-password: \"$epwd\"/" \ - $rootfsdir$ofrconfdir/config.boot + set_encrypted_password $user $epwd $rootfsdir$ofrconfdir/config.boot } system_setup () { -- cgit v1.2.3 From 21b96894a7ad4e44838312668429cc5c670ee55b Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Tue, 28 Oct 2008 16:23:01 -0700 Subject: Fix standalone password reset Handle case of running in standalone where there is no /dev/tty. Handle both formats in configuration file Bugfix 3844 --- scripts/install-system | 2 +- scripts/standalone_root_pw_reset | 19 ++++++++----------- 2 files changed, 9 insertions(+), 12 deletions(-) (limited to 'scripts/install-system') diff --git a/scripts/install-system b/scripts/install-system index d755339d..e4464ede 100755 --- a/scripts/install-system +++ b/scripts/install-system @@ -856,7 +856,7 @@ copy_config () { set_encrypted_password() { sed -i \ - -e "/ user $1 {/,/}/s/encrypted-password .*\$/encrypted-password: \"$2\"/" $3 + -e "/ user $1 {/,/}/s/encrypted-password .*\$/encrypted-password \"$2\"/" $3 } change_password() { diff --git a/scripts/standalone_root_pw_reset b/scripts/standalone_root_pw_reset index 715c67fc..d089b50d 100755 --- a/scripts/standalone_root_pw_reset +++ b/scripts/standalone_root_pw_reset @@ -25,7 +25,7 @@ CF=/opt/vyatta/etc/config/config.boot set_encrypted_password() { sed -i \ - -e "/ user $1 {/,/}/s/encrypted-password .*\$/encrypted-password: \"$2\"/" $3 + -e "/ user $1 {/,/}/s/encrypted-password.*\$/encrypted-password \"$2\"/" $3 } change_password() { @@ -35,9 +35,9 @@ change_password() { until [ "$pwd1" == "$pwd2" ] do - read -p "Enter $user password:" -r -s pwd1 <>/dev/tty 2>&0 + read -p "Enter $user password: " -r -s pwd1 echo - read -p "Retype $user password:" -r -s pwd2 <>/dev/tty 2>&0 + read -p "Retype $user password: " -r -s pwd2 echo if [ "$pwd1" != "$pwd2" ] @@ -65,21 +65,18 @@ fi # OK, now we know we are running in standalone mode. Talk to the # user. # -echo "Do you wish to change the root password" -echo -n "to the original default value (vyatta)? (Yes/No) [No]: " -read response +read -p "Do you wish to change the root password? " response response=${response:0:1} if [ "$response" != "y" -a "$response" != "Y" ]; then - echo "OK, the root password will not be reset." + echo "OK, the root password will not be changed." echo -n "Rebooting in 5 seconds..." sleep 5 echo /sbin/reboot -f fi - -echo "Starting process to reset the root password..." +echo "Starting process to change the root password..." echo "Re-mounting root filesystem read/write..." mount -o remount,rw / @@ -94,10 +91,10 @@ fi echo "Saving backup copy of config.boot..." cp $CF ${CF}.before_pwrecovery -echo "Setting the root password..." - +echo change_password root +echo "Root password changed" echo $(date "+%b%e %T") $(hostname) "Root password changed" \ | tee -a /var/log/auth.log >>/var/log/messages -- cgit v1.2.3