Anhand eines Maschinennamens möchte ich prüfen, ob jemand an dieser Maschine angemeldet ist oder nicht. Eine Ja/Nein-Antwort würde genügen (ich möchte nicht den Benutzernamen). Gibt es irgendwelche Hinweise, nach welchem Befehl ich suchen soll?
Mit „angemeldet“ meine ich die Verwendung einer grafischen Benutzeroberfläche auf diesem Computer. SSH zählt nicht.
Sie können davon ausgehen, dass ich über einen autorisierten SSH-Login für diesen Rechner verfüge.
Antwort1
who
zeigt Ihnen, wer angemeldet ist. Wenn sie sich in einer GUI befinden, ist ihr „Terminal“ das X-Display, an das sie angeschlossen sind (sonst das TTY):
paul :0 2013-02-20 11:43
Also
who | grep paul
würde nichts zurückgeben, wenn ich nicht angemeldet wäre, bzw. etwas, wenn ich angemeldet wäre.
Wenn Sie SSH- und Konsolenverbindungen ausschließen möchten, gehen Sie wie folgt vor:
who | grep -v pts | grep paul
Sie können diesen Befehl remote ausführen, indem Sie dem SSH-Befehl Folgendes hinzufügen:
ssh user@host 'who | grep -v pts | grep paul'
Dadurch erfolgt die Anmeldung beim Remotecomputer, der Vorgang wird ausgeführt who
und die Ergebnisse werden zurückgegeben.