45 lines
1.2 KiB
Bash
45 lines
1.2 KiB
Bash
#!/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 |