v-change-user-password 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #!/bin/bash
  2. # info: change user password
  3. # options: user password
  4. #
  5. # The function changes user's password and updates RKEY value.
  6. #----------------------------------------------------------#
  7. # Variable&Function #
  8. #----------------------------------------------------------#
  9. # Argument defenition
  10. user=$1
  11. password=$2
  12. # Includes
  13. source $VESTA/conf/vesta.conf
  14. source $VESTA/func/main.sh
  15. # Hiding password
  16. A2="******"
  17. EVENT="DATE='$DATE' TIME='$TIME' CMD='$SCRIPT' A1='$A1' A2='$A2' A3='$A3'"
  18. EVENT="$EVENT A4='$A4' A5='$A5' A6='$A6' A7='$A7' A8='$A8' A9='$A9'"
  19. #----------------------------------------------------------#
  20. # Verifications #
  21. #----------------------------------------------------------#
  22. check_args '2' "$#" 'user password'
  23. validate_format 'user' 'password'
  24. is_object_valid 'user' 'USER' "$user"
  25. is_object_unsuspended 'user' 'USER' "$user"
  26. #----------------------------------------------------------#
  27. # Action #
  28. #----------------------------------------------------------#
  29. # Changing user password
  30. echo "$password" | /usr/bin/passwd "$user" --stdin &>/dev/null
  31. md5=$(awk -v user=$user -F : 'user == $1 {print $2}' /etc/shadow)
  32. #----------------------------------------------------------#
  33. # Vesta #
  34. #----------------------------------------------------------#
  35. # Changing RKEY value
  36. update_user_value "$user" '$RKEY' "$(gen_password)"
  37. update_user_value "$user" '$MD5' "$md5"
  38. # Logging
  39. log_history "changed password"
  40. log_event "$OK" "$EVENT"
  41. exit