#!/bin/sh # # Usage: modpasswd freetz TMP=/var/tmp FLASH=$TMP/flash case $1 in freetz) echo 'Changing password for freetz webconfig' echo 'This password should be different from root'"'"'s password.' echo 'No "weak password" warnings are generated.' echo '' echo 'The webinterface may have major bugs allowing to execute' echo 'arbitrary code. USE AT YOUR OWN RISK!' echo '' . /mod/etc/conf/mod.cfg read -p 'Enter old password: ' -r -s oldpasswd echo salt=${MOD_HTTPD_PASSWD#'$1$'} salt=${salt%%\$*} if [ "$(/usr/bin/mkpasswd -m md5 "$oldpasswd" "$salt")" != "$MOD_HTTPD_PASSWD" ]; then echo 'Wrong password.' >&2 exit 2 fi read -p 'Enter new password: ' -r -s passwd1 echo read -p 'Re-enter new password: ' -r -s passwd2 echo if [ "$passwd1" != "$passwd2" -o -z "$passwd1" ]; then echo 'Passwords do not match or empty password.' 1>&2 echo 'modpasswd: The password for freetz webconfig is unchanged.' 1>&2 echo '' 1>&2 exit 1 fi /usr/bin/modconf set mod MOD_HTTPD_PASSWD=$(/usr/sbin/httpd -m "$passwd1") echo 'modpasswd: Password for freetz webconfig changed.' echo '' /usr/bin/modconf save mod [ "$2" = "noflash" ] || /usr/bin/modsave flash ;; *) echo "Usage: modpasswd freetz" >&2 exit 1 ;; esac exit 0