Autor Tópico: Como Verificar Usuário logado  (Lida 24097 vezes)

Offline neowolfer

  • Usuário Ubuntu
  • *
  • Mensagens: 11
    • Ver perfil
Como Verificar Usuário logado
« Online: 19 de Dezembro de 2008, 17:18 »
como que eu faço pra verificar se tem duas pessoas logado por SSH com o mesmo usuário

teria como fazer isso por shell script, tipo colocando no profile, assim que a pessoa logar verificar se aquele usuário ja esta logado e duplicado derrubar eles...

pra derrubar eu sei que da pra usar killall $USER

o problema esta sendo na verificação, por que tem que acusar duplicidade, se eu só verificar se esta logado vai derrubar todo mundo que logar, a questão é tem como verificar duplicidade de acesso?

Offline Felix

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 3.068
    • Ver perfil
    • Alexsandro Felix
Re: Como Verificar Usuário logado
« Resposta #1 Online: 19 de Dezembro de 2008, 17:47 »
com o comando: w você pode verificar quais usuários estão conectados, qual terminal, há quanto tempo, e o que ele está executando no momento. Daí basta usar a imaginação, há também o comando who (não sei dizer qual a diferença entre os dois comandos.)

Offline neowolfer

  • Usuário Ubuntu
  • *
  • Mensagens: 11
    • Ver perfil
Re: Como Verificar Usuário logado
« Resposta #2 Online: 19 de Dezembro de 2008, 18:11 »
o problema esta sendo pegar esses dados e tratar eles...

por que é um processo que terá que ser feito automatico e não por um usuário administrador

Offline LinuxMan

  • Usuário Ubuntu
  • *
  • Mensagens: 9
    • Ver perfil
Re: Como Verificar Usuário logado
« Resposta #3 Online: 22 de Dezembro de 2008, 16:27 »
Bom gente, eu fiz usando ShellScript, deve haver uma maneira mais fácil.
Vou explicar o código:
- w: me mostrou os usuários e mais detalhes.
- grep "pts/": pegou apenas os usuários do ssh.
- awk '{print $1;}': pegou apenas os nomes dos usuários.
- sort: colocou em ordem alfabética.
- awk 'BEGIN {anterior=""}{ if(anterior==$1){print "ps ax |grep ssh|grep "$1;}else{anterior=$1;} }'|/bin/sh: printou o número dos processos dos usuários que estão logados em 2 ou mais terminais.
- awk '{print "kill "$1;}'|/bin/sh: Mata os processos dos usuários logados em 2 ou mais terminais.

Arquivo elimina.sh
Código: [Selecionar]
#/bin/bash
#developer: www.linuxmanhelp.com
w | grep "pts/" | awk '{print $1;}'|sort  |
awk 'BEGIN {anterior=""}{ if(anterior==$1){print "ps ax |grep ssh|grep "$1;}else{anterior=$1;} }'|
/bin/sh |
awk '{print "kill "$1;}'|
/bin/sh

Testei e no meu servidor de teste e funcionou corretamente.



Offline Chucknoris

  • Usuário Ubuntu
  • *
  • Mensagens: 131
  • Linux for human beings!
    • Ver perfil
Re: Como Verificar Usuário logado
« Resposta #4 Online: 23 de Dezembro de 2008, 12:49 »
O comando  smbstatus também mostra os usuários logados na rede samba, não sei se é isso que tu precisas...
Ubuntu user Number 15679
Linux User Number 448603

Offline LinuxMan

  • Usuário Ubuntu
  • *
  • Mensagens: 9
    • Ver perfil
Re: Como Verificar Usuário logado
« Resposta #5 Online: 23 de Dezembro de 2008, 20:07 »
 ??? ??? ??? ???

Mas foi perguntado sobre SSH e não samba.

 ??? ??? ??? ???

Offline Chucknoris

  • Usuário Ubuntu
  • *
  • Mensagens: 131
  • Linux for human beings!
    • Ver perfil
Re: Como Verificar Usuário logado
« Resposta #6 Online: 24 de Dezembro de 2008, 01:10 »
Foi mal eu não li a pergunta, fui pelo impulso pelo assunto do tópico...
Ubuntu user Number 15679
Linux User Number 448603