v-delete-user-ssh-key 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #!/bin/bash
  2. # info: add ssh key
  3. # options: USER KEY
  4. # labels: hestia
  5. #
  6. # example: v-delete-user-ssh-key user unique_id
  7. #
  8. # Delete user ssh key from authorized_keys
  9. #----------------------------------------------------------#
  10. # Variable&Function #
  11. #----------------------------------------------------------#
  12. # Argument definition
  13. user=$1
  14. keyid=$2
  15. # Includes
  16. source $HESTIA/func/main.sh
  17. source $HESTIA/conf/hestia.conf
  18. # Additional argument formatting
  19. #----------------------------------------------------------#
  20. # Verifications #
  21. #----------------------------------------------------------#
  22. check_args '2' "$#" 'USER KEYID'
  23. is_format_valid 'user'
  24. is_object_valid 'user' 'USER' "$user"
  25. is_object_unsuspended 'user' 'USER' "$user"
  26. source $USER_DATA/user.conf
  27. AUTHKEY_FILE="$HOMEDIR/$user/.ssh/authorized_keys"
  28. [ -z "$(readlink -f "$AUTHKEY_FILE" | egrep "^$HOMEDIR/$user/.ssh/")" ] && check_result $E_FORBIDEN "Invalid authorized keys path"
  29. if [ ! -f "$AUTHKEY_FILE" ]; then
  30. exit
  31. fi
  32. # Perform verification if read-only mode is enabled
  33. check_hestia_demo_mode
  34. #----------------------------------------------------------#
  35. # Action #
  36. #----------------------------------------------------------#
  37. sed -i "/${keyid}/d" "$AUTHKEY_FILE"
  38. #----------------------------------------------------------#
  39. # Hestia #
  40. #----------------------------------------------------------#
  41. # Logging
  42. log_history "Deleted ssh-key $user"
  43. log_event "$OK" "$ARGUMENTS"
  44. exit