1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #!/bin/sh random_pass() { PASS_LEN=`perl - le 'print int(rand(6))+9' ` START_LEN=`perl - le 'print int(rand(8))+1' ` END_LEN=$( expr ${PASS_LEN} - ${START_LEN}) SPECIAL_CHAR=`perl - le 'print map { (qw{@ ^ _ -})[rand 6] } 1' `; NUMERIC_CHAR=`perl - le 'print int(rand(10))' `; PASS_START=`perl - le "print map+(A..Z,a..z,0..9)[rand 62],0..$START_LEN" `; PASS_END=`perl - le "print map+(A..Z,a..z,0..9)[rand 62],0..$END_LEN" `; PASS=${PASS_START}${SPECIAL_CHAR}${NUMERIC_CHAR}${PASS_END} echo $PASS } #backup cp /usr/local/directadmin/scripts/setup .txt /usr/local/directadmin/scripts/setup .txt.bak cp /usr/local/directadmin/conf/my .cnf /usr/local/directadmin/conf/my .cnf.bak cp /usr/local/directadmin/conf/mysql .conf /usr/local/directadmin/conf/mysql .conf.bak #ResetPWD source /usr/local/directadmin/conf/mysql .conf MYSQLOLD=$ passwd MYSQLNEW=`random_pass` echo "OLDPASS:" $MYSQLOLD echo "NEWPASS:" $MYSQLNEW chmod 644 /usr/local/directadmin/conf/mysql .conf perl -pi -e "s/^mysql=.*$/mysql=$MYSQLNEW/" /usr/local/directadmin/scripts/setup .txt perl -pi -e "s/^password=.*$/password=$MYSQLNEW/" /usr/local/directadmin/conf/my .cnf perl -pi -e "s/^passwd=.*$/passwd=$MYSQLNEW/" /usr/local/directadmin/conf/mysql .conf mysqladmin -uroot -p$MYSQLOLD password $MYSQLNEW mysqladmin -uda_admin -p$MYSQLOLD password $MYSQLNEW service directadmin restart |