show_client_ipp.sh 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #!/bin/bash
  2. set -o errexit
  3. set -o nounset
  4. set -o pipefail
  5. show_usage() {
  6. echo "Usage: $0 <ipp_file>"
  7. echo "Example: $0 /etc/openvpn/server/server/ipp.txt"
  8. exit 1
  9. }
  10. # Проверка прав
  11. check_permissions() {
  12. if [[ $EUID -ne 0 ]]; then
  13. log "Error: This script must be run as root" >&2
  14. exit 1
  15. fi
  16. }
  17. # Проверка что CCD файл находится в правильном пути
  18. check_ccd_path() {
  19. local ipp_file=$1
  20. local expected_path="/etc/openvpn/server"
  21. # Проверяем что путь начинается с /etc/openvpn/server/
  22. if [[ ! "$ipp_file" =~ ^$expected_path/ ]]; then
  23. log "Error: IPP must be located under $expected_path/"
  24. log "Provided path: $ipp_file"
  25. exit 1
  26. fi
  27. # Дополнительная проверка: каталог должен существовать
  28. if [[ ! -e "$ipp_file" ]]; then
  29. log "Error: file does not exist: $ipp_file"
  30. exit 1
  31. fi
  32. }
  33. main() {
  34. # Проверка прав
  35. check_permissions
  36. # Обработка аргументов
  37. [[ $# -lt 1 ]] && show_usage
  38. local ipp_file=$1
  39. # Проверка пути CCD файла
  40. check_ccd_path "$ipp_file"
  41. #get client ips
  42. cat "${ipp_file}" | sed 's/,$//'
  43. }
  44. main "$@"