[erledigt/gelöst] angemeldeten X/GUI-User als root abfragen?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Drache
Beiträge: 772
Registriert: 22.11.2009 05:49:55

[erledigt/gelöst] angemeldeten X/GUI-User als root abfragen?

Beitrag von Drache » 20.02.2013 11:23:13

Hallo,

ich suche einen Befehl, der als root ausgeführt, den gerade in X angemeldeten user ausspuckt (der wiederum nicht root ist). Dabei soll schließlich nur der username (also der Anmeldename, die ID?) ausgegeben werden.

Was ich schon gefunden habe, ist:

Code: Alles auswählen

whoami # funktioniert nicht, weil es laut man-page nur den effektiven? Nutzer ausgibt
who # gibt den gewünschten Nutzernamen zwar aus, allerdings mit zuviel Zusatzinformation
id # quasi unbrauchbar im vorgestellten Szenario, es sei denn ich übersehe etwas
Meine Vermutung ist, dass ich es am einfachsten mit "who" realsieren könnte und dafür stout nur entsprechend "filtern" muss – ich weiß aber nicht wie. Wo lese ich jetzt also weiter?

Ziel ist es, ein von root ausgeführtes Skript ein notify-send an den jeweils angemeldeten User absetzen zu lassen, aber das ist eigentlich nur belanglose Zusatzinfo.
Zuletzt geändert von Drache am 21.02.2013 10:54:54, insgesamt 1-mal geändert.
“Don't you think that if I were wrong, I'd know it?” (Dr. Sheldon Cooper)
XFCE: alt,steinhart,langweilig,immer noch da.

niesommer
Beiträge: 2493
Registriert: 01.10.2006 13:19:37
Lizenz eigener Beiträge: GNU General Public License

Re: angemeldeten X/GUI-User als root abfragen?

Beitrag von niesommer » 20.02.2013 11:32:12

Hallo,
Probiere dochmal w aus, das sollte genau das tun was du willst.
Gruß niesommer
Gruß niesommer

Benutzeravatar
Natureshadow
Beiträge: 2157
Registriert: 11.08.2007 22:45:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Radevormwald
Kontaktdaten:

Re: AW: angemeldeten X/GUI-User als root abfragen?

Beitrag von Natureshadow » 20.02.2013 11:42:27

X-User landen nicht zuverlässig in wtmp. w und who scheiden also aus.

Welchen Displaymanager verwendest du?

niesommer
Beiträge: 2493
Registriert: 01.10.2006 13:19:37
Lizenz eigener Beiträge: GNU General Public License

Re: AW: angemeldeten X/GUI-User als root abfragen?

Beitrag von niesommer » 20.02.2013 11:49:20

Natureshadow hat geschrieben:X-User landen nicht zuverlässig in wtmp. w und who scheiden also aus.
Könntest du das bitte einmal näher erläutern,?
Meine Erfahrungen begrenzen sich auf KDM und WDM und unter beiden funktioniert das sehr ordentlich und bis jetzt sehr zuverlässig.
Gruß niesommer
Gruß niesommer

Benutzeravatar
Drache
Beiträge: 772
Registriert: 22.11.2009 05:49:55

Re: angemeldeten X/GUI-User als root abfragen?

Beitrag von Drache » 20.02.2013 11:50:19

Hallo,

gebe ich als root w -s ein, kommt

Code: Alles auswählen

11:40:25 up  3:45,  2 users,  load average: 1,08, 0,91, 0,94
USER     TTY      FROM              IDLE WHAT
drache      pts/2    :1.0             25:08  pager -s
drache      pts/3    :1.0              0.00s /usr/bin/xfce4-terminal
auch die anderen Optionen scheinen die Ausgabe nicht auf "drache" zu verkürzen.

Displaymanager … ich bin mir grade mit der Terminologie nicht ganz sicher aber Displaymanager ist – denke ich – lightdm. Auf dem System läuft je nach verwendendem User Xfce, Compiz oder e17
“Don't you think that if I were wrong, I'd know it?” (Dr. Sheldon Cooper)
XFCE: alt,steinhart,langweilig,immer noch da.

Benutzeravatar
Natureshadow
Beiträge: 2157
Registriert: 11.08.2007 22:45:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Radevormwald
Kontaktdaten:

Re: AW: angemeldeten X/GUI-User als root abfragen?

Beitrag von Natureshadow » 20.02.2013 11:55:27

In wtmp stehen nur Loginshells. Was du da siehst sind Shells im Terminal. Wenn der User keine Shell geöffnet hat, sondern nur grafische Anwendungen, siehst du da nichts. Mit w brauchst du also gar nicht weiter probieren.

Du kannst versuchen, dir die dbus-launch Prozesse anzusehen und wem die gehören. Das ist ekelig, aber was besseres fällt mir gerade nicht ein.

niesommer
Beiträge: 2493
Registriert: 01.10.2006 13:19:37
Lizenz eigener Beiträge: GNU General Public License

Re: angemeldeten X/GUI-User als root abfragen?

Beitrag von niesommer » 20.02.2013 12:12:00

Hallo,
Das trifft ja nur dann zu wenn in der /etc/passwd keine login-shell angegeben ist oder?
Denn sonst wird der nutzer bei mir zuverlässig angezeigt: nur die reine Anmeldung von user penny ohne Anwendungen zustarten:

Code: Alles auswählen

w 
 11:57:55 up  2:42,  4 users,  load average: 0,06, 0,09, 0,14
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
penny    :1                        11:57   ?xdm?   4:48   0.04s -:1         
shelly   pts/0    :0               09:22    2:35m 60.24s 60.21s htop
shelly   pts/1    :0               11:30    0.00s  0.03s  0.00s w

who 
penny    :1           2013-02-20 11:57
shelly   pts/0        2013-02-20 09:22 (:0)
shelly   pts/1        2013-02-20 11:30 (:0)
Hier Anmeldung mit terminal gestartet für user penny:

Code: Alles auswählen

 w
 12:07:24 up  2:52,  6 users,  load average: 0,15, 0,15, 0,16
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty2                      12:00    6:48   0.05s  0.02s -bash
penny    :1                        11:57   ?xdm?   5:19   0.04s -:1         
shelly   pts/0    :0               09:22    2:44m  1:04   1:04  htop
shelly   pts/1    :0               11:30    0.00s  0.04s  0.00s w
penny    pts/2    :1               12:01    6:19   0.02s  0.02s /bin/bash

who
root     tty2         2013-02-20 12:00
penny    :1           2013-02-20 11:57
shelly   pts/0        2013-02-20 09:22 (:0)
shelly   pts/1        2013-02-20 11:30 (:0)
penny    pts/2        2013-02-20 12:01 (:1)
Gruß niesommer

Benutzeravatar
Natureshadow
Beiträge: 2157
Registriert: 11.08.2007 22:45:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Radevormwald
Kontaktdaten:

Re: AW: angemeldeten X/GUI-User als root abfragen?

Beitrag von Natureshadow » 20.02.2013 12:15:03

niesommer hat geschrieben:Hallo,
Das trifft ja nur dann zu wenn in der /etc/passwd keine login-shell angegeben ist oder?
Dieser Satz ist völliger Unfug. Loginshell hat nichts mit /etc/passwd zu tun sondern damit, ob die Shell als Loginshell gestartet wurde (mksh -l, beispielsweise).

Möglicherweise hat die Bash einen Bug, durch den sie immer Sessions in wtmp schreibt. POSIX-Shells tun das nicht.

niesommer
Beiträge: 2493
Registriert: 01.10.2006 13:19:37
Lizenz eigener Beiträge: GNU General Public License

Re: angemeldeten X/GUI-User als root abfragen?

Beitrag von niesommer » 20.02.2013 12:47:14

Hallo,
Also ich habe dem user penny einfachmal eine Posix-Konforme shell verpasst die DASH. Ich hoffe mal das du das als Posixshell aktzeptierst.
Ich bin leider nicht das Genie das alles 100% Korrekt ausdrückt.
Das sind dazu die ergebnisse:

Code: Alles auswählen

dpkg -l |grep dash
ii  dash                                         0.5.7-3                            i386         POSIX-compliant shell
Einmal ohne Anwendungen und einmal wieder mit Terminal

Code: Alles auswählen

 w
 12:30:46 up 2 min,  4 users,  load average: 0,14, 0,11, 0,05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
shelly   pts/0    :0               12:29    1:10   0.76s  0.70s htop
shelly   pts/1    :0               12:29    0.00s  0.07s  0.00s w
penny    :1                        12:29   ?xdm?   7.34s  0.05s -:1         
 w
 12:31:14 up 2 min,  5 users,  load average: 0,09, 0,10, 0,05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
shelly   pts/0    :0               12:29    1:38   1.05s  0.99s htop
shelly   pts/1    :0               12:29    0.00s  0.07s  0.00s w
penny    :1                        12:29   ?xdm?   7.85s  0.05s -:1         
penny    pts/2    :1               12:31    8.00s  0.00s  0.00s /bin/dash
Demzufolge hat also auch die Dash einen Bug? Ich will nicht bestreiten das es vielleicht shells gibt die sich nicht in wtmp eintragen, und das es dafür auch Bedingungen gibt wo sowas verwendet wird, aber der Regelfall denke ich ist das nicht. Denn als Admin auf einem Mehrbenutzersystem will ich ja jederzeit kontrollieren können wer sich an dem System angemeldet hat.
Gruß niesommer
Gruß niesommer

Benutzeravatar
Drache
Beiträge: 772
Registriert: 22.11.2009 05:49:55

Re: angemeldeten X/GUI-User als root abfragen?

Beitrag von Drache » 20.02.2013 13:27:56

Hm,

okay… ich bin wohl irgendwo in eurer Diskussion ausgestiegen…

Vielleicht kann ich aus dem Ergebnis von who oder auch w die Benutzerinfo für die Variable einffach rausschneiden? Die man-page von dbus-launch erklärt mir nur, wie ich Prozesse über dbus-launch starte, bzw. noch ein paar Sachen, deren Sinn mir nicht ganz klar ist. Wie frage ich denn laufende Prozesse (das ist ein grafischer Login ja) damit ab?
Zuletzt geändert von Drache am 20.02.2013 13:36:27, insgesamt 1-mal geändert.
“Don't you think that if I were wrong, I'd know it?” (Dr. Sheldon Cooper)
XFCE: alt,steinhart,langweilig,immer noch da.

Benutzeravatar
Natureshadow
Beiträge: 2157
Registriert: 11.08.2007 22:45:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Radevormwald
Kontaktdaten:

Re: AW: angemeldeten X/GUI-User als root abfragen?

Beitrag von Natureshadow » 20.02.2013 13:29:48

Auf meinen Systemen ist es jedenfalls nicht zuverlässig, und das habe ich so nicht herbeigeführt. Deshalb ist die Lösung nicht universell.

Benutzeravatar
Drache
Beiträge: 772
Registriert: 22.11.2009 05:49:55

Re: angemeldeten X/GUI-User als root abfragen?

Beitrag von Drache » 21.02.2013 10:54:21

Hallo nochmal!

Also ob es (auf meinem System) zuverlässig funktioniert, kann ich noch nicht abschließend beantworten, dafür muss es meine Frau noch in ihrem Account testen, aber für mich ist vorläufig zufriedenstellende Lösung:

Code: Alles auswählen

test=$(who | head -n 1 | cut -d" " -f 1)
echo $test
Also erledigt.
“Don't you think that if I were wrong, I'd know it?” (Dr. Sheldon Cooper)
XFCE: alt,steinhart,langweilig,immer noch da.

Benutzeravatar
Natureshadow
Beiträge: 2157
Registriert: 11.08.2007 22:45:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Radevormwald
Kontaktdaten:

Re: AW: [erledigt/gelöst] angemeldeten X/GUI-User als root a

Beitrag von Natureshadow » 21.02.2013 11:21:27

Und wenn du dich vor dem X-User anmeldest und dann in der ersten Zeile stehst?

uname
Beiträge: 12406
Registriert: 03.06.2008 09:33:02

Re: [erledigt/gelöst] angemeldeten X/GUI-User als root abfra

Beitrag von uname » 21.02.2013 11:39:59

Du könntest auch noch Debianlsof oder Verzeichnisse in /tmp auswerten.

Antworten