#!/bin/bash # Функция вывода помощи usage() { echo "Использовать: $0 <тип> <имя>" echo " <тип> - Указать протокол: udp, tcp или guest(--TCP, для стронних пользователей)" echo " <имя> - Имя удаляемого пользователя" exit 1 } # Проверяем количество аргументов if [ $# -ne 2 ]; then 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) revoke_client $1 $2 ;; tcp) revoke_client $1 $2 ;; guest) revoke_client $1 $2 ;; *) usage esac echo "Сертификат $2 успешно удален!" exit 0