expcleaner 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/bin/bash
  2. clear
  3. datenow=$(date +%s)
  4. remove_ovp () {
  5. if [[ -e /etc/debian_version ]]; then
  6. GROUPNAME=nogroup
  7. fi
  8. user="$1"
  9. cd /etc/openvpn/easy-rsa/
  10. ./easyrsa --batch revoke $user
  11. ./easyrsa gen-crl
  12. rm -rf pki/reqs/$user.req
  13. rm -rf pki/private/$user.key
  14. rm -rf pki/issued/$user.crt
  15. rm -rf /etc/openvpn/crl.pem
  16. cp /etc/openvpn/easy-rsa/pki/crl.pem /etc/openvpn/crl.pem
  17. chown nobody:$GROUPNAME /etc/openvpn/crl.pem
  18. [[ -e $HOME/$user.ovpn ]] && rm $HOME/$user.ovpn > /dev/null 2>&1
  19. [[ -e /var/www/html/openvpn/$user.zip ]] && rm /var/www/html/openvpn/$user.zip > /dev/null 2>&1
  20. } > /dev/null 2>&1
  21. echo -e "\E[44;1;37m Usuario Data Estado Ação \E[0m"
  22. echo ""
  23. for user in $(awk -F: '{print $1}' /etc/passwd); do
  24. expdate=$(chage -l $user|awk -F: '/Account expires/{print $2}')
  25. echo $expdate|grep -q never && continue
  26. datanormal=$(date -d"$expdate" '+%d/%m/%Y')
  27. tput setaf 3 ; tput bold ; printf '%-15s%-17s%s' $user $datanormal ; tput sgr0
  28. expsec=$(date +%s --date="$expdate")
  29. diff=$(echo $datenow - $expsec|bc -l)
  30. tput setaf 2 ; tput bold
  31. echo $diff|grep -q ^\- && echo "VALIDO NAO REMOVIDO" && continue
  32. tput setaf 1 ; tput bold
  33. echo "VENCEU FOI REMOVIDO"
  34. pkill -f $user
  35. userdel --force $user
  36. grep -v ^$user[[:space:]] /root/usuarios.db > /tmp/ph ; cat /tmp/ph > /root/usuarios.db
  37. if [[ -e /etc/openvpn/server.conf ]]; then
  38. remove_ovp $user
  39. fi
  40. done
  41. echo '0' > /etc/SSHPlus/Exp
  42. tput sgr0
  43. echo ""