• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] überprüfen ob benutzer 2x per ssh angemeldet ist.

Hallo,

ich suche nach einer Möglichkeit, zu prüfen, ob ein user öfter als 1x per ssh eingeloggt ist.
beim ssh login wird sofort ein script ausgeführt, das ein selbstgeschriebenes programm startet.
nun soll in dem programm überprüft werden, ob der user bereits per ssh in einer anderen session verbunden ist.

das funktioniert ja nun gut über:
Code:
ps -ef|grep "sshd: [^ ]*@pts"

wenn er 1x verbunden ist kommt:
Code:
benutzer   6031  6025  0 11:39 ?        00:00:00 sshd: benutzer@pts/1

und wenn er öfter verbunden ist halt:
Code:
benutzer   6031  6025  0 11:39 ?        00:00:00 sshd: benutzer @pts/1 
            
benutzer    6106  6100  0 11:44 ?        00:00:00 sshd: benutzer @pts/2

aber wie kann ich es jetzt hinbekommen, das er das überprüft obs da 1x oder öfter steht?

gruß

sphings
 
pipe es durch
Code:
wc -l
und pack es in einen test
z.B.
Code:
$ test `ps -ef|grep "sshd: [^ ]*@pts"|wc -l` -ge 2 || echo moo
moo
^^ testet ob 2 logins oder mehr, wenn nicht zutreffend mach irgendwas
 
Gimpel schrieb:
pipe es durch
Code:
wc -l
und pack es in einen test
z.B.
Code:
$ test `ps -ef|grep "sshd: [^ ]*@pts"|wc -l` -ge 2 || echo moo
moo
^^ testet ob 2 logins oder mehr, wenn nicht zutreffend mach irgendwas

hmm passiert iwie nix?!? auch nicht wenn 2 oder mehr user per ssh eingeloggt sind unter dem selben benutzernamen ...
 
Gimpel schrieb:
^^ testet ob 2 logins oder mehr, wenn nicht zutreffend mach irgendwas
Da 2 oder mehr eingeloggt sind, passiert nichts :)
Ersetze das || durch &&, dann passiert was wenn 2 oder mehr eingeloggt sind.

Code:
$ ps -ef|grep "sshd: [^ ]*@pts"
tom      11597 10531  0 12:02 ?        00:00:00 sshd: tom@pts/4  
$ ps -ef|grep "sshd: [^ ]*@pts"|wc -l
1
$ test `ps -ef|grep "sshd: [^ ]*@pts"|wc -l` -ge 2 || echo moo
moo
$ ssh tom@localhost -p 443
Password: 
Last login: Wed Jul  4 12:06:43 2007 from localhost
$ test `ps -ef|grep "sshd: [^ ]*@pts"|wc -l` -ge 2 && echo "number of logins: $_"
number of logins: 2
;)
 
Gimpel schrieb:
Gimpel schrieb:
^^ testet ob 2 logins oder mehr, wenn nicht zutreffend mach irgendwas
Da 2 oder mehr eingeloggt sind, passiert nichts :)
Ersetze das || durch &&, dann passiert was wenn 2 oder mehr eingeloggt sind.

Code:
$ ps -ef|grep "sshd: [^ ]*@pts"
tom      11597 10531  0 12:02 ?        00:00:00 sshd: tom@pts/4  
$ ps -ef|grep "sshd: [^ ]*@pts"|wc -l
1
$ test `ps -ef|grep "sshd: [^ ]*@pts"|wc -l` -ge 2 || echo moo
moo
$ ssh tom@localhost -p 443
Password: 
Last login: Wed Jul  4 12:06:43 2007 from localhost
$ test `ps -ef|grep "sshd: [^ ]*@pts"|wc -l` -ge 2 && echo "number of logins: $_"
number of logins: 2
;)

danke, mit

Code:
test `ps -ef|grep "sshd: [^ ]*$USER@pts"|wc -l` -ge 2 && echo moo

klappts jetzt auch wenn ein anderer user sich einloggt das nur der doppelte login vom bereits eingeloggten nicht will :)
 
sphings schrieb:
klappts jetzt auch wenn ein anderer user sich einloggt das nur der doppelte login vom bereits eingeloggten nicht will :)
Evtl gehts etwas zu schnell.. login -> script. Was passiert wenn es der dritte login ist?
 
Oben