#!/bin/bash #user=$(echo ${saks:0:5}) # NUNCA DEJES DE APRENDER # POWER BY @CHUMOGH cco=1 [[ -e /bin/ejecutar/limFIX ]] && _limTOP="$(cat < /bin/ejecutar/limFIX)" || _limTOP='1' chekKEY &> /dev/null 2>&1 users=$(cat /etc/passwd|grep 'home'|grep 'false'|grep -v 'syslog'|awk -F ':' '{print $1}') _ps="$(ps x)" unset tmm ext tempo tempoin uskk=$(cat /bin/ejecutar/uskill) [[ ! -d /etc/scpdk1/userDIR ]] && mkdir /etc/scpdk1/userDIR source /etc/scpdk1/cabecalho mem_free=$(free --mega -h | awk 'NR==2{printf $4}') cpu_used="$(top -b -n1 | grep 'Cpu(s)' | awk '{print $2 + $4}')"% if [ "$_userlock" > 0 ]; then ul="\033[1;33m( \033[1;31m$_userlock \033[1;32mLOCKED \033[1;33m)" else ul="\033[1;33m( \033[1;32mALL UNLOCK \033[1;33m)" fi [[ -z $(echo -e ${_ps} | grep "ultimatebot" | grep -v "grep") ]] && bt="\033[1;31mOFF\033[0m" || bt="\033[1;32mON\033[0m" var_sks1=$(echo -e ${_ps} | grep "checkuser" | grep -v grep >/dev/null && echo -e "\033[1;32mON\033[0m" || echo -e "\033[1;31mOFF\033[0m") echo -e "${cor[2]} 🙎 ${cor[5]}CUENTAS SSH / SSL / DROPBEAR By @ChumoGH 🙎" msg -bar echo -e " \033[1;34m ▸ M LIBRE: \033[1;32m${mem_free} \033[1;34m ▸ USO DE CPU:\033[1;32m ${cpu_used} " msg -bar echo -e "\033[0;35m [\033[0;36m01\033[0;35m]\033[0;31m >${cor[3]} AGREGAR USUARIO\033[0;31m(\033[0;33mHWID\033[0;31m/\033[0;33mNORMAL\033[0;31m/\033[0;33mTOKEN\033[0;31m) 📝" # ${cor[2]} [-] >${cor[3]} - " echo -e "\033[0;35m [\033[0;36m02\033[0;35m]\033[0;31m >${cor[3]} BORRAR 1/TODOS LOS USUARIO/s" echo -e "\033[0;35m [\033[0;36m03\033[0;35m]\033[0;31m >${cor[3]} EDITAR USUARIOS REGISTRADOS" echo -e "\033[0;35m [\033[0;36m04\033[0;35m]\033[0;31m >${cor[3]} MOSTRAR USUARIOS REGISTRADOS" echo -e "\033[0;35m [\033[0;36m05\033[0;35m]\033[0;31m >${cor[3]} MOSTRAR USUARIOS CONECTADOS " echo -e "\033[0;35m [\033[0;36m06\033[0;35m]\033[0;31m >${cor[3]} EDITAR BANNER ( SSH/Dropbear )" echo -e "\033[0;35m [\033[0;36m07\033[0;35m]\033[0;31m >${cor[3]} LOG DE CONSUMO ( Artificial )" echo -e "\033[0;35m [\033[0;36m08\033[0;35m]\033[0;31m >${cor[3]} BLOQUEAR / DESBLOQUEAR USUARIOS $ul" echo -e "\033[0;35m [\033[0;36m09\033[0;35m]\033[0;31m >${cor[3]} BACKUP USUARIOS \033[0;32m(#OFFICIAL)" echo -e "\033[0;35m [\033[0;36m10\033[0;35m]\033[0;31m >${cor[3]} MENU CUENTAS SSR/SS \033[0;32m(#OFFICIAL)" echo -e "\033[0;35m [\033[0;36m11\033[0;35m]\033[0;31m >${cor[3]} MENU DE CUENTAS V2RAY \033[0;33m(#BETA)" echo -e "\033[0;35m [\033[0;36m12\033[0;35m]\033[0;31m >${cor[3]} CONTROL SSH ( BotTelegram $bt ) " echo -e "\033[0;35m [\033[0;36m13\033[0;35m]\033[0;31m >${cor[3]} CHECKUSER ONLINE ( $var_sks1 ) " [[ -e /etc/systemd/system/killadm.service ]] && echo -e "\033[0;35m [\033[0;36m14\033[0;35m]\033[0;31m >${cor[3]} VER LOGS DE MULTILOGUIN ( $ ) " #echo -e "\033[0;35m [\033[0;36m15\033[0;35m]\033[0;31m >${cor[3]} MENU DE CUENTAS TROJAN \033[0;33m(#BETA)" msg -bar [[ -e /etc/scpdk1/modulos ]] && echo -ne " \033[0;33m(\033[0;32mCONTADOR :$_on\033[0;33m) " || echo -ne "\033[0;33m(\033[0;32mCONTADOR :$_off\033[0;33m) " [[ -e /etc/systemd/system/killadm.service ]] && echo -e "\033[0;33m(\033[1;31m \033[1;36mKILL MULTILOGUIN ${_on}\033[0;33m) " || echo -e "\033[0;33m(\033[1;36mActiva en MENU 7-OPCION 6\033[1;31m\033[1;36m ${_off}\033[0;33m)\033[0m" msg -bar mportas () { unset portas portas_var=$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND" | grep "LISTEN") while read port; do var1=$(echo $port | awk '{print $1}') && var2=$(echo $port | awk '{print $9}' | awk -F ":" '{print $2}') [[ "$(echo -e $portas|grep "$var1 $var2")" ]] || portas+="$var1 $var2\n" done <<< "$portas_var" i=1 echo -e "$portas" } _usCHECK () { bash -c "$(curl -fsSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/usercodes/_multiK.sh)" --check #cat $(pwd)/--.key } selection_fun () { local selection="null" local range for((i=0; i<=$1; i++)); do range[$i]="$i "; done while [[ ! $(echo ${range[*]}|grep -w "$selection") ]]; do echo -ne "\033[1;31m NUMERO DE OPCION : " >&2 read selection tput cuu1 >&2 && tput dl1 >&2 done echo $selection } fk () { #echo -e "\033[1;39m " local _netCAT="$(netstat -tunlp)" echo -ne "$(msg -verd "") $(msg -verm2 "") "&& msg -bra "\033[1;41mEn APPS como HTTP Inyector,CUSTOM,KPN Rev,etc" #| pv -qL 15 [[ $(mportas|grep dropbear|head -1) ]] && { if echo -e "${_netCAT}" |grep sslh 1> /dev/null 2> /dev/null; then sslhp=`echo -e "${_netCAT}" | grep sslh| grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/sslh.txt && echo | cat /tmp/sslh.txt | tr '\n' ' ' > /etc/scpdk1/sslh.txt && cat /etc/scpdk1/sslh.txt`; #PORT=$(cat /etc/scpdk1/sslh.txt | sed 's/\s\+/,/g' | cut -d , -f1) for PORT in ${sslhp}; do echo -e "【 DROPBEAR >${cor[4]} $IP${cor[2]}:${cor[5]}$PORT${cor[2]}@${cor[4]}$name${cor[2]}:${cor[4]}$pass 】" | pv -qL 80 done else #echo -e "\033[1;39mPara uso Dropbear usa la Sintaxis" dropbearports=`echo -e "${_netCAT}" | grep dropbear | grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/dropbear.txt && echo | cat /tmp/dropbear.txt | tr '\n' ' ' > /etc/scpdk1/dropbearports.txt && cat /etc/scpdk1/dropbearports.txt`; #PORT=$(cat /etc/scpdk1/dropbearports.txt | sed 's/\s\+/,/g' | cut -d , -f1) for PORT in ${dropbearports}; do echo -e "【 Dropbear >${cor[4]} $IP${cor[2]}:${cor[5]}$PORT${cor[2]}@${cor[4]}$name${cor[2]}:${cor[4]}$pass 】" | pv -qL 80 done fi } || { echo -ne "$(msg -verd "") $(msg -verm2 "") "&& msg -bra "\033[1;41mNo existe Dropbear" | pv -qL 80 } ###### [[ $(mportas|grep stunnel|head -1) ]] && { if echo -e "${_netCAT}" |grep sslh 1> /dev/null 2> /dev/null; then sslhp=`echo -e "${_netCAT}" | grep sslh| grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/sslh.txt && echo | cat /tmp/sslh.txt | tr '\n' ' ' > /etc/scpdk1/sslh.txt && cat /etc/scpdk1/sslh.txt`; #PORT=$(cat /etc/scpdk1/sslh.txt | sed 's/\s\+/,/g' | cut -d , -f1) for PORT in ${sslhp}; do echo -e "【 SSL 😊 >${cor[4]} $IP${cor[2]}:${cor[5]}$PORT${cor[2]}@${cor[4]}$name${cor[2]}:${cor[4]}$pass 】" | pv -qL 80 done else #echo -e "\033[1;39mPara uso SSL usa la Sintaxis" sslports=`echo -e "${_netCAT}" | grep stunnel | grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/ssl.txt && echo | cat /tmp/ssl.txt | tr '\n' ' ' > /etc/scpdk1/sslports.txt && cat /etc/scpdk1/sslports.txt`; #PORT=$(cat /etc/scpdk1/sslports.txt | sed 's/\s\+/,/g' | cut -d , -f1) for PORT in ${sslports}; do echo -e "【 SSL 😊 >${cor[4]} $IP${cor[2]}:${cor[5]}$PORT${cor[2]}@${cor[4]}$name${cor[2]}:${cor[4]}$pass 】" | pv -qL 80 done fi } || { echo -ne "$(msg -verd "") $(msg -verm2 "") "&& msg -bra "\033[1;41mNo existe SSL" | pv -qL 80 #echo -e "\033[1;39m" } [[ -e /etc/scpdk1/slow/dnsi/server.pub && -e /etc/scpdk1/slow/dnsi/domain_ns ]] && { echo -e "【 SLOWDNS KEY >${cor[4]} $(cat /etc/scpdk1/slow/dnsi/server.pub) 】" echo -e "【 DOMINIO NS >${cor[4]} $(cat /etc/scpdk1/slow/dnsi/domain_ns) 】" echo -e "【 CONEXION REDIRECCIONADA VIA PUERTO ->${cor[4]} $(cat /etc/scpdk1/slow/dnsi/puerto) 】" } msg -bar } fkhwid () { local _netCAT="$(netstat -tunlp)" echo -ne "$(msg -verd "") $(msg -verm2 "") "&& msg -bra "\033[1;41m En APPS como HTTP Inyector, CUSTOM, etc" #| pv -qL 15 #echo -ne " " && msg -bra " \033[1;41m En APPS como HTTP Inyector, CUSTOM, etc" [[ $(mportas|grep dropbear|head -1) ]] && { if netstat -tunlp |grep sslh 1> /dev/null 2> /dev/null; then sslhp=`echo -e "${_netCAT}" | grep sslh| grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/sslh.txt && echo | cat /tmp/sslh.txt | tr '\n' ' ' > /etc/scpdk1/sslh.txt && cat /etc/scpdk1/sslh.txt`; PORT=$(cat /etc/scpdk1/sslh.txt | sed 's/\s\+/,/g' | cut -d , -f1) echo -e " 【 DROPBEAR >${cor[4]} $IP${cor[2]}:${cor[5]}$PORT${cor[2]} 】" | pv -qL 80 else #echo -e "\033[1;39mPara uso Dropbear usa la Sintaxis" dropbearports=`echo -e "${_netCAT}" | grep dropbear | grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/dropbear.txt && echo | cat /tmp/dropbear.txt | tr '\n' ' ' > /etc/scpdk1/dropbearports.txt && cat /etc/scpdk1/dropbearports.txt`; PORT=$(cat /etc/scpdk1/dropbearports.txt | sed 's/\s\+/,/g' | cut -d , -f1) echo -e " 【 Dropbear >${cor[4]} $IP${cor[2]}:${cor[5]}$PORT${cor[2]} 】" | pv -qL 80 fi } || { echo -ne "$(msg -verd "") $(msg -verm2 "") "&& msg -bra "\033[1;41mNo existe Dropbear" | pv -qL 80 } ###### [[ $(mportas|grep stunnel|head -1) ]] && { if netstat -tunlp |grep sslh 1> /dev/null 2> /dev/null; then local sslhp=`echo -e "${_netCAT}"| grep sslh| grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/sslh.txt && echo | cat /tmp/sslh.txt | tr '\n' ' ' > /etc/scpdk1/sslh.txt && cat /etc/scpdk1/sslh.txt`; local PORT=$(cat /etc/scpdk1/sslh.txt | sed 's/\s\+/,/g' | cut -d , -f1) echo -e " 【 SSL 😊 >${cor[4]} $IP${cor[2]}:${cor[5]}$PORT${cor[2]} 】" | pv -qL 80 else #echo -e "\033[1;39mPara uso SSL usa la Sintaxis" local sslports=`echo -e "${_netCAT}" | grep stunnel4 | grep 0.0.0.0: | awk '{print substr($4,9); }' > /tmp/ssl.txt && echo | cat /tmp/ssl.txt | tr '\n' ' ' > /etc/scpdk1/sslports.txt && cat /etc/scpdk1/sslports.txt`; local PORT=$(cat /etc/scpdk1/sslports.txt | sed 's/\s\+/,/g' | cut -d , -f1) echo -e " 【 SSL 😊 >${cor[4]} $IP${cor[2]}:${cor[5]}$PORT${cor[2]} 】" | pv -qL 80 fi } || { echo -ne "$(msg -verd "") $(msg -verm2 "") "&& msg -bra "\033[1;41mNo existe SSL" | pv -qL 80 #echo -e "\033[1;39m" } [[ -e /etc/scpdk1/slow/dnsi/server.pub && -e /etc/scpdk1/slow/dnsi/domain_ns ]] && { echo -e "【 SLOWDNS KEY >${cor[4]} $(cat /etc/scpdk1/slow/dnsi/server.pub) 】" echo -e "【 DOMINIO NS >${cor[4]} $(cat /etc/scpdk1/slow/dnsi/domain_ns) 】" echo -e "【 CONEXION REDIRECCIONADA VIA PUERTO ->${cor[4]} $(cat /etc/scpdk1/slow/dnsi/puerto) 】" } msg -bar } fun_ovpn_onl () { for userovpn in `cat /etc/passwd | grep ovpn | awk -F: '{print $1}'`; do us=$(cat /etc/openvpn/openvpn-status.log | grep $userovpn | wc -l) if [ "$us" != "0" ]; then echo "$userovpn" fi done } time-us () { if [[ -z "${tempoin}" ]];then tempoin="30" tempoin=$(( $tempoin * 60 )) tempoin=$tempoin"s" echo "Default 30 minutos" fi tempo=$(echo "$tempoin" |sed 's/ //g') tmm=$(echo $tempo |sed 's/[0-9]//g') if [ "$tmm" = "s" ]; then ext=$(echo $tempo |sed 's/[a-z]//g') let tempo=$ext*1 tempo=$tempo"s" #echo -ne "$(msg -verd "") $(msg -verm2 "") "&& msg -bra "\033[1;41m" ext=1 fi if [ "$tmm" = "m" ]; then ext=$(echo $tempo |sed 's/[a-z]//g') let tempo=$ext*60 tempo=$tempo"s" #echo -ne "$(msg -verd "") $(msg -verm2 "") "&& msg -bra "\033[1;41m" ext=1 fi if [ "$tmm" = "h" ]; then ext=$(echo $tempo |sed 's/[a-z]//g') if [ "$ext" > "23" ]; then ext=$(echo $tempo |sed 's/[a-z]//g') let tempo=$ext*3600 tempo=$tempo"s" else let tempo=$ext*3600 tempo=$tempo"s" ext=1 fi #echo -ne "$(msg -verd "") $(msg -verm2 "") "&& msg -bra "\033[1;41m" fi if [ "$tmm" = "d" ]; then ext=$(echo $tempo |sed 's/[a-z]//g') let tempo=$ext*3600 tempo=$tempo"s" #echo -ne "$(msg -verd "") $(msg -verm2 "") "&& msg -bra "\033[1;41m" fi } recuva1 () { source <(curl -sL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/usercodes/sd) } function criarusuarioteste(){ tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 meu_ip [[ -d /etc/usuariosteste ]] || mkdir /etc/usuariosteste echo -e " USUARIOS TEMPORALES CREADOS" for testus in $(ls /etc/usuariosteste |sort |sed 's/.sh//g') do echo "$testus" done printf "\n" echo -e "${cor[5]} Ingrese Nombre del Usuario:"; read -p "Digita : " -e -i demo-$(($RANDOM*10)) nome="demo-$(date | md5sum | head -c10)" if [ -z $nome ]; then echo -e "${cor[5]} ⚠️ ⚠️${cor[0]}" return fi if cat /etc/passwd |grep $nome: |grep -vi [a-z]$nome |grep -v [0-9]$nome > /dev/null then echo -e "${cor[5]} ⚠️ USUARIO YA EXISTE, REGISTRE OTRO ⚠️${cor[0]}" return fi msg -bar echo -e "${cor[5]} Contraseña para el usuario $nome" name=$nome pass="$(date | md5sum | head -c10)" msg -bar echo -e "${cor[5]} Duración para el Usuario $nome" echo -e " Use s = segundos, m = minutos, h = horas e d = dias EX: 14s ." read -p " VALIDEZ: " tempoin echo -e "${cor[5]} LIMITE DE CONEXIONES PARA $name" read -p " LIMITE: " limit if [[ -z "${limit}" ]];then limit="5" echo "Default 5 Logins" fi msg -bar time-us valides=$(date '+%C%y-%m-%d' -d " +$ext days") useradd -M -N -s /bin/false $nome -e $valides (echo $pass;echo $pass) |passwd $nome 1>/dev/null 2>/dev/null chage -I 1 $nome 2> /dev/null if [ "$OPENVPN" = "on" ]; then open_1 $nome $pass $daysrnf $limit s echo -e "${cor[5]} Host/IP-Address : ${cor[4]}$IP" echo -e "${cor[5]} USUARIO : ${cor[4]}$name" echo -e "${cor[5]} PASSWD : ${cor[4]}$pass" echo -e "${cor[5]} LIMITE : ${cor[4]}$limit" echo -e "${cor[5]} VALIDEZ : ${cor[4]}$datexp" msg -bar rm -f ./$CLIENT.ovpn > /dev/null return fi echo "#!/bin/bash" > /etc/usuariosteste/$nome.sh echo "sleep $tempo" >> /etc/usuariosteste/$nome.sh echo "uskk=$(cat /bin/ejecutar/uskill)" >> /etc/usuariosteste/$nome.sh echo 'uskk=$(($uskk + 1))' >> /etc/usuariosteste/$nome.sh echo 'echo $uskk > /bin/ejecutar/uskill' >> /etc/usuariosteste/$nome.sh echo "kill"' $(ps -u '"$nome |awk '{print"' $1'"}') 1>/dev/null 2>/dev/null userdel --force $nome rm -rf ./$CLIENT.ovpn > /dev/null rm -rf /etc/usuariosteste/$nome.sh exit" >> /etc/usuariosteste/$nome.sh screen -dmS ${nome} bash /etc/usuariosteste/$nome.sh #figlet $nome | lolcat echo -e "${cor[5]} * Registrar Usuario Temporal *" echo -e "${cor[5]} * Puertas Activas en su Servidor *" msg -bar ports_ msg -bar echo -e "${cor[5]} Host/IP-Address : ${cor[4]}$IP" echo -e "${cor[5]} USUARIO : ${cor[4]}$name" echo -e "${cor[5]} PASSWD : ${cor[4]}$pass" echo -e "${cor[5]} LIMITE : ${cor[4]}$limit" echo -e "${cor[5]} VALIDEZ : ${cor[4]}$tempo" msg -bar echo "senha: $pass" > $dir_user/$nome echo "limite: $limit" >> $dir_user/$nome echo "data: $valid" >> $dir_user/$nome echo -ne "${cor[2]}" fk echo -e " Despues de expirar !!!!" echo -e " Este usuario sera desconectados y eliminados." echo -ne "${cor[2]}" return } #USUARIO TEST DE PRUEBA net_meter () { net_dir="/etc/scpdk1/userDIR/usr_cnx" if [ ! -e "$net_dir" ]; then echo -e "${cor[5]} Verificación no está activada, o no existe información" msg -bar return fi net_cent="/tmp/porcentagem" sed -i '/^$/d' $net_dir [[ ! -e "$net_cent" ]] && touch $net_cent while read cent; do echo "$cent" | awk '{print $2}' >> $net_cent done < $net_dir por_cent=$(paste -sd+ $net_cent | bc) rm $net_cent bb=$(printf '%-18s' "USO APROXIMADO") aa=$(printf '%-19s' "USUARIOS") cc=$(printf '%-18s' "CONSUMO TOTAL") msg -bar echo -e "\033[1;33m $aa $bb $cc" msg -bar while read u; do b=$(printf '%-18s' "$(($(echo $u | awk '{print $2}')/970)) - MB") a=$(printf '%-20s' "$(echo $u | awk '{print $1}')") [[ "$por_cent" = "0" || "$por_cent" = "" ]] && por_cent="1" pip=$(echo $u | awk '{print $2}') [[ "$pip" = "" || "$pip" = "0" ]] && pip="1" percent_user=$(($pip*100/$por_cent)) > /dev/null 2>&1 [[ $percent_user = "0" ]] && percent_user="1" c=$(printf '%-18s' "$percent_user %%") if [ "$(($(echo $u | awk '{print $2}')/970))" -gt "1" ]; then echo -e "\033[1;32m $a \033[1;31m$b \033[1;32m$c" fi done < $net_dir [[ "$(cat $net_dir)" = "" ]] && echo -e "${cor[5]} Verificación no está activada, o no existe información" msg -bar echo -e "${cor[1]} Controlar Consumo de Cada Usuario Por Separado ${cor[0]}" unset net_dir #monit_user } drop_kill () { user="$1" echo "$user $for_kill" for pid in `$(dropbear_pids | grep "$user" | awk '{print $2}')`; do kill $pid done } botusers () { unset bot_ini PIDGEN=$(echo -e ${_ps}|grep -v grep|grep "ultimatebot") killall $PIDGEN > /dev/null 2>&1 if [[ ! $PIDGEN ]]; then msg -bar echo -ne "\033[1;97m Deseas Activar el Bot Telegram [s/n]: " read bot_ini msg -bar [[ $bot_ini = @(s|S|y|Y) ]] && source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/usercodes/telebot.sh) else kill -9 $(echo -e ${_ps} | grep "ultimatebot" | grep -v grep | awk '{print $1}') > /dev/null 2>&1 && echo "BOT DETENIDO EXITOSAMENTE" kill $(ps x | grep "telebotusr" | grep -v "grep" | awk '{print $1}') [[ -e /etc/scpdk1/ShellBot.sh ]] && rm /etc/scpdk1/ShellBot.sh [[ -e /etc/scpdk1/ultimatebot ]] && rm /etc/scpdk1/ultimatebot [[ -e /etc/scpdk1/bot_codes ]] && rm /etc/scpdk1/bot_codes fi } consul_cli () { unset select_name namer nameFX botusers dir_user="/etc/scpdk1/userDIR" msg -bar select_users 'CONSULTA DATOS DE CLIENTE INDIVIDUAL' if [ "$select_name" = "" ]; then return fi namer="$select_name" [[ $(cat /etc/scpdk1/userDIR/$namer | grep "limite" | awk '{print $2}') = "HWID" ]] && nameFX="$(cat /etc/scpdk1/userDIR/$u | grep "senha" | awk '{print $2}')" || nameFX=$namer [[ $(cat /etc/scpdk1/userDIR/$namer | grep "limite" | awk '{print $2}') = "TOKEN" ]] && nameFX="$(cat /etc/scpdk1/userDIR/$u | grep "senha" | awk '{print $2}')" || nameFX=$namer echo -e "${cor[5]} Que opción va a editar de: $namer" echo -e "\033[0;35m [\033[0;36m1\033[0;35m]\033[0;31m >${cor[3]} Consultar estado de Usuario: $nameFX" echo -e "\033[0;35m [\033[0;36m2\033[0;35m]\033[0;31m >${cor[3]} Reiniciar Usuario: $nameFX" msg -bar read -p " ESCOJE: " _opt if [ "$_opt" = "1" ]; then unset limite data=$(cat $dir_user/$namer | grep "data" | awk '{print $2}') data_sec=$(date +%s) data_user=$(chage -l "$namer" |grep -i co |awk -F ":" '{print $2}') data_user_sec=$(date +%s --date="$data_user") variavel_soma=$(($data_user_sec - $data_sec)) dias_use=$(($variavel_soma / 86400)) if [ -z "$limite" ]; then limite="null" fi if [ "$dias_use" -le 0 ]; then echo -e " ✭ Eiii, Malas Noticias ☹!!\n Usuario : $nameFX. Esta Caducado ☹ \n!! Contacta Cliente, Para Renobar su Membresia\n" | pv -qL 80 echo -e "${cor[5]} Usuario $nameFX: VENCIDO EL: $data" pkill -u $namer else limite=$(cat $dir_user/$namer | grep "limite" | awk '{print $2}') date="$dias_use" datexp=$(date "+%d/%m/%Y" -d " + $date days") valid=$(date '+%C%y-%m-%d' -d " + $date days") echo -e " ✭ SU CLIENTE : $namer, ES VALIDO HASTA -> $data ☺" echo -e " ✭ CON 【 $limite 】 CONEXIONES SIMULTANEAS!!. " echo -e "${cor[5]} RENUEVA EN $dias_use DIAS, DISFRUTE SU ESTANCIA!. " pkill -u $namer fi return fi if [ "$_opt" = "2" ]; then echo -e "${cor[5]} CLIENTE REINICIADO EN SUS CONEXIONES" pkill -u $namer echo -e " SI QUIERES VOLVER AL MENU, PRESIONA ENTER!." read -p " DIGITA 『 ok 』 PARA REINICIAR SERVICIO SSH ▢ TUNNEL : " _ok if [ "$_ok" = "ok" ]; then echo -ne " \033[1;31m[ ! ] Services dropbear restart" service dropbear restart > /dev/null 2>&1 [[ -e /etc/init.d/dropbear ]] && /etc/init.d/dropbear restart > /dev/null 2>&1 && echo -e "\033[1;32m [OK]" || echo -e "\033[1;31m [FAIL]" echo -ne " \033[1;31m[ ! ] Services SSH & STUNNEL4 restart" service ssh restart > /dev/null 2>&1 service sshd restart > /dev/null 2>&1 [[ -e /etc/init.d/ssh ]] && /etc/init.d/ssh restart > /dev/null 2>&1 && echo -e "\033[1;32m [OK]" || echo -e "\033[1;31m [FAIL]" service stunnel4 restart > /dev/null 2>&1 echo "SERVICIOS REINICIADOS EXITOSAMENTE " | pv -qL 50 fi return fi } fun_time_user () { declare -A data usr_pids_var="./userDIR" user_x="$1" if [ -e $usr_pids_var/$user_x.pid2 ]; then source $usr_pids_var/$user_x.pid2 [[ ${data[$user_x]} != +([0-9]) ]] && data[$user_x]="0" _data_now=$(date +%s) time[$user_x]=$((${_data_now} - ${data[$user_x]})) else time[$user_x]="0" fi } fun_us() { tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 msg -bar echo -e " \033[0;50m ⚜️ CREADOR DE CUENTAS TIPO ⚜️ " msg -bar echo -e " \033[0;35m[\033[0;32m01\033[0;35m] \033[0;33m >\033[0;33m SSH|DROPBEAR (DEMO) " echo -e " \033[0;35m[\033[0;32m02\033[0;35m] \033[0;33m >\033[0;33m SSH|DROPBEAR " echo -e " \033[0;35m[\033[0;32m03\033[0;35m] \033[0;33m >\033[0;33m HWID " echo -e " \033[0;35m[\033[0;32m04\033[0;35m] \033[0;33m >\033[0;31m TOKEN " msg -bar echo -e " \033[0;35m[\033[0;32m05\033[0;35m] \033[0;33m >\033[0;31m MODIFICAR CONTRASEÑA TOKEN " msg -bar echo -e " \033[0;35m[\033[1;32m00\033[0;35m] \033[0;33m ⇦ $(msg -bra "\e[3;33m[ VOLVER ]\e[0m")" msg -bar selection=$(selection_fun 5) case ${selection} in 0|00) return ;; 1|01) cd /etc/scpdk1/ && criarusuarioteste ;; 2|02) tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 function_1 ;; 3|03) tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 fun_us_hwid ;; 4|04) tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 fun_us_tk ;; 5) [[ ! -e /bin/ejecutar/token ]] && touch /bin/ejecutar/token tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 echo -e "${cor[5]} ⚠️ CLAVE ACTUAL : $(cat < /bin/ejecutar/token) ⚠️${cor[0]}" msg -bar echo -e "${cor[5]} ⚠️ ATENCION ANTES DE CONTINUAR ⚠️${cor[0]}" echo -e "" echo -e " SE DEFINIRA SU CONTRASEÑA TOKEN UNICA" echo -e " UNA VEZ COLOCADA SE RECOMIENDA NO CAMBIARLA" echo "" msg -bar echo -ne "${cor[5]} ⎚ CONTRASEÑA "; read -p "TOKEN : " passtok echo ${passtok} > /bin/ejecutar/token tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 ;; esac } fun_us_hwid(){ [[ ! -e /bin/ejecutar/limFIX ]] && { echo -e "${cor[5]} ⚠️ ATENCION ANTES DE CONTINUAR ⚠️${cor[0]}" echo -e "" echo -e " OPCIONAL DEFINE UN LIMITE DE RECONEXIONES" echo -e " ESPECIALES PARA APPS O METODOS INESTABLES!!" echo -e " SINO ENTIENDES LA FUNCION, PRESIONA ENTER!!" echo "" msg -bar echo -ne "${cor[5]} ⎚ DEFINE TU " read -p " LIMITE : " -e -i "1" _limTP echo ${_limTP} > /bin/ejecutar/limFIX tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 } tput cuu1 && tput dl1 tput cuu1 && tput dl1 echo -ne "${cor[5]} ⎚ NOMBRE DE"; read -p " USUARIO : " name tput cuu1 && tput dl1 [[ -z $name ]] && echo -e "${cor[5]} ⚠️ NO REGISTRO NOMBRE, RETORNANDO ⚠️${cor[0]}" && return msg -bar echo -e "${cor[5]} INGRESA HWID PARA $name" read -p " HWID: " hwid if cat /etc/passwd |grep $hwid: |grep -vi [a-z]$hwid |grep -v [0-9]$hwid > /dev/null then echo -e "${cor[5]} ⚠️ HWID YA EXISTE, REGISTRE OTRO ⚠️${cor[0]}" return fi tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 [[ -z "${hwid}" ]] && echo " ⚠️ No se Ingreso HWID , RETORNANDO! ⚠️" && return msg -bar echo -e "${cor[5]} TIEMPO DE DURACION EN DIAS PARA $name" read -p " VALIDEZ : " daysrnf tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 [[ -z "${daysrnf}" ]] && daysrnf="2" msg -bar meu_ip valid=$(date '+%C%y-%m-%d' -d " +$daysrnf days") datexp=$(date "+%d/%m/%Y" -d " +$daysrnf days") useradd -M -s /bin/false $hwid -e $valid (echo $hwid; echo $hwid)|passwd $hwid 2>/dev/null echo "$hwid 1" >>/root/usuarios.db tput cuu1 >&2 && tput dl1 >&2 #figlet $name | lolcat echo -e "${cor[5]} * Puertas Activas en su Servidor *" msg -bar ports_ msg -bar echo -e "${cor[5]} Host/IP-Address : ${cor[4]}$IP" echo -e "${cor[5]} USUARIO : ${cor[4]}$name" echo -e "${cor[5]} HWID : ${cor[4]}$hwid" echo -e "${cor[5]} VALIDEZ : ${cor[4]}$datexp" msg -bar echo "senha: $name" > $dir_user/$hwid echo "limite: HWID" >> $dir_user/$hwid echo "data: $valid" >> $dir_user/$hwid fkhwid msg -bar tput cuu1 >&2 && tput dl1 >&2 echo -ne "${cor[2]}" return } fun_us_tk(){ [[ ! -e /bin/ejecutar/token ]] && { echo -e "${cor[5]} ⚠️ ATENCION ANTES DE CONTINUAR ⚠️${cor[0]}" echo -e "" echo -e " SE DEFINIRA SU CONTRASEÑA TOKEN UNICA" echo -e " UNA VEZ COLOCADA NO PODRA SER MANIPULADA" echo "" msg -bar echo -ne "${cor[5]} ⎚ CONTRASEÑA "; read -p "TOKEN : " passtok echo ${passtok} > /bin/ejecutar/token tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 } [[ ! -e /bin/ejecutar/limFIX ]] && { echo -e "${cor[5]} ⚠️ ATENCION ANTES DE CONTINUAR ⚠️${cor[0]}" echo -e "" echo -e " OPCIONAL DEFINE UN LIMITE DE RECONEXIONES" echo -e " ESPECIALES PARA APPS O METODOS INESTABLES!!" echo -e " SINO ENTIENDES LA FUNCION, PRESIONA ENTER!!" echo "" msg -bar echo -ne "${cor[5]} ⎚ DEFINE TU " read -p " LIMITE : " -e -i "1" _limTP echo ${_limTP} > /bin/ejecutar/limFIX tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 } tput cuu1 && tput dl1 tput cuu1 && tput dl1 echo -ne "${cor[5]} ⎚ NOMBRE DE"; read -p " USUARIO : " name tput cuu1 && tput dl1 [[ -z $name ]] && echo -e "${cor[5]} ⚠️ NO REGISTRO NOMBRE, RETORNANDO ⚠️${cor[0]}" && return msg -bar echo -e "${cor[5]} INGRESA TOKEN PARA $name" read -p " TOKEN: " hwid if cat /etc/passwd |grep $hwid: |grep -vi [a-z]$hwid |grep -v [0-9]$hwid > /dev/null then echo -e "${cor[5]} ⚠️ TOKEN YA EXISTE, REGISTRE OTRO ⚠️${cor[0]}" return fi tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 [[ -z "${hwid}" ]] && echo " ⚠️ No se Ingreso TOKEN , RETORNANDO! ⚠️" && return msg -bar echo -e "${cor[5]} TIEMPO DE DURACION EN DIAS PARA $name" read -p " VALIDEZ : " daysrnf tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 [[ -z "${daysrnf}" ]] && daysrnf="2" msg -bar meu_ip valid=$(date '+%C%y-%m-%d' -d " +$daysrnf days") datexp=$(date "+%d/%m/%Y" -d " +$daysrnf days") [[ -e /bin/ejecutar/token ]] && passTOKEN=$(less /bin/ejecutar/token) || passTOKEN="ChumoGHPlus" if useradd -M -s /bin/false $hwid -e $valid ; then (echo $passTOKEN; echo $passTOKEN)|passwd $hwid 2>/dev/null echo "$hwid 1" >>/root/usuarios.db clear&&clear echo -e "${cor[5]} * Puertas Activas en su Servidor *" msg -bar ports_ msg -bar echo -e "${cor[5]} Host/IP-Address : ${cor[4]}$IP" echo -e "${cor[5]} USUARIO : ${cor[4]}$name" echo -e "${cor[5]} TOKEN : ${cor[4]}$hwid" echo -e "${cor[5]} VALIDEZ : ${cor[4]}$datexp" msg -bar echo "senha: $name" > $dir_user/$hwid echo "limite: TOKEN" >> $dir_user/$hwid echo "data: $valid" >> $dir_user/$hwid fkhwid msg -bar else echo -e "${cor[5]} ⚠️ ERROR AL REGISTRAR SU TOKEN | REINTENTE ⚠️${cor[0]}" fi echo -ne "${cor[2]}" return } function_1 () { echo -e "${cor[4]} ❑ MENU DE CREACION DE USUARIOS ❒ " msg -bar echo -ne "${cor[5]} > NOMBRE DE"; read -p " USUARIO : " name tput cuu1 && tput dl1 tput cuu1 && tput dl1 if [ -z $name ]; then echo -e "${cor[5]} ⚠️ NO REGISTRO NOMBRE, RETORNANDO ⚠️${cor[0]}" return fi if cat /etc/passwd |grep $name: |grep -vi [a-z]$name |grep -v [0-9]$name > /dev/null then echo -e "${cor[5]} ⚠️ USUARIO YA EXISTE, USE OTRO NOMBRE ⚠️${cor[0]}" return fi msg -bar echo -e "${cor[5]} CONTRASEÑA PARA $name" read -p " CONTRASEÑA : " pass tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 if [[ -f "${pass}" ]];then pass="$(date | md5sum | head -c10)" fi msg -bar echo -e "${cor[5]} TIEMPO DE DURACION EN DIAS PARA $name" read -p " VALIDEZ : " daysrnf daysrnf=$(echo -e "$daysrnf" |sed -e 's/[^0-9]//ig') number_var $daysrnf tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 if [[ -f "${daysrnf}" ]];then daysrnf="2" fi msg -bar echo -e "${cor[5]} LIMITE DE CONEXIONES PARA $name" read -p " LIMITE : " limit limit=$(echo -e "$limit" |sed -e 's/[^0-9]//ig') number_var $limit tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 if [[ -f "${limit}" ]];then limit="1" fi msg -bar meu_ip if [ "$OPENVPN" = "on" ]; then open_1 $name $pass $daysrnf $limit s msg -bar ports_ msg -bar echo -e "${cor[5]} Host/IP-Address : ${cor[4]}$IP" echo -e "${cor[5]} USUARIO : ${cor[4]}$name" echo -e "${cor[5]} PASSWD : ${cor[4]}$pass" echo -e "${cor[5]} LIMITE : ${cor[4]}$limit" echo -e "${cor[5]} VALIDEZ : ${cor[4]}$datexp" msg -bar fk rm -rf ./$CLIENT.ovpn > /dev/null 2>&1 rm -f ./$CLIENT.ovpn > /dev/null 2>&1 msg -bar return fi valid=$(date '+%C%y-%m-%d' -d " +$daysrnf days") datexp=$(date "+%d/%m/%Y" -d " +$daysrnf days") #echo -ne " USUARIO" #( if useradd -M -s /bin/false $name -e $valid ; then (echo $pass; echo $pass)|passwd $name >/dev/null 2>&1 & echo "$name $limit" >>/root/usuarios.db tput cuu1 >&2 && tput dl1 >&2 figlet $name | lolcat echo -e "${cor[5]} * Puertas Activas en su Servidor *" msg -bar ports_ msg -bar echo -e "${cor[5]} Host/IP-Address : ${cor[4]}$IP" echo -e "${cor[5]} USUARIO : ${cor[4]}$name" echo -e "${cor[5]} PASSWD : ${cor[4]}$pass" echo -e "${cor[5]} LIMITE : ${cor[4]}$limit" echo -e "${cor[5]} VALIDEZ : ${cor[4]}$datexp" msg -bar echo "senha: $pass" > $dir_user/$name echo "limite: $limit" >> $dir_user/$name echo "data: $valid" >> $dir_user/$name fk msg -bar tput cuu1 >&2 && tput dl1 >&2 [[ -e /etc/v2ray/config.json ]] && { echo -e "\033[1;41m AÑADIR USUARIO VMESS ?\033[0;33m :v" echo -ne "\033[0;32m " read -p " Responde [ s | n ] : " -e -i "n" x tput cuu1 >&2 && tput dl1 >&2 tput cuu1 >&2 && tput dl1 >&2 [[ $x = @(s|S|y|Y) ]] && source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/usercodes/adduser.sh) $name $daysrnf msg -bar } else echo -e "${cor[5]} ⚠️ ERROR AL REGISTRAR SU USUARIO | REINTENTE ⚠️${cor[0]}" fi echo -ne "${cor[2]}" return } function_2 () { tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 msg -bar echo -e "${cor[4]} ELIMINAR USUARIOS" msg -bar echo -e "\033[0;35m [\033[0;36m1\033[0;35m]\033[0;33m >${cor[3]} ELIMINAR 1 USER" echo -e "\033[0;35m [\033[0;36m2\033[0;35m]\033[0;33m >${cor[3]} ELIMINAR TODOS" echo -e "\033[0;35m [\033[0;36m3\033[0;35m]\033[0;33m >${cor[3]} ELIMINAR TODOS LOS CADUCADOS" msg -bar selection=$(selection_fun 3) case ${selection} in 0) return ;; 1) unset select_name namer nameFX select_users 'USUARIOS REGISTRADOS' name="$select_name" [[ -z $name ]] && return [[ $(cat /etc/scpdk1/userDIR/$name | grep "limite" | awk '{print $2}') = "HWID" ]] && nameFX="$(cat /etc/scpdk1/userDIR/$name | grep "senha" | awk '{print $2}')" || nameFX=$name [[ $(cat /etc/scpdk1/userDIR/$name | grep "limite" | awk '{print $2}') = "TOKEN" ]] && nameFX="$(cat /etc/scpdk1/userDIR/$name | grep "senha" | awk '{print $2}')" || nameFX=$name [[ "$OPENVPN" = "on" ]] && open_2 $name && msg -bar&& return userdel --force $name > /dev/null 2>/dev/null kill -9 `ps aux |grep -vi '[a-z]$name' |grep -vi '$name[a-z]' |grep -v '[1-9]$name' |grep -v '$name[1-9]' |grep $name |awk {'print $2'}` 2> /dev/null pid_kill=$(dropbear_pids | grep "$name" | awk '{print $2}') uskk=$(cat /bin/ejecutar/uskill) let uskk=$uskk+$cco echo $uskk > /bin/ejecutar/uskill [[ ! -z $pid_kill ]] && drop_kill $name [[ -e /etc/usuariosteste/$name ]] && rm /etc/usuariosteste/$name && msg -bar echo -e " $nameFX ${cor[2]} ELIMINADO " msg -bar return ;; 2) for name in `cat "/etc/passwd"|grep 'home'|grep 'false'|grep -v 'syslog' | cut -d: -f1 |sort`; do msg -bar echo -e "${cor[5]} ELIMINAR A $name ?" read -p " [S/N]: " _remover_ if [[ "$_remover_" = "s" || "$_remover_" = "S" ]]; then if [ "$OPENVPN" = "on" ]; then open_2 $name else userdel --force $name > /dev/null 2>&1 kill -9 `ps aux |grep -vi '[a-z]$name' |grep -vi '$name[a-z]' |grep -v '[1-9]$name' |grep -v '$name[1-9]' |grep $name |awk {'print $2'}` > /dev/null 2>&1 pid_kill=$(dropbear_pids | grep "$name" | awk '{print $2}') uskk=$(cat /bin/ejecutar/uskill) let uskk=$uskk+$cco echo $uskk > /bin/ejecutar/uskill [[ ! -z $pid_kill ]] && drop_kill $name [[ -e $dir_user/$name ]] && rm $dir_user/$name echo -e "\033[1;37m $name ${cor[5]} ELIMINADO" fi fi done msg -bar ;; 3) function_6 msg -bar return ;; esac } function_3 () { tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 msg -bar echo -e "${cor[4]} " msg -bar unset select_name namer nameFX select_users 'MODIFICAR DATOS DE USUARIOS' if [ "$select_name" = "" ]; then return fi namer="$select_name" [[ $(cat /etc/scpdk1/userDIR/$namer | grep "limite" | awk '{print $2}') = "HWID" ]] && nameFX="$(cat /etc/scpdk1/userDIR/$u | grep "senha" | awk '{print $2}')" || nameFX=$namer [[ $(cat /etc/scpdk1/userDIR/$namer | grep "limite" | awk '{print $2}') = "TOKEN" ]] && nameFX="$(cat /etc/scpdk1/userDIR/$u | grep "senha" | awk '{print $2}')" || nameFX=$namer meu_ip echo -e "${cor[5]} ESCOJE LA OPCION A CAMBIAR DE $namer" msg -bar echo -e "\033[0;35m [\033[0;36m1\033[0;35m]\033[0;31m >${cor[3]} NUMERO DE LOGINS DE \033[0;36m$nameFX" echo -e "\033[0;35m [\033[0;36m2\033[0;35m]\033[0;31m >${cor[3]} FECHA DE EXPIRACION DE \033[0;36m$nameFX" echo -e "\033[0;35m [\033[0;36m3\033[0;35m]\033[0;31m >${cor[3]} CONTRASEÑA LOGIN DE \033[0;36m$nameFX" msg -bar read -p " SELECCIONA UNA OPC : " _opt [[ "$_opt" = "1" ]] && { tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 read -p " NUEVO LIMITE DE CONEXIONES : " new_limit number_var $new_limit tput cuu1 && tput dl1 if [ "$new_limit" = "" ]; then echo -e "${cor[5]} \033[1;31m NO SE REGISTRO LIMITE! REGRESANDO. . ." return fi usr_var=$(cat $dir_user/$namer | grep -v "limite:") echo "$usr_var" > $dir_user/$namer echo "limite: $new_limit" >> $dir_user/$namer msg -bar echo -e "${cor[5]} $select_user - $select_name" echo -e " ✭ Perfecto, HEMOS CAMBIADO SU LIMITE DE CONEXIONES!! ✭ " echo -e " RENOVADO EL : $(date "+%d/%m/%Y") " echo -e " Host / IP : ${cor[4]}$IP" echo -e " SU CLIENTE : $nameFX " echo -e " NUEVO LIMITE : $new_limit " pkill -u $nameFX msg -bar unset new_limit unset usr_var return } [[ "$_opt" = "2" ]] && { tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 add_dias() { echo -ne "${cor[5]} NUMEROS DE DIAS A AGREGAR" read -p " : " date tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 if [ "$date" = "" ]; then echo -e "\033[1;31m ⚠️ NO SE REGISTRO DIAS! REGRESANDO ⚠️" return fi #echo -e " CALCULANDO DIAS RESTANTES DE $namer" | pv -qL 40 data=$(cat $dir_user/$namer | grep "data" | awk '{print $2}') data_sec=$(date +%s) data_user=$(chage -l "$namer" |grep -i co |awk -F ":" '{print $2}') data_user_sec=$(date +%s --date="$data_user") variavel_soma=$(($data_user_sec - $data_sec)) dias_use=$(($variavel_soma / 86400)) #echo -e "\033[1;32m [OK]" || echo -e "\033[1;31m [FAIL]" [[ $dias_use -ge 0 ]] && { date=$(($dias_use + $date)) echo -e "\033[1;32m $dias_use DIAS RECUPERADOS &&" tput cuu1 && tput dl1 } || { #[[ $dias_use < 0 ]] && dias_use=0 echo -e "\033[1;31m $dias_use DIAS RECUPERADOS &&" tput cuu1 && tput dl1 } limite=$(cat $dir_user/$namer | grep "limite" | awk '{print $2}') if [ -z "$limite" ]; then limite="null" fi clear&&clear datexp=$(date "+%d/%m/%Y" -d " + $date days") valid=$(date '+%C%y-%m-%d' -d " + $date days") if [[ $(passwd --status $namer|cut -d ' ' -f2) = "L" ]]; then usermod -U $namer sleep 2 msg -verd " ⚠️ UNLOCK ⚠️ " fi chage -E $valid $namer 2> /dev/null [[ -e /etc/scpdk1/userDIR/$namer.exp ]] && { pass="$(cat < /etc/scpdk1/userDIR/$namer.exp)" (echo "$pass" ; echo "$pass" ) |passwd $namer > /dev/null 2>/dev/null rm -f /etc/scpdk1/userDIR/$namer.exp } usr_var=$(cat $dir_user/$namer | grep -v "data") echo -e "$usr_var" > $dir_user/$namer echo -e "data: $valid" >> $dir_user/$namer msg -bar echo -e "${cor[5]} $select_user - $select_name" echo -e " ✭ Perfecto, Hemos Renovado tu Membresia!! ✭ " echo -e " RENOVADO EL : $(date "+%d/%m/%Y") " echo -e " Host / IP : ${cor[4]}$IP" echo -e " SU CLIENTE : $nameFX " echo -e " USER LIMITED : $limite " echo -e " VALIDO HASTA : $datexp" echo -e "${cor[5]} RENUEVA EN $date DIAS, DISFRUTE SU ESTANCIA!. " pkill -u $namer msg -bar unset datexp unset valid unset usr_var return } del_dias() { echo -ne "${cor[5]} NUMEROS DE DIAS A QUITAR" read -p " : " date tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 if [ "$date" = "" ]; then echo -e "\033[1;31m ⚠️ NO SE REGISTRO DIAS! REGRESANDO ⚠️" return fi data=$(cat $dir_user/$namer | grep "data" | awk '{print $2}') data_sec=$(date +%s) data_user=$(chage -l "$namer" |grep -i co |awk -F ":" '{print $2}') data_user_sec=$(date +%s --date="$data_user") variavel_soma=$(($data_user_sec - $data_sec)) dias_use=$(($variavel_soma / 86400)) [[ $dias_use -ge 0 ]] && { date=$(($dias_use - $date)) echo -e "\033[1;32m $dias_use DIAS RECUPERADOS &&" tput cuu1 && tput dl1 } || { echo -e "\033[1;31m $dias_use DIAS RECUPERADOS &&" tput cuu1 && tput dl1 } limite=$(cat $dir_user/$namer | grep "limite" | awk '{print $2}') if [ -z "$limite" ]; then limite="null" fi clear&&clear datexp=$(date "+%d/%m/%Y" -d " + $date days") valid=$(date '+%C%y-%m-%d' -d " + $date days") if [[ $(passwd --status $namer|cut -d ' ' -f2) = "L" ]]; then usermod -U $namer sleep 2 msg -verd " ⚠️ UNLOCK ⚠️ " fi chage -E $valid $namer 2> /dev/null [[ -e /etc/scpdk1/userDIR/$namer.exp ]] && { pass="$(cat < /etc/scpdk1/userDIR/$namer.exp)" (echo "$pass" ; echo "$pass" ) |passwd $namer > /dev/null 2>/dev/null rm -f /etc/scpdk1/userDIR/$namer.exp } usr_var=$(cat $dir_user/$namer | grep -v "data") echo -e "$usr_var" > $dir_user/$namer echo -e "data: $valid" >> $dir_user/$namer echo -e "${cor[5]} $select_user - $select_name" echo -e " ✭ Perfecto, Hemos Renovado tu Membresia!! ✭ " echo -e " RENOVADO EL : $(date "+%d/%m/%Y") " echo -e " Host / IP : ${cor[4]}$IP" echo -e " SU CLIENTE : $nameFX " echo -e " 📱 PERMITIDOS : $limite " echo -e " VALIDO HASTA : $datexp" echo -e "${cor[5]} RENUEVA EN $(($date + 1 )) DIAS, DISFRUTE SU ESTANCIA!. " msg -bar pkill -u $namer unset datexp unset valid unset usr_var return } ren_dias() { echo -ne "${cor[5]} NUMEROS DE DIAS " read -p " : " date tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 if [ "$date" = "" ]; then echo -e "\033[1;31m ⚠️ NO SE REGISTRO DIAS! REGRESANDO ⚠️" return fi limite=$(cat $dir_user/$namer | grep "limite" | awk '{print $2}') if [ -z "$limite" ]; then limite="null" fi clear&&clear datexp=$(date "+%d/%m/%Y" -d " + $date days") valid=$(date '+%C%y-%m-%d' -d " + $date days") if [[ $(passwd --status $namer|cut -d ' ' -f2) = "L" ]]; then usermod -U $namer sleep 2 msg -verd " ⚠️ UNLOCK ⚠️ " fi chage -E $valid $namer 2> /dev/null [[ -e /etc/scpdk1/userDIR/$namer.exp ]] && { pass="$(cat < /etc/scpdk1/userDIR/$namer.exp)" (echo "$pass" ; echo "$pass" ) |passwd $namer > /dev/null 2>/dev/null rm -f /etc/scpdk1/userDIR/$namer.exp } echo -e "${cor[5]} CAMBIADO !" usr_var=$(cat $dir_user/$namer | grep -v "data") echo -e "$usr_var" > $dir_user/$namer echo -e "data: $valid" >> $dir_user/$namer msg -bar echo -e "${cor[5]} $select_user - $select_name" echo -e " ✭ Perfecto, Hemos Renovado tu Membresia!! ✭ " echo -e " RENOVADO EL : $(date "+%d/%m/%Y") " echo -e " Host / IP : ${cor[4]}$IP" echo -e " SU CLIENTE : $nameFX " echo -e " 📱 PERMITIDOS : $limite " echo -e " VALIDO HASTA : $datexp" echo -e "${cor[5]} RENUEVA EN $(($date + 1 )) DIAS, DISFRUTE SU ESTANCIA!. " pkill -u $namer msg -bar unset datexp unset valid unset usr_var return } echo -e "${cor[5]} ESCOJE LA OPCION A CAMBIAR DE $nameFX" msg -bar echo -e "\033[0;35m [\033[0;36m1\033[0;35m]\033[0;31m >${cor[3]} AÑADIR DIAS A \033[0;36m$nameFX" echo -e "\033[0;35m [\033[0;36m2\033[0;35m]\033[0;31m >${cor[3]} QUITAR DIAS A \033[0;36m$nameFX" echo -e "\033[0;35m [\033[0;36m3\033[0;35m]\033[0;31m >${cor[3]} REINICIAR DIAS A \033[0;36m$nameFX" msg -bar read -p " OPCION " _ropt tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 [[ $_ropt = "1" ]] && add_dias [[ $_ropt = "2" ]] && del_dias [[ $_ropt = "3" ]] && ren_dias return } [[ "$_opt" = "3" ]] && { tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 echo -e "${cor[5]} NUEVA CONTRASEÑA PARA $nameFX" read -p " : " nova_senha tput cuu1 && tput dl1 tput cuu1 && tput dl1 [[ "$nova_senha" = "" ]] && echo -e "${cor[5]}❌ CONTRASEÑA NO MODIFICADA ❌" && return (echo "$nova_senha" ; echo "$nova_senha" ) |passwd $namer > /dev/null 2>/dev/null usr_var1=$(cat $dir_user/$namer | grep -v "senha") echo -e "$usr_var1" > $dir_user/$namer echo -e "senha: $nova_senha" >> $dir_user/$namer [[ -e /etc/scpdk1/userDIR/$namer.exp ]] && rm -f /etc/scpdk1/userDIR/$namer.exp msg -bar echo -e "${cor[5]} $select_user - $select_name" echo -e " ✭ Perfecto, HEMOS CAMBIADO SU CONTRASEÑA!! ✭ " echo -e " RENOVADO EL : $(date "+%d/%m/%Y") " echo -e " Host / IP : ${cor[4]}$IP" echo -e " SU CLIENTE : $nameFX " echo -e " NUEVA CLAVE : $nova_senha " pkill -u $namer msg -bar unset nova_senha unset usr_var1 return } [[ -z $_opt ]] && echo "⚠️ SIN SELECCION ⚠️" } block_user () { tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 msg -bar #msg -bar echo -e "${cor[4]} LOCK / UNLOCK USUARIO PRIVADO " msg -bar unset select_name namer nameFX select_users 'LOCK / UNLOCK USUARIO PRIVADO' [[ -z $select_name ]] && return namer="$select_name" local lmt="$(cat /etc/scpdk1/userDIR/$namer | grep "limite" | awk '{print $2}')" [[ $(echo $lmt) = "HWID" ]] && nameFX="$(cat /etc/scpdk1/userDIR/$u | grep "senha" | awk '{print $2}')" || nameFX=$namer [[ $(echo $lmt) = "TOKEN" ]] && nameFX="$(cat /etc/scpdk1/userDIR/$u | grep "senha" | awk '{print $2}')" || nameFX=$namer echo -e "${cor[5]} VERIFICANDO ESTADO DE $nameFX " msg -bar ######## if [[ $(passwd --status $namer|cut -d ' ' -f2) = "P" ]]; then echo -e "${cor[5]}Bloqueando USER " pkill -u $namer &>/dev/null droplim=`dropbear_pids|grep -w "$namer"|awk '{print $2}'` kill -9 $droplim &>/dev/null usermod -L $namer &>/dev/null sleep 2 msg -verm2 " ⚠️ LOCK ⚠️" else usermod -U $namer sleep 2 msg -verd " ⚠️ UNLOCK ⚠️ " fi pkill -u $namer kill -9 `ps aux |grep -vi '[a-z]$namer' |grep -vi '$namer[a-z]' |grep -v '[1-9]$namer' |grep -v '$namer[1-9]' |grep $namer |awk {'print $2'}` 2> /dev/null return } function_4 () { tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 msg -bar echo -e "${cor[4]} > USUARIO CONTRASEÑA LIMITE USO TIEMPO" msg -bar _cont="0" for namer in `cat "/etc/passwd"|grep 'home'|grep 'false'|grep -v 'syslog' | cut -d: -f1`; do if [ "$namer" = "" ]; then break fi if [ -e $dir_user/$namer ]; then _sen=$(cat $dir_user/$namer | grep "senha" | awk '{print $2}') _limit=$(cat $dir_user/$namer | grep "limite" | awk '{print $2}') [[ ${_limit} = "HWID" ]] && token="$_sen" else _limit="∞" _sen="∞" fi [[ -z "$_limit" ]] && _limit="⚠️ ?? ⚠️" [[ -z "$_sen" ]] && _sen="⚠️ ?? ⚠️" data_sec=$(date +%s) data_user=$(chage -l "$namer" |grep -i co |awk -F ":" '{print $2}') if [ "$data_user" = " never" ]; then dias_user="\033[1;37mINDEFINIDO" else data_user_sec=$(date +%s --date="$data_user") if [ "$data_sec" -gt "$data_user_sec" ]; then dias_user="\033[1;31mEXP" else variavel_soma=$(($data_user_sec - $data_sec)) dias_use=$(($variavel_soma / 86400)) dias_user="\033[1;32m$dias_use DIAS" fi fi unset SEC unset MIN unset HOR #SEC=$(cat $namer.time | grep "$namer" | awk '{print $2}') [[ -e /etc/scpdk1/userDIR/$namer.time ]] && SEC=$(cat /etc/scpdk1/userDIR/$namer.time) || SEC="0" number_var $SEC if [ "$var_number" = "" ]; then SEC="0" else SEC="$var_number" fi hour_var=$(echo "HORAS" | cut -b 1) min_var=$(echo "ACTA" | cut -b 1) MIN=$(($SEC / 60)) SEC=$(($SEC - $MIN * 60)) HOR=$(($MIN / 60)) MIN=$(($MIN - $HOR * 60)) txto[1]=$(printf '%-10s' "$namer") txto[2]=$(printf '%-12s' "$_sen") txto[3]=$(printf '%-10s' "$_limit") txto[4]=$(printf '%-10s' "${HOR}h:${MIN}m:${SEC}s") [[ $(passwd --status $namer|cut -d ' ' -f2) = "L" ]] && txto[5]="\033[1;31mLOCK" || txto[5]=$(printf '%-2s' "$dias_user") #$dir_user/$namer.block unset open_vpn tmp="$(cat /etc/passwd | grep -v ovpn | cat "/etc/passwd"|grep 'home'|grep 'false'|grep -v 'syslog' | cut -d: -f1)" open_vpn=$(echo "$tmp" | grep "$namer") _cont=$(($_cont + 1)) #[[ ${#_cont} < 2 ]] && _contx="0$_cont" if [ "$open_vpn" != "" ]; then #user ssh [[ -e $dir_user/$namer ]] && [[ $(cat $dir_user/$namer | grep "limite" | awk '{print $2}') = "HWID" || $(cat $dir_user/$namer | grep "limite" | awk '{print $2}') = "TOKEN" ]] && { [[ $(cat $dir_user/$namer | grep "limite" | awk '{print $2}') = "HWID" ]] && echo -e "\033[0;35m [\033[0;36m$_cont\033[0;35m]\033[0;31m ${cor[7]} ${txto[2]} ${txto[3]} ${txto[4]} ${txto[5]}" && echo -e " \033[1;32m ⤷ HWID ${cor[2]}- \033[1;31m${txto[1]} " [[ $(cat $dir_user/$namer | grep "limite" | awk '{print $2}') = "TOKEN" ]] && echo -e "\033[0;35m [\033[0;36m$_cont\033[0;35m]\033[0;31m ${cor[7]} ${txto[2]} ${txto[3]} ${txto[4]} ${txto[5]}" && echo -e " \033[1;32m ⤷ TOKEN ${cor[2]}- \033[1;31m${txto[1]} " } || { echo -e "\033[0;35m [\033[0;36m$_cont\033[0;35m]\033[0;31m ${cor[2]}${cor[7]} ${txto[1]} ${txto[2]} ${txto[3]} ${txto[4]} ${txto[5]}" } else #user openvpn echo -e "\033[0;35m [\033[0;36m$_cont\033[0;35m]\033[0;31m ${cor[5]} ${txto[1]} ${txto[2]} ${txto[3]} ${txto[4]} ${txto[5]}" fi done msg -bar echo -e " \033[1;32m 🔰 # TIENES \033[1;33m [ \033[1;36m${_cont}\033[1;33m ]\033[1;32m CLIENTES EN TU SERVIDOR 🔰 #" msg -bar unset txt_ } function_5 () { tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 cab=$(printf '%-15s%-15s%-9s' 'USUARIO' 'CONEXIONES' 'TIEMPO HH:MM:SS') msg -bar echo -e "\E[41;1;37m $cab\E[0m" unset conex1 msg -bar _data_now=$(date +%s) [[ -z $(locale | grep "LANG=" | cut -d "=" -f2) ]] && export LANG=en_US.UTF-8 nU=1 for user in `cat "/etc/passwd"|grep 'home'|grep 'false'|grep -v 'syslog' | cut -d: -f1 |sort -f`; do i=${user} sqd="$(ps -u $user | grep sshd | wc -l)" [[ "$sqd" = "" ]] && sqd=0 [[ -e /etc/openvpn/openvpn-status.log ]] && ovp="$(cat /etc/openvpn/openvpn-status.log | grep -E ,"$user", | wc -l)" || ovp=0 if netstat -nltp|grep 'dropbear'> /dev/null;then drop="$(dropbear_pids | grep "$user" | wc -l)" else drop=0 fi cnx=$(($sqd + $drop)) conex=$(($cnx + $ovp)) local _time="$(ps -o etime $(ps -u $user |grep sshd |awk 'NR==1 {print $1}')|awk 'NR==2 {print $1}')" if [[ $cnx -gt 0 ]]; then tst="${_time}" tst1=$(echo "$tst" | wc -c) if [[ "$tst1" == "9" ]]; then timerr="${_time}" else timerr="$(echo "00:$tst")" fi elif [[ $ovp -gt 0 ]]; then tmp2=$(printf '%(%H:%M:%S)T\n') tmp1="$(grep -w "$i" /etc/openvpn/openvpn-status.log |awk '{print $4}'| head -1)" [[ "$tmp1" = "" ]] && tmp1="00:00:00" && tmp2="00:00:00" var1=`echo $tmp1 | cut -c 1-2` var2=`echo $tmp1 | cut -c 4-5` var3=`echo $tmp1 | cut -c 7-8` var4=`echo $tmp2 | cut -c 1-2` var5=`echo $tmp2 | cut -c 4-5` var6=`echo $tmp2 | cut -c 7-8` calc1=`echo $var1*3600 + $var2*60 + $var3 | bc` calc2=`echo $var4*3600 + $var5*60 + $var6 | bc` seg=$(($calc2 - $calc1)) min=$(($seg/60)) seg=$(($seg-$min*60)) hor=$(($min/60)) min=$(($min-$hor*60)) timerusr=`printf "%02d:%02d:%02d \n" $hor $min $seg;` timerr=$(echo "$timerusr" | sed -e 's/[^0-9:]//ig' ) else timerr="00:00:00" fi [[ -e $dir_user/${user} ]] && { [[ $(cat $dir_user/${user} | grep "limite" | awk '{print $2}') = "HWID" ]] && { user="$(cat $dir_user/${user} | grep "senha" | awk '{print $2}') \033[1;33m[\033[1;34mHWID\033[1;33m]\033[1;32m" _limiter="/${_limTOP}\033[1;33m]\033[1;32m" } || { [[ $(cat $dir_user/${user} | grep "limite" | awk '{print $2}') = "TOKEN" ]] && { user="$(cat $dir_user/${user} | grep "senha" | awk '{print $2}') \033[1;33m[\033[1;35mTOKEN\033[1;33m]\033[1;32m" _limiter="/${_limTOP}\033[1;33m]\033[1;32m" } } || { _limiter="\033[1;32m/\033[1;31m$(cat $dir_user/${user} | grep "limit" | awk '{print $2}')\033[1;33m]\033[1;32m" } } || _limiter='/⚠️\033[1;33m]\033[1;32m' if [ "$conex" -gt "0" ]; then conex1+="${conex}+" #lim="\033[1;33m[\033[1;35m$(printf '%-7s' ${conex}${_limiter})" #local users=" ${user}, $lim, ${timerr}, ${cor[0]}" #echo -e "$users" | column -e -t -s "," lim="\033[1;33m[\033[1;35m${conex}${_limiter}" users=$(printf '%-15s%-15s%-15s' "${user} " " ${lim} " "${timerr}" ) echo -e "\033[0;35m [\033[0;36m$nU\033[0;35m]\033[0;31m-${cor[3]}$users ${cor[0]}" let nU++ fi done conex1+="0" conex1=$(echo $conex1|bc) [[ "$conex1" = "" ]] && echo -e "\033[1;31m ⚠️ NO TIENES USUARIOS CONECTADOS ! ⚠️ " msg -bar echo -e " \033[1;32m 🔰 # TIENES \033[1;33m [ \033[1;36m${conex1}\033[1;33m ]\033[1;32m USUARIOS CONECTADOS 🔰 #" msg -bar } function_6 () { tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 unset _removidos msg -bar datenow=$(date +%s) for user in $(awk -F: '{print $1}' /etc/passwd); do expdate=$(chage -l $user|awk -F: '/Account expires/{print $2}') echo $expdate|grep -q never && continue datanormal=$(date -d"$expdate" '+%d/%m/%Y') expsec=$(date +%s --date="$expdate") diff=$(echo $datenow - $expsec|bc -l) echo $diff|grep -q ^\- && continue userdel --force $user > /dev/null 2>/dev/null kill -9 `ps aux |grep -vi '[a-z]$user' |grep -vi '$user[a-z]' |grep -v '[1-9]$user' |grep -v '$user[1-9]' |grep $user |awk {'print $2'}` 2> /dev/null pid_kill=$(dropbear_pids | grep "$user" | awk '{print $2}') uskk=$(cat /bin/ejecutar/uskill) let uskk=$uskk+$cco echo $uskk > /bin/ejecutar/uskill [[ "$pid_kill" != "" ]] && drop_kill $user [[ "$OPENVPN" = "on" ]] && open_2 $name [[ -e $dir_user/$user ]] && rm $dir_user/$user _removidos="on" echo -e "\033[1;37m $user ${cor[2]} ELIMINADO " done if [ "$_removidos" = "" ]; then echo -e "${cor[5]} ⚠️ No hay Usuarios Vencidos! ⚠️ " unset _removidos fi msg -bar } ban_per () { clear local="/etc/bannerssh" msg -bar echo -e "\033[1;37m ∆ Linux Dist: $_os\033[0m" msg -bar echo -e "\033[1;37m - BANNER Manipulado - \033[0m" msg -bar echo -e "\033[1;37mSeleccione su Sistema: Para Salir Ctrl + C o 0 Para Regresar\033[1;33m" echo -e " \033[1;31m[ !!! ]\033[1;33m PEGA AQUI TU BANNER \033[1;31m\033[1;33m" msg -bar echo -e " \033[1;31mLuego de Pegar tu banner Presiona Ctrl + O y Enter \033[1;33m \033[1;31m\033[1;33m" echo -e " \033[1;31m Por Ultimo Ctrl + X \033[1;33m \033[1;31m\033[1;33m" echo -ne "\033[1;37m" read -p " Presiona Enter para Continuar " apt install nano -y > /dev/null 2>&1 nano /bin/ejecutar/bannerssh cat /bin/ejecutar/bannerssh > /etc/bannerssh rm /bin/ejecutar/bannerssh fun_bar #[[ ! -e /root/name ]] && credi="@ChumoGH" || credi=$(cat < /root/name) #echo '
'$(cat /bin/ejecutar/menu_credito)'® | '$credi'
' >> /etc/bannerssh [[ -d /etc/dropbear ]] && { [[ -e /etc/bannerssh ]] && cat /etc/bannerssh > /etc/dropbear/banner } || men="NO EXISTE DROPBEAR" msg -bar echo -ne " \033[1;31m[ ! ] VERIFICANDO DROPBEAR " service dropbear restart > /dev/null 2>&1 [[ -e /etc/init.d/dropbear ]] && { /etc/init.d/dropbear restart > /dev/null 2>&1 && echo -e "\033[1;32m [OK]" || { echo -e "\033[1;31m - BANNER INCOMPATIBLE CON DROPBEAR -\n" && echo "DESTRUYENDO DISEÑO" echo "" > /etc/dropbear/banner /etc/init.d/dropbear restart > /dev/null 2>&1 && echo -e "\033[1;32m [OK]" } } || echo -e "\033[0;35m [ $men ]" echo -ne " \033[1;31m[ ! ] VERIFICANDO SSH" service ssh restart > /dev/null 2>&1 service sshd restart > /dev/null 2>&1 [[ -e /etc/init.d/ssh ]] && /etc/init.d/ssh restart > /dev/null 2>&1 && echo -e "\033[1;32m [OK]" || echo -e "\033[1;31m [FAIL]" sleep 0.1s exit } txt_font () { echo -e "\n\033[1;31m[\033[1;36m01\033[1;31m]\033[1;33m Letra Pequeña" echo -e "\033[1;31m[\033[1;36m02\033[1;31m]\033[1;33m Letra Media" echo -e "\033[1;31m[\033[1;36m03\033[1;31m]\033[1;33m Letra Grande" echo -e "\033[1;31m[\033[1;36m04\033[1;31m]\033[1;33m Letra ExtraGrande" echo "" echo -ne "\033[1;32mEscoje el Tamaño de Letra\033[1;31m ?\033[1;37m : "; read opc if [[ "$opc" = "1" ]] || [[ "$opc" = "01" ]]; then _size='6' elif [[ "$opc" = "2" ]] || [[ "$opc" = "02" ]]; then _size='4' elif [[ "$opc" = "3" ]] || [[ "$opc" = "03" ]]; then _size='3' elif [[ "$opc" = "4" ]] || [[ "$opc" = "04" ]]; then _size='1' else _size='6' fi msg -bar echo -ne "\033[1;37m" read -p " INGRESA TU MENSAJE : " ban_ner2 msg -bar unset x echo -e "\033[1;42m Deseas centrar el contenido del banner\033[0;33m :v" echo "" echo -ne "\033[0;32m Responde [ s | n ] : " && read -e -i "s" x msg -bar [[ "$x" = @(s|S|y|Y) ]] && echo -e '' >> /etc/bannerssh
echo -e " \033[1;31m[ 1 ]\033[1;33m > VERDE \033[1;31m[ 9 ]\033[1;33m > AZUL PIZARRA OSCURO"
echo -e " \033[1;31m[ 2 ]\033[1;33m > ROJO \033[1;31m[ 10 ]\033[1;33m > MAGENTA"
echo -e " \033[1;31m[ 3 ]\033[1;33m > AZUL \033[1;31m[ 11 ]\033[1;33m > CHOCOLATE"
echo -e " \033[1;31m[ 4 ]\033[1;33m > AMARILLO \033[1;31m[ 12 ]\033[1;33m > VERDE CLARO"
echo -e " \033[1;31m[ 5 ]\033[1;33m > PURPURA \033[1;31m[ 13 ]\033[1;33m > GRIS"
echo -e " \033[1;31m[ 6 ]\033[1;33m > Naranja \033[1;31m[ 14 ]\033[1;33m > VERDE MAR"
echo -e " \033[1;31m[ 7 ]\033[1;33m > Crema \033[1;31m[ 15 ]\033[1;33m > CIAN OSCURO"
echo -e " \033[1;31m[ 8 ]\033[1;33m > Cyano \033[1;31m[ * ]\033[1;33m > Negro"
read -p " Digite A Cor [ 1 ⇿ 15 ]: " ban_ner2_cor
if [[ "$ban_ner2_cor" = "1" ]]; then
echo '
' > /etc/bannerssh
if [[ "$ban_ner_cor" = "1" ]]; then
echo '
'" $credit "'® | '"$credi"'
' >> /etc/bannerssh #echo '© 2020 ChumoGH, ®' >> /etc/bannerssh [[ -d /etc/dropbear ]] && { [[ -e /etc/bannerssh ]] && cat /etc/bannerssh > /etc/dropbear/banner } || men="NO EXISTE DROPBEAR" msg -bar echo -ne " \033[1;31m[ ! ] VERIFICANDO DROPBEAR " service dropbear restart > /dev/null 2>&1 [[ -e /etc/init.d/dropbear ]] && { /etc/init.d/dropbear restart > /dev/null 2>&1 && echo -e "\033[1;32m [OK]" || { echo -e "\033[1;31m ▢ BANNER INCOMPATIBLE CON DROPBEAR -\n" && echo "DESTRUYENDO DISEÑO" echo "" > /etc/dropbear/banner /etc/init.d/dropbear restart > /dev/null 2>&1 && echo -e "\033[1;32m [OK]" } } || echo -e "\033[0;35m [ $men ]" echo -ne " \033[1;31m[ ! ] VERIFICANDO SSH " service ssh restart > /dev/null 2>&1 service sshd restart > /dev/null 2>&1 [[ -e /etc/init.d/ssh ]] && /etc/init.d/ssh restart > /dev/null 2>&1 && echo -e "\033[1;32m [OK]" || echo -e "\033[1;31m [FAIL]" } return 0 ;; 3) echo "Verificando existencia de BANNER" echo "" [[ -e /etc/bannerssh ]] && { echo "DESTRUYENDO BANNER SSH " echo "" > /etc/bannerssh } || echo "NO EXISTE BANNER DROPBEAR ESTRUCTURADO" [[ -e /etc/dropbear/banner ]] && { echo "DESTRUYENDO BANNER DROPBEAR " echo "" > /etc/dropbear/banner } || echo "NO EXISTE BANNER SSH ESTRUCTURADO" return 0 ;; *) echo "LO SENTIMOS DIGITASTE MAL" sleep 0.1s return 0 ;; esac #TERMINA CASE } meu-v2ray () { tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 tput cuu1 && tput dl1 msg -bar echo -e "\e[97m\033[1;41m PROYECTOS V2RAY REFACTORIZADO By @ChumoGH 11-12-2022 \033[0m" msg -bar echo -ne "\033[1;37m 1)- V2ray Manager UNIVERSAL 2)- V2ray Manager by @Rufu99 $(msg -bar) 0)- Salir \n" | lolcat msg -bar selection=$(selection_fun 2) case ${selection} in 1) [[ ! -z $(which v2ray.menu) ]] && v2ray.menu || source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/v2ray1.sh) ;; 2) [[ ! -z $(which v2r.sh) ]] && v2r.sh || source <(curl -sSL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/v2ray_manager.sh) ;; 0) return 0 ;; esac } ssrmenu () { source <(curl -sL https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/ssrrmu.sh) } selection=$(selection_fun 14) case ${selection} in 1) cd /etc/scpdk1/ && fun_us echo -ne "${cor[5]}" read -p " ¡Enter, para volver!" source /etc/scpdk1/usercodes ;; 2) cd /etc/scpdk1/ && function_2 echo -ne "${cor[5]}" read -p " ¡Enter, para volver!" source /etc/scpdk1/usercodes ;; 3) cd /etc/scpdk1/ && function_3 echo -ne "${cor[5]}" read -p " ¡Enter, para volver!" source /etc/scpdk1/usercodes ;; 4) cd /etc/scpdk1/ && function_4 echo -ne "${cor[5]}" read -p " ¡Enter, para volver!" source /etc/scpdk1/usercodes ;; 5) cd /etc/scpdk1/ && function_5 echo -ne "${cor[5]}" read -p " ¡Enter, para volver!" source /etc/scpdk1/usercodes ;; 6) cd /etc/scpdk1/ && function_7 echo -ne "${cor[5]}" read -p " ¡Enter, para volver!" source /etc/scpdk1/usercodes ;; 7) cd /etc/scpdk1/ && net_meter echo -ne "${cor[5]}" read -p " ¡Enter, para volver!" source /etc/scpdk1/usercodes ;; 8) cd /etc/scpdk1/ && block_user echo -ne "${cor[5]}" read -p " ¡Enter, para volver!" source /etc/scpdk1/usercodes ;; 9) cd /etc/scpdk1/ && recuva1 echo -ne "${cor[5]}" read -p " ¡Enter, para volver!" source /etc/scpdk1/usercodes ;; 10) cd /etc/scpdk1/ && ssrmenu echo -ne "${cor[5]}" read -p " ¡Enter, para volver!" source /etc/scpdk1/usercodes ;; 11) cd /etc/scpdk1/ && meu-v2ray echo -ne "${cor[5]}" read -p " ¡Enter, para volver!" source /etc/scpdk1/usercodes ;; 12) cd /etc/scpdk1/ && consul_cli echo -ne "${cor[5]}" read -p " ¡Enter, para volver!" source /etc/scpdk1/usercodes ;; 13) #[[ ! -z $(which troj.sh) ]] && troj.sh || echo -e " NO SE HA HABILITADO ACCESO AL PANNEL" #echo -ne "${cor[5]}" #read -p " ¡Enter, para volver!" #source /etc/scpdk1/usercodes #;; #14) wget -q -O /tmp/instCHEKC.sh https://raw.githubusercontent.com/kelokepe/scriptcgh/main/Recursos/usercodes/initcheck.sh && bash /tmp/instCHEKC.sh echo -ne "${cor[5]}" read -p " ¡Enter, para volver!" source /etc/scpdk1/usercodes ;; 14) _usCHECK echo -ne "${cor[5]}" read -p " ¡Enter, para volver!" source /etc/scpdk1/usercodes ;; esac