show_index.sh 955 B

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