Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #
- # Init file for Password Download Client
- #
- # chkconfig: 345 98 02
- # description: Password Download Client
- # Script Copyright CloudCentral Pty. Ltd. (Australian Company: 128 975 842)
- # Not to be replicated or copied in any form without written prior approval
- #
- # based off code from VMops
- proc="CloudCentral VM Management"
- user=root
- # Command Definitions
- kernel=$(uname -s)
- if [ "$kernel" = "Linux" ]; then
- iproute="ip route list default"
- elif [ "$kernel" = "FreeBSD" ]; then
- iproute="ip route list table default"
- fi
- set_password() {
- DOMR_IP=$(${iproute} | sed 's/^default via \([0-9.]*\) dev .*/\1/' | tail -n 1)
- password=$(wget -t 3 -T 20 -O - -o /dev/null --header "DomU_Request: send_my_password" $DOMR_IP:8080)
- if [ $? -ne 0 ]
- then
- exit 1
- fi
- password=$(echo $password | tr -d '\r')
- if [ "$password" != "saved_password" ]
- then
- echo "${proc}: - Changing password for ${user} as requested."
- salt=$( dd if=/dev/urandom count=1 bs=20 2> /dev/null | base64 | tr '=+' a)
- pass=$(echo ${password} | mkpasswd -m sha-512 -s -S "${salt:0:16}" 2> /dev/null) \
- || pass=$(echo ${password} | mkpasswd -H md5 -s -S "${salt:0:8}" 2> /dev/null)
- if [ -z "${pass}" ]; then
- echo ${password} | passwd --stdin ${user}
- else
- usermod -p ${pass} ${user}
- fi
- if [ -e /var/spool/first_boot ] && [ -e /usr/bin/mysqladmin ]; then
- echo "${proc}: - Changing MySQL password for first boot."
- mysqladmin password $password
- fi
- wget -t 3 -T 20 -O /dev/null -o /dev/null --header "DomU_Request: saved_password" $DOMR_IP:8080
- else
- echo "${proc}: - No password change required."
- fi
- }
- case "$1" in
- start)
- set_password
- if [ -e /var/spool/first_boot ]; then
- rm /var/spool/first_boot
- fi
- ;;
- *)
- echo "$proc: No action required."
- ;;
- esac
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement