staging.inyokaproject.org

Abfragen, ob Benutzer angemeldet ist

Status: Ungelöst | Ubuntu-Version: Ubuntu 18.04 (Bionic Beaver)
Antworten |

altmetaller

Anmeldungsdatum:
14. Mai 2020

Beiträge: 35

Hallo,

mein Rechner wird mitten in der Nacht per WOL geweckt und erstellt dann ein Backup. Im Anschluss soll der Rechner wieder heruntergefahren werden. Dazu könnte die Software (Veeam Agent free) ein Shell-Script starten.

Meine Idee ist, dort eine Abfrage zu hinterlegen die prüft, ob ein Benutzer angemeldet ist. Falls ich den Rechner bewusst über Nacht anlasse (Kernel compilieren^^), bleibe ich dann halt angemeldet und fahre ihn nicht herunter.

Was wäre da der Ansatz? Per "who" kann ich mir ja die angemeldeten Benutzer anzeigen lassen. Ist das "sicher" genug wenn ich prüfe, ob die Ausgabe leer ist? Wie könnte so eine Prüfung "best practice" aussehen?

Gruß, Jörg

Cranvil

Anmeldungsdatum:
9. März 2019

Beiträge: 990

Wenn dir eine noch einfachere Liste recht ist, kannst du auch den Befehl users verwenden. Hier werden nur die Benutzernamen getrennt durch Leerzeichen ausgegeben. 😉

Beide Mechanismen benutzen die Datei /var/run/utmp. Die manpages sagen dazu:

The utmp file allows one to discover information about who is currently using the system. There may be more users currently using the system, because not all programs use utmp logging.

Dementsprechend gibt es keine Garantie dafür, dass du wirklich alle erwischst. Alternativ kannst du die verschiedenen Varianten von für dich relevanten Benutzersitzungen durchspielen und damit sehen, was jeweils ausgegeben wird.

"Works for me" ist vielleicht nicht Best Practice, aber für Good Practice wird's schon reichen. 😉

Vain

Avatar von Vain

Anmeldungsdatum:
12. April 2008

Beiträge: 2510

Vielleicht ist auch die Perspektive von systemd interessant:

$ loginctl list-sessions
SESSION  UID USER SEAT  TTY 
      2 1000 void seat0 tty1

1 sessions listed.
Antworten |