v-generate-api-key 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #!/bin/bash
  2. # info: generate api key
  3. # options: NONE
  4. # labels: panel
  5. #
  6. # example: v-generate-api-key
  7. #
  8. # The function creates a key file in $HESTIA/data/keys/
  9. #----------------------------------------------------------#
  10. # Variable&Function #
  11. #----------------------------------------------------------#
  12. source $HESTIA/func/main.sh
  13. keygen() {
  14. < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo;
  15. }
  16. KEYS="$HESTIA/data/keys/"
  17. HASH=$(keygen)
  18. # Perform verification if read-only mode is enabled
  19. check_hestia_demo_mode
  20. #----------------------------------------------------------#
  21. # Action #
  22. #----------------------------------------------------------#
  23. if [ ! -d ${KEYS} ]; then
  24. mkdir -p ${KEYS}
  25. chown admin:root ${KEYS}
  26. chmod 750 ${KEYS}
  27. fi
  28. if [[ -e ${KEYS}${HASH} ]] ; then
  29. while [[ -e ${KEYS}${HASH} ]] ; do
  30. HASH=$(keygen)
  31. done
  32. fi
  33. touch ${KEYS}${HASH}
  34. echo ${HASH}
  35. #----------------------------------------------------------#
  36. # Hestia #
  37. #----------------------------------------------------------#
  38. exit