v-generate-api-key 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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. # Includes
  13. # shellcheck source=/usr/local/hestia/func/main.sh
  14. source $HESTIA/func/main.sh
  15. keygen() {
  16. < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo;
  17. }
  18. KEYS="$HESTIA/data/keys/"
  19. HASH=$(keygen)
  20. # Perform verification if read-only mode is enabled
  21. check_hestia_demo_mode
  22. #----------------------------------------------------------#
  23. # Action #
  24. #----------------------------------------------------------#
  25. if [ ! -d ${KEYS} ]; then
  26. mkdir -p ${KEYS}
  27. chown admin:root ${KEYS}
  28. chmod 750 ${KEYS}
  29. fi
  30. if [[ -e ${KEYS}${HASH} ]] ; then
  31. while [[ -e ${KEYS}${HASH} ]] ; do
  32. HASH=$(keygen)
  33. done
  34. fi
  35. touch ${KEYS}${HASH}
  36. echo ${HASH}
  37. #----------------------------------------------------------#
  38. # Hestia #
  39. #----------------------------------------------------------#
  40. exit