Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Meu (K)Ubuntu
Por kr4k3n
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Comunidades

Comunidade Linux Home Participar da comunidade Linux Participar Fórum Linux Fórum Membros LinuxMembros RSS do fórum

<< Primeira | Anterior Próxima | Última >>

Derrubar usuário logado no sistema

[1] Enviado em 15/03/2010 - 16:13h Derrubar usuário logado no sistema
Linux user: Elvani Neto
elvanineto

(usa Red Hat)


Estou com um problema no meu sistema com usuários que ficam travados no login.
Utilizamos um servidor Linux como TS para acesso do sistema. Todo o sistema e banco de dados fica nesse servidor.

É criado um usuário para cada pessoa que utiliza o TS. O problema acontece é que do nada o o usuário fica travado no sistema e para liberar esse usuário eu tenho que dar um "kill -9 pid".

A solução pra esse problema seria a criação de um Shell Script que faria a verificação do usuário travado e mataria esse usuário do sistema automaticamente de 2 em 2 minutos, sendo controlado pelo crontab.

O problema é saber de um indicador para identificar que o usuário esteja travado. Com o usuário travado dando um "ps aux | grep usuárioxx" eu tenho o seguinte resultado:

root 25882 0.0 0.0 4604 1456 ? Ss 15:57 0:00 login -- usuarioxx
usuarioxx 25902 0.0 0.0 6192 1268 pts/10 Ss+ 15:57 0:00 -bash
usuarioxx 25945 0.0 0.0 5920 2648 pts/10 S+ 15:57 0:00 fglrun monitor

Dando um "who -u | grep usuarioxx" eu tenho o seguinte resultado:

usuarioxx pts/10 Mar 15 15:57 00:06 25882 (xxx.xxx.xxx.xxx)


Então como devo fazer? Caso não seja possível fazer um Shell Script existe alguma outra meneira de matar esse usuário, como por exemplo, fazer uma rotina para quando o usuário fazer o segundo login ele matar o primeiro login?

Desde já, obrigado!

 

  


[2] Enviado em 16/03/2010 - 09:20h Re: Derrubar usuário logado no sistema
Linux user: Elvani Neto
elvanineto

(usa Red Hat)


Corrigindo.

Não é TS. O acesso é telnet.

 

[3] Enviado em 18/03/2010 - 11:48h Re: Derrubar usuário logado no sistema
Linux user: Elvani Neto
elvanineto

(usa Red Hat)


Ninguém? Eu pensei em uma solução mas preciso desenvolver o script.
Aumentaria o maxlogins dos usuários para 2.

A rotina verificaria quando o usuário se conectasse pela segunda vez.
Analisaria o who -u, pegando o seu login mais antigo por horas e minutos e matando. Então quando um usuário ficasse travado no sistema era só ele logar novamente que ele teria uma sessão nova destravada e com a antiga kilada.

Tentei fazer utilizando AWK mas não consegui.

 

[4] Enviado em 05/04/2010 - 13:23h Re: Derrubar usuário logado no sistema
Linux user: Jeferson Moraes de Oliveira
jefinho16v

(usa CentOS)


Acredito que não é possivel pois você tera que executar o script, não sendo possivel a execução do mesmo ao tentar logar pela segunda vez.


 

[5] Enviado em 05/04/2010 - 16:03h Re: Derrubar usuário logado no sistema
Linux user: Marcos Paulo Ferreira
Daemonio

(usa Slackware)


Só para eu entender:

1) O usuário loga
2) Se o antigo processo travou então quando eu mandar um who -u, terei duas entradas para o mesmo usuário.
3) Se 2) é verdadeiro então mato o processo travado. Faço isso utilizando um ps aux e pego todos os PID referente aos processos do usuário. Como o primeiro PID é o do processo travado, então dou um kill nele.
4) Usuário loga normalmente, sendo que 3) pode ocorrer ou não.

É isso mesmo?

Abraços
t+

 

[6] Enviado em 05/04/2010 - 22:23h Re: Derrubar usuário logado no sistema
Linux user: Elvani Neto
elvanineto

(usa Red Hat)


Sim, isso mesmo. Já até consegui desenvolver essa rotina.

Agora só preciso dar uma melhorada nela. Eu fiz por essa lógica: limitei o maxlogins pra 2 por usuário. Utilizei o seguinte pensamento que quando o usuário travar, deverá ser feito um novo login. O loop é verificado de 30 em 30 segundos se o úsuário tem dois processos de login. Se for verdade o primeiro login é matado, ou seja, o que está travado.

Deu certo pra mim, agora quero fazer a leitura desses usuários por um arquivo qualquer. O comando who -u joga o nome de todos os usuários em um arquivo qualquer e a rotina verifica esse arquivo. Eu fiz uma rotina pra cada usuário, ficou bem extenso o programa.

Se alguém tiver uma idéia eu agradeço.

 

[7] Enviado em 05/04/2010 - 23:58h Re: Derrubar usuário logado no sistema
Linux user: fabricio erdmann
Fabricio.Er

(usa Debian)


tente usar listas em conjunto com uma função while tipo esse pequeno scrit em python:

a = ('lista','dos', 'usuarios')
def test(b):
i = 0
while i < len(b):
print b
i = i + 1

o python tem suporte a comandos do linux, mas faz um tempo que não mecho com isso então não lembro quais são.

 

[8] Enviado em 07/04/2010 - 14:41h Re: Derrubar usuário logado no sistema
Linux user: Marcos Paulo Ferreira
Daemonio

(usa Slackware)


Não sei se você já resolveu o problema, mas uma dica que posso te dar é que para ver usuários duplicados em who -u, você pode fazer:

$ who -u | sort | uniq -d
joao
maria

Nessa caso, joao e maria tem mais de uma entrada no who, o que leva a crer que cada um deles está logado mais de uma vez.

Espero ter ajudado.
t+

 

[9] Enviado em 07/05/2010 - 16:27h Bloqueo
Linux user: Alex Rolim
arollim

(usa Red Hat)


Amigo o meu problema é inverso ao seu , eu gostaria de nao permitir que um usuario que esteja logado no servidor via (NETTERM) se logasse de novo na rede se o IP for o mesmo, no meu caso quando o usuario faz isso o corno , trava o sistema , ja vi alguns aqui com 4 logins na mesma maquina.

Quanto ao seu problema vou pesquisar se achar algo , te falo
Abraco

Alex

 

  
<< Primeira | Anterior Próxima | Última >>
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.