show_client_ipp.sh 1.3 KB

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