diff --git a/vpn_user_delete.sh b/vpn_user_delete.sh index b1a97f8..7a7e054 100644 --- a/vpn_user_delete.sh +++ b/vpn_user_delete.sh @@ -1,35 +1,44 @@ #!/bin/bash +# Функция вывода помощи +usage() { + echo "Использовать: $0 <тип> <имя>" + echo " <тип> - Указать протокол: udp, tcp или guest(--TCP, для стронних пользователей)" + echo " <имя> - Имя удаляемого пользователя" + exit 1 +} + # Проверяем количество аргументов if [ $# -ne 2 ]; then - echo "Использование: $(basename $0) <тип> <имя>" - echo "Тип должен быть либо 'udp', либо 'guest'" - exit 1 + usage fi +revoke_client() { + echo "Процесс удаления $2" + cd /etc/openvpn/$1/easy-rsa || { echo "Директория не найдена"; return 1; } + ./easyrsa revoke "$2" >/dev/null 2>&1 + if [[ $? -ne 0 ]]; then + echo "Отсутствует пользователь $2 с протоколом $1" + exit 1 + fi + ./easyrsa gen-crl >/dev/null 2>&1 + find /etc/openvpn/$1/ccd/ -name "$2" -delete + find /etc/openvpn/$1/client-configs -name "$2.*" -delete +} + # Определяем протокол из аргумента case "$1" in udp) - echo "Процесс удаления $2" - cd /etc/openvpn/udp/easy-rsa - ./easyrsa revoke $2 - ./easyrsa gen-crl + revoke_client $1 $2 ;; tcp) - echo "Процесс удаления $2" - cd /etc/openvpn/tcp/easy-rsa - ./easyrsa revoke $2 - ./easyrsa gen-crl + revoke_client $1 $2 ;; guest) - echo "Процесс удаления $2" - cd /etc/openvpn/guest/easy-rsa - ./easyrsa revoke $2 - ./easyrsa gen-crl + revoke_client $1 $2 ;; *) - echo "Ошибка! Аргумент должен быть 'udp' 'имя' или 'guest' 'имя'." - exit 1 + usage esac echo "Сертификат $2 успешно удален!"