Como Verificar Usuário logado

Iniciado por neowolfer, 19 de Dezembro de 2008, 17:18

tópico anterior - próximo tópico

neowolfer

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?

Felix

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.)

neowolfer

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

LinuxMan

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

#/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.



Chucknoris

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

LinuxMan

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

Mas foi perguntado sobre SSH e não samba.

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

Chucknoris

Foi mal eu não li a pergunta, fui pelo impulso pelo assunto do tópico...
Ubuntu user Number 15679
Linux User Number 448603