Guest User

cloud-set-guest-password

a guest
Aug 8th, 2013
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.67 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. # Modify this line to specify the user (default is root)
  9. user=root
  10.  
  11. # Add your DHCP lease folders here
  12. DHCP_FOLDERS="/var/lib/dhclient/* /var/lib/dhcp3/*"
  13. password_received=0
  14. file_count=0
  15. error_count=0
  16.  
  17. for DHCP_FILE in $DHCP_FOLDERS
  18. do
  19. if [ -f $DHCP_FILE ]
  20. then
  21. file_count=$((file_count+1))
  22. PASSWORD_SERVER_IP=$(grep dhcp-server-identifier $DHCP_FILE | tail -1 | awk '{print $NF}' | tr -d '\;')
  23.  
  24. if [ -n $PASSWORD_SERVER_IP ]
  25. then
  26. logger -t "cloud" "Found password server IP $PASSWORD_SERVER_IP in $DHCP_FILE"
  27. logger -t "cloud" "Sending request to password server at $PASSWORD_SERVER_IP"
  28. password=$(wget -q -t 3 -T 20 -O - --header "DomU_Request: send_my_password" $PASSWORD_SERVER_IP:8080)
  29. password=$(echo $password | tr -d '\r')
  30.  
  31. if [ $? -eq 0 ]
  32. then
  33. logger -t "cloud" "Got response from server at $PASSWORD_SERVER_IP"
  34.  
  35. case $password in
  36.  
  37. "") logger -t "cloud" "Password server at $PASSWORD_SERVER_IP did not have any password for the VM"
  38. continue
  39. ;;
  40.  
  41. "bad_request") logger -t "cloud" "VM sent an invalid request to password server at $PASSWORD_SERVER_IP"
  42. error_count=$((error_count+1))
  43. continue
  44. ;;
  45.  
  46. "saved_password") logger -t "cloud" "VM has already saved a password from the password server at $PASSWORD_SERVER_IP"
  47. continue
  48. ;;
  49.  
  50. *) logger -t "cloud" "VM got a valid password from server at $PASSWORD_SERVER_IP"
  51. password_received=1
  52. break
  53. ;;
  54.  
  55. esac
  56. else
  57. logger -t "cloud" "Failed to send request to password server at $PASSWORD_SERVER_IP"
  58. error_count=$((error_count+1))
  59. fi
  60. else
  61. logger -t "cloud" "Could not find password server IP in $DHCP_FILE"
  62. error_count=$((error_count+1))
  63. fi
  64. fi
  65. done
  66.  
  67. if [ "$password_received" == "0" ]
  68. then
  69. if [ "$error_count" == "$file_count" ]
  70. then
  71. logger -t "cloud" "Failed to get password from any server"
  72. exit 1
  73. else
  74. logger -t "cloud" "Did not need to change password."
  75. exit 0
  76. fi
  77. fi
  78.  
  79. logger -t "cloud" "Changing password ..."
  80. echo $password | passwd --stdin $user
  81.  
  82. if [ $? -gt 0 ]
  83. then
  84. usermod -p `mkpasswd -m SHA-512 $password` $user
  85.  
  86. if [ $? -gt 0 ]
  87. then
  88. logger -t "cloud" "Failed to change password for user $user"
  89. exit 1
  90. else
  91. logger -t "cloud" "Successfully changed password for user $user"
  92. fi
  93. fi
  94.  
  95. logger -t "cloud" "Sending acknowledgment to password server at $PASSWORD_SERVER_IP"
  96. wget -t 3 -T 20 -O - --header "DomU_Request: saved_password" $PASSWORD_SERVER_IP:8080
  97. exit 0
Advertisement
Add Comment
Please, Sign In to add comment