Script para impedir multi-login [RESOLVIDO]

1. Script para impedir multi-login [RESOLVIDO]

Célio Junior
celiomagalhaesjr

(usa Ubuntu)

Enviado em 18/11/2016 - 00:15h

Já abri um tópico com esse mesmo titulo porem esse tem um proposito diferente.

Eu sou leigo na arte do linux e seus scripts.... Tenho um servidor SSH Tunnel, gostaria de um script que me permitisse bloquear multiplas conexões no servidor....
Geralmente os usuarios usam apps como : HTTP Injector , KPN Tunnel e outros para usar o serviço. O problema é que compram uma conta e logam em varios dispositivos....

Por este motivo eu gostaria de um script onde eu:

- Entrasse com o nome do usuário que eu gostaria de limitar;
- O numero de conexões permitidas;
- E se ultrapassar disso ele derrube a conexão deste usuário.

Agradeço desde já a ajudas dos amigos...


  


2. MELHOR RESPOSTA

Wagner Souza
wagnerfs

(usa Fedora)

Enviado em 18/11/2016 - 00:25h

Veja se ajuda ou te dá um norte:

#!/bin/bash

#Apenas os usuários com permissão conectar via SSH

ALLOWUSERS="joao suporte"

for i in $ALLOWUSERS;
do

# Verifica se há algum usuário conectado

FNDUSER=$(w | cut -d ' ' -f1 | grep -i $i | wc -l)

#Caso hajam 2 ou mais conexoes do mesmo usuário, ele sera deslogado

if [ $FNDUSER -ge 2 ];
then
for x in $(ps -u $i | cut -d ' ' -f2); do kill -9 $x;done
fi


done


_________________________
"GNU/Linux for human beings."

ºvº "Software Livre: não é pelo dinheiro.
/( _ ) É uma questão de consciência."
^ ^



3. Re: Script para impedir multi-login [RESOLVIDO]

Célio Junior
celiomagalhaesjr

(usa Ubuntu)

Enviado em 18/11/2016 - 00:34h

K666 escreveu:

Veja se ajuda ou te dá um norte:

#!/bin/bash

#Apenas os usuários com permissão conectar via SSH

ALLOWUSERS="joao suporte"

for i in $ALLOWUSERS;
do

# Verifica se há algum usuário conectado

FNDUSER=$(w | cut -d ' ' -f1 | grep -i $i | wc -l)

#Caso hajam 2 ou mais conexoes do mesmo usuário, ele sera deslogado

if [ $FNDUSER -ge 2 ];
then
for x in $(ps -u $i | cut -d ' ' -f2); do kill -9 $x;done
fi


done


_________________________
"GNU/Linux for human beings."

ºvº "Software Livre: não é pelo dinheiro.
/( _ ) É uma questão de consciência."
^ ^



Infelizmente sou leigo ao ponto de voce ter me dado um "Norte" e eu ter ido para o "Sul" sou leigo, não entendo do assunto


4. Re: Script para impedir multi-login [RESOLVIDO]

Wagner Souza
wagnerfs

(usa Fedora)

Enviado em 18/11/2016 - 00:38h

Neste caso recomendo o estudo dos comandos básicos do linux bem como a criação de script em shell. Abaixo alguns materiais que podem te ajudar:

https://www.vivaolinux.com.br/artigo/Algoritmos-em-Shell-Script
https://www.youtube.com/watch?v=u16ZDPcf8Rc&list=PLucm8g_ezqNp92MmkF9p_cj4yhT-fCTl7
http://aurelio.net/shell/apostila-introducao-shell.pdf

Bons estudos!
_________________________
"GNU/Linux for human beings."

ºvº "Software Livre: não é pelo dinheiro.
/( _ ) É uma questão de consciência."
^ ^




5. Re: Script para impedir multi-login [RESOLVIDO]

Célio Junior
celiomagalhaesjr

(usa Ubuntu)

Enviado em 18/11/2016 - 00:43h

K666 escreveu:

Neste caso recomendo o estudo dos comandos básicos do linux bem como a criação de script em shell. Abaixo alguns materiais que podem te ajudar:

https://www.vivaolinux.com.br/artigo/Algoritmos-em-Shell-Script
https://www.youtube.com/watch?v=u16ZDPcf8Rc&list=PLucm8g_ezqNp92MmkF9p_cj4yhT-fCTl7
http://aurelio.net/shell/apostila-introducao-shell.pdf

Bons estudos!
_________________________
"GNU/Linux for human beings."

ºvº "Software Livre: não é pelo dinheiro.
/( _ ) É uma questão de consciência."
^ ^



#!/bin/sh

mkdir usuarios 1>/dev/null 2>/dev/null

echo '\033[01;32mQual o nome do usuario ?\033[00;37m'
read nome

echo '\033[01;32mQual o limite de conexoes simultaneas ?\033[00;37m'
read co

echo "#!/bin/sh" > usuarios/$nome.sh
echo ""$nome"t="$"(ps x | grep -v pts | grep $nome | grep sshd | wc -l)" >> usuarios/$nome.sh
echo "if [ "$""$nome"t -gt $co ]" >> usuarios/$nome.sh
echo "then" >> usuarios/$nome.sh
echo "killall -u "$"(ps -aux | grep ^$nome | tr -s ' ' | cut -d ' ' -f2) 1>/dev/null 2>/dev/null" >> usuarios/$nome.sh
echo "killall -u $nome" >> usuarios/$nome.sh
echo "fi" >> usuarios/$nome.sh

mkdir tempo 1>/dev/null 2>/dev/null

echo "#!/bin/bash" > tempo/$nome.sh
echo "sleep 10s" >> tempo/$nome.sh
echo "sh usuarios/$nome.sh" >> tempo/$nome.sh
echo "sleep 10s" >> tempo/$nome.sh
echo "sh usuarios/$nome.sh" >> tempo/$nome.sh
echo "sleep 10s" >> tempo/$nome.sh
echo "sh usuarios/$nome.sh" >> tempo/$nome.sh
echo "sleep 10s" >> tempo/$nome.sh
echo "sh usuarios/$nome.sh" >> tempo/$nome.sh

echo "*/1 * * * * root sh tempo/$nome.sh" >> /etc/crontab
echo "#" >> /etc/crontab

Eu fiz esse , mas o mesmo não funciona, e o usuario ainda tem conexão (multiplas). O que fiz de errado?


6. Re: Script para impedir multi-login [RESOLVIDO]

Wagner Souza
wagnerfs

(usa Fedora)

Enviado em 18/11/2016 - 00:54h

Tentou usar o script que passei? É bem menor e funcional
_________________________
"GNU/Linux for human beings."

ºvº "Software Livre: não é pelo dinheiro.
/( _ ) É uma questão de consciência."
^ ^




7. Re: Script para impedir multi-login [RESOLVIDO]

Célio Junior
celiomagalhaesjr

(usa Ubuntu)

Enviado em 18/11/2016 - 01:01h

K666 escreveu:

Tentou usar o script que passei? É bem menor e funcional
_________________________
"GNU/Linux for human beings."

ºvº "Software Livre: não é pelo dinheiro.
/( _ ) É uma questão de consciência."
^ ^



Sim mas ao executar nada aparece


8. Re: Script para impedir multi-login [RESOLVIDO]

Wagner Souza
wagnerfs

(usa Fedora)

Enviado em 18/11/2016 - 01:11h

Você tem que entender o script e adequar ao seu ambiente. Coloquei dois logins de exemplo: joao e suporte. Você bota os que tem permissão para se logar via ssh e vai ajeitando à tua realidade.
_________________________
"GNU/Linux for human beings."

ºvº "Software Livre: não é pelo dinheiro.
/( _ ) É uma questão de consciência."
^ ^




9. Re: Script para impedir multi-login [RESOLVIDO]

Célio Junior
celiomagalhaesjr

(usa Ubuntu)

Enviado em 18/11/2016 - 08:41h

K666 escreveu:

Você tem que entender o script e adequar ao seu ambiente. Coloquei dois logins de exemplo: joao e suporte. Você bota os que tem permissão para se logar via ssh e vai ajeitando à tua realidade.
_________________________
"GNU/Linux for human beings."

ºvº "Software Livre: não é pelo dinheiro.
/( _ ) É uma questão de consciência."
^ ^


Entendi amigo, vou fazer o que voce me indicou, estoudarei mais sobre shell script e usarei o seu como base, agradeço muito as suas dicas



10. Re: Script para impedir multi-login [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 18/11/2016 - 10:24h

K666 escreveu:

Você tem que entender o script e adequar ao seu ambiente. Coloquei dois logins de exemplo: joao e suporte. Você bota os que tem permissão para se logar via ssh e vai ajeitando à tua realidade.
_________________________
"GNU/Linux for human beings."

ºvº "Software Livre: não é pelo dinheiro.
/( _ ) É uma questão de consciência."
^ ^




No lugar de João suporte, poderia colocar
um
# echo "perguntando qual o Usuário que ele deseja ver"
E um
# read USUÁRIO

Ai atribuiria o valor da variável USUÁRIO ao script








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts