Advertisement
Guest User

Untitled

a guest
May 7th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.01 KB | None | 0 0
  1. #!/bin/bash
  2. #
  3. # Init file for Password Download Client
  4. #
  5. # chkconfig: 345 98 02
  6. # description: Password Download Client
  7.  
  8.  
  9. # Script Copyright CloudCentral Pty. Ltd. (Australian Company: 128 975 842)
  10. # Not to be replicated or copied in any form without written prior approval
  11. #
  12. # based off code from VMops
  13.  
  14. proc="CloudCentral VM Management"
  15. user=root
  16.  
  17. # Command Definitions
  18. kernel=$(uname -s)
  19.  
  20. if [ "$kernel" = "Linux" ]; then
  21. iproute="ip route list default"
  22. elif [ "$kernel" = "FreeBSD" ]; then
  23. iproute="ip route list table default"
  24. fi
  25.  
  26. set_password() {
  27. DOMR_IP=$(${iproute} | sed 's/^default via \([0-9.]*\) dev .*/\1/' | tail -n 1)
  28. password=$(wget -t 3 -T 20 -O - -o /dev/null --header "DomU_Request: send_my_password" $DOMR_IP:8080)
  29.  
  30. if [ $? -ne 0 ]
  31. then
  32. exit 1
  33. fi
  34.  
  35. password=$(echo $password | tr -d '\r')
  36.  
  37. if [ "$password" != "saved_password" ]
  38. then
  39. echo "${proc}: - Changing password for ${user} as requested."
  40. salt=$( dd if=/dev/urandom count=1 bs=20 2> /dev/null | base64 | tr '=+' a)
  41. pass=$(echo ${password} | mkpasswd -m sha-512 -s -S "${salt:0:16}" 2> /dev/null) \
  42. || pass=$(echo ${password} | mkpasswd -H md5 -s -S "${salt:0:8}" 2> /dev/null)
  43. if [ -z "${pass}" ]; then
  44. echo ${password} | passwd --stdin ${user}
  45. else
  46. usermod -p ${pass} ${user}
  47. fi
  48.  
  49. if [ -e /var/spool/first_boot ] && [ -e /usr/bin/mysqladmin ]; then
  50. echo "${proc}: - Changing MySQL password for first boot."
  51. mysqladmin password $password
  52. fi
  53.  
  54. wget -t 3 -T 20 -O /dev/null -o /dev/null --header "DomU_Request: saved_password" $DOMR_IP:8080
  55. else
  56. echo "${proc}: - No password change required."
  57. fi
  58. }
  59.  
  60.  
  61. case "$1" in
  62. start)
  63. set_password
  64. if [ -e /var/spool/first_boot ]; then
  65. rm /var/spool/first_boot
  66. fi
  67. ;;
  68. *)
  69. echo "$proc: No action required."
  70. ;;
  71. esac
  72.  
  73. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement