Удаление пользователей OpenVpn разных протоколов
This commit is contained in:
@ -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'"
|
||||
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 успешно удален!"
|
||||
|
||||
Reference in New Issue
Block a user