show_index.sh 985 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #!/bin/bash
  2. set -o errexit
  3. set -o nounset
  4. set -o pipefail
  5. show_usage() {
  6. echo "Usage: $0 [path_to_index.txt]"
  7. echo "Default index_txt: /etc/openvpn/server/server/rsa/pki/index.txt"
  8. exit 1
  9. }
  10. log() {
  11. logger -t "openvpn-www" -p user.info "$1"
  12. echo "$1" # Также выводим в консоль для обратной связи
  13. }
  14. # Проверка прав
  15. check_permissions() {
  16. if [[ $EUID -ne 0 ]]; then
  17. log "Error: This script must be run as root" >&2
  18. exit 1
  19. fi
  20. }
  21. validate_pki_dir() {
  22. local pki_dir=$1
  23. if [[ ! -d "${pki_dir}" || ! -f "${pki_dir}/index.txt" ]]; then
  24. log "Error: Invalid PKI directory - missing index.txt"
  25. exit 2
  26. fi
  27. }
  28. main() {
  29. # Argument handling
  30. [[ $# -lt 1 ]] && show_usage
  31. check_permissions
  32. PKI_DIR=$(dirname "${1}")
  33. validate_pki_dir "${PKI_DIR}"
  34. index_txt="${PKI_DIR}/index.txt"
  35. [ -e "${index_txt}" ] && cat "${index_txt}" || exit 1
  36. }
  37. main "$@"