Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Benachrichtigung an anderen User in GUI

103 views
Skip to first unread message

Andreas Kohlbach

unread,
Aug 31, 2015, 6:41:21 PM8/31/15
to
Via

notify-send "test"

kann ich mir selbst eine Benachrichtigung in der GUI (Mate, geht auch
auch in Gnome und vermutlich anderen) zukommen lassen.

Offenbar braucht es aber das Wissen des Passwortes eines anderen Users,
will man diesem eine solche Nachricht zukommen lassen.

Gibt es eine Möglichkeit, ein "GUI Popup" bei einem anderen User zu
erzeugen, ohne sein Passwort zu kennen? So wie das bei "write" ja geht, wo
es allerdings auf einem Terminal landet.
--
Andreas

I use a Unix based operating system, which means I get laid almost as often
as I have to reboot my computer.

Bernd Mayer

unread,
Aug 31, 2015, 7:32:54 PM8/31/15
to
Am 01.09.2015 um 00:41 schrieb Andreas Kohlbach:
> Via
>
> notify-send "test"
>
> kann ich mir selbst eine Benachrichtigung in der GUI (Mate, geht auch
> auch in Gnome und vermutlich anderen) zukommen lassen.
>
> Offenbar braucht es aber das Wissen des Passwortes eines anderen Users,
> will man diesem eine solche Nachricht zukommen lassen.
>
> Gibt es eine Möglichkeit, ein "GUI Popup" bei einem anderen User zu
> erzeugen, ohne sein Passwort zu kennen? So wie das bei "write" ja geht, wo
> es allerdings auf einem Terminal landet.
>
Hallo,

ich kenne noch wall, das geht allerdings an alle eingeloggten user die
das nicht explizit abgestellt haben. Das geht auch auf ein Terminal wird
aber sichtbar.


Bernd Mayer

Richard Maurer

unread,
Sep 1, 2015, 2:45:03 AM9/1/15
to
Hallo Andreas,

Am 01.09.2015 um 00:41 schrieb Andreas Kohlbach:
> Via
>
> notify-send "test"
>
> kann ich mir selbst eine Benachrichtigung in der GUI (Mate, geht auch
> auch in Gnome und vermutlich anderen) zukommen lassen.
>
> Offenbar braucht es aber das Wissen des Passwortes eines anderen Users,
> will man diesem eine solche Nachricht zukommen lassen.
>
> Gibt es eine Möglichkeit, ein "GUI Popup" bei einem anderen User zu
> erzeugen, ohne sein Passwort zu kennen? So wie das bei "write" ja geht, wo
> es allerdings auf einem Terminal landet.
>

In der shell gibts mail oder mailx.
Man kann auch mailx auf Externe Adressen senden.

Ich mache das so:
maurer1:/srv/www/htdocs # cat mailscript.sh
export LANG=de_DE@euro && mailx -s "Logging Informaion"
"ro...@mydomain.xy" <"./information.txt"

dies' ist eine Interne Message an root, welche eine abgelegte Nachricht
mailt.


mit freundlichen Grüßen
Richard Maurer
--
"Denke nie gedacht zu haben, denn das Denken der Gedanken ist
gedankenloses Denken! Denke nie, denn wenn du denkst du denkst, dann
denkst du nur du denkst, gedacht doch hast du nie!"

Richard Maurer

unread,
Sep 1, 2015, 2:55:03 AM9/1/15
to


Am 01.09.2015 um 08:40 schrieb Richard Maurer:
> Hallo Andreas,
>
> Am 01.09.2015 um 00:41 schrieb Andreas Kohlbach:
>> Via
>>
>> notify-send "test"
>>
>> kann ich mir selbst eine Benachrichtigung in der GUI (Mate, geht auch
>> auch in Gnome und vermutlich anderen) zukommen lassen.
>>
>> Offenbar braucht es aber das Wissen des Passwortes eines anderen Users,
>> will man diesem eine solche Nachricht zukommen lassen.
>>
>> Gibt es eine Möglichkeit, ein "GUI Popup" bei einem anderen User zu
>> erzeugen, ohne sein Passwort zu kennen? So wie das bei "write" ja
>> geht, wo
>> es allerdings auf einem Terminal landet.
>>
>
> In der shell gibts mail oder mailx.
> Man kann auch mailx auf Externe Adressen senden.
>
> Ich mache das so:
> maurer1:/srv/www/htdocs # cat mailscript.sh
> export LANG=de_DE@euro && mailx -s "Logging Informaion"
> "ro...@mydomain.xy" <"./information.txt"
>
> dies' ist eine Interne Message an root, welche eine abgelegte Nachricht
> mailt.
>

write ist auch eine Möglichkeit. (wall = write all die Allgemeine
Version an alle User).
ob das in die GUI geht, weis ich nicht, müsste man testen.

Stefan Gruber

unread,
Sep 1, 2015, 6:10:57 AM9/1/15
to
Richard Maurer schrieb:

> write ist auch eine Möglichkeit. (wall = write all die
> Allgemeine Version an alle User).
> ob das in die GUI geht, weis ich nicht, müsste man testen.

Hier unter KDE erscheinen per wall abgesetzte Meldungen als
Benachrichtigung in der GUI.

Stefan
--
System: opensuse 13.2 - 64-bit

Richard Maurer

unread,
Sep 1, 2015, 6:40:03 AM9/1/15
to


Am 01.09.2015 um 12:10 schrieb Stefan Gruber:
> Richard Maurer schrieb:
>
>> write ist auch eine Möglichkeit. (wall = write all die
>> Allgemeine Version an alle User).
>> ob das in die GUI geht, weis ich nicht, müsste man testen.
>
> Hier unter KDE erscheinen per wall abgesetzte Meldungen als
> Benachrichtigung in der GUI.
>

Ok. Interessant, habe ich nicht gewusst, weil noch nie benötigt.
Ich habe nur wall oder write verwendet um den Usern das Sichern der
Daten mitzuteilen.

Richard Maurer

unread,
Sep 1, 2015, 6:50:03 AM9/1/15
to



> Ok. Interessant, habe ich nicht gewusst, weil noch nie benötigt.
> Ich habe nur wall oder write verwendet um den Usern das Sichern der
> Daten mitzuteilen.

Zu schnell auf senden gedrückt....

Die Umgebung war eine Shellbasierte Buchungsanwendung.
Unix MPRAS SystemV und Cobol auf NCR/AT&T Server. Cash war die Shell.

Schon etwas her. ca. 1995

Andreas Kohlbach

unread,
Sep 1, 2015, 4:33:43 PM9/1/15
to
Richard Maurer wrote on 01. September 2015:
>
> Am 01.09.2015 um 00:41 schrieb Andreas Kohlbach:
>> Via
>>
>> notify-send "test"
>>
>> kann ich mir selbst eine Benachrichtigung in der GUI (Mate, geht auch
>> auch in Gnome und vermutlich anderen) zukommen lassen.
>>
>> Offenbar braucht es aber das Wissen des Passwortes eines anderen Users,
>> will man diesem eine solche Nachricht zukommen lassen.
>>
>> Gibt es eine Möglichkeit, ein "GUI Popup" bei einem anderen User zu
>> erzeugen, ohne sein Passwort zu kennen? So wie das bei "write" ja geht, wo
>> es allerdings auf einem Terminal landet.
>>
>
> In der shell gibts mail oder mailx.
> Man kann auch mailx auf Externe Adressen senden.
>
> Ich mache das so:
> maurer1:/srv/www/htdocs # cat mailscript.sh
> export LANG=de_DE@euro && mailx -s "Logging Informaion"
> "ro...@mydomain.xy" <"./information.txt"
>
> dies' ist eine Interne Message an root, welche eine abgelegte
> Nachricht mailt.

Es sollte aber "GUI only" sein. Vielleicht kennt niemand hier libnotify,
obwohl es AFAIK default aktiviert ist in z.B. Gnome? Man bekommt ein
Popup mit runden Ecken auf den Schirm.

Es soll also nichts mit Terminals zu tun haben, in denen eine Nachricht
erscheinen sollte. Auch wall scheint daher nicht das zu sein, was ich
will.

Wie gesagt, zum selben User funktioniert es. Wer unter Gnome (oder Mate,
vermutlich auch Ubuntu (Unity)) unterwegs ist, kann in einem Terminal ja
mal

notify-send "test"

absetzen, dass er weiß, wie es sein soll.

Hintergrund, dass ich einem unerfahrenen User hin und wieder eine
"selbst zerstörende" (man kann einstellen, dass das Popup nur X Sekunden
zu sehen sein soll) Nachricht auf den Schirm schicken will.

Arno Lutz

unread,
Sep 1, 2015, 5:48:33 PM9/1/15
to
Andreas Kohlbach schrieb:
>Hintergrund, dass ich einem unerfahrenen User hin und wieder eine
>"selbst zerstörende" (man kann einstellen, dass das Popup nur X Sekunden
>zu sehen sein soll) Nachricht auf den Schirm schicken will.

kdialog

Gruß
Arno

--
Jeder hat dumme Gedanken, nur der Kluge verschweigt sie.

Arno Lutz

unread,
Sep 1, 2015, 5:53:30 PM9/1/15
to
Arno Lutz schrieb:
>>Hintergrund, dass ich einem unerfahrenen User hin und wieder eine
>>"selbst zerstörende" (man kann einstellen, dass das Popup nur X Sekunden
>>zu sehen sein soll) Nachricht auf den Schirm schicken will.
>
>kdialog

[Ingrid]
sorry, hab wohl das Ubuntu überlesen.
Für kdialog brauchts leider KDE

Stefan Enzinger

unread,
Sep 1, 2015, 6:07:45 PM9/1/15
to
On 2015-09-01 22:33, Andreas Kohlbach wrote:
> Richard Maurer wrote on 01. September 2015:
>>
>> Am 01.09.2015 um 00:41 schrieb Andreas Kohlbach:

>>> Gibt es eine Möglichkeit, ein "GUI Popup" bei einem anderen User zu
>>> erzeugen, ohne sein Passwort zu kennen? So wie das bei "write" ja geht, wo
>>> es allerdings auf einem Terminal landet.

Falls man auf der kiste auch nur kurz root zugang bekommt könnte man ja
einen Eintrag mit NOPASSWD int /etc/sudoers machen.

> Hintergrund, dass ich einem unerfahrenen User hin und wieder eine
> "selbst zerstörende" (man kann einstellen, dass das Popup nur X Sekunden
> zu sehen sein soll) Nachricht auf den Schirm schicken will.

Ja, falls der daemon die Zeitangabe respektiert. WIMRE steht in der
Spezifikation irgendwo "should" und nicht "must"... Dazu gibt es einen
tragisch-lustigen Bug report:

https://bugs.launchpad.net/ubuntu/+source/notify-osd/+bug/390508

Thomas 'PointedEars' Lahn

unread,
Sep 2, 2015, 5:09:32 PM9/2/15
to
Stefan Enzinger wrote:

> On 2015-09-01 22:33, Andreas Kohlbach wrote:
>> Richard Maurer wrote on 01. September 2015:
>>> Am 01.09.2015 um 00:41 schrieb Andreas Kohlbach:
>>>> Gibt es eine Möglichkeit, ein "GUI Popup" bei einem anderen User zu
>>>> erzeugen, ohne sein Passwort zu kennen? So wie das bei "write" ja geht,
>>>> wo es allerdings auf einem Terminal landet.
>
> Falls man auf der kiste auch nur kurz root zugang bekommt könnte man ja
> einen Eintrag mit NOPASSWD int /etc/sudoers machen.

Das nützt wahrscheinlich nichts. Man sieht das Problem mit dem
generischen Programm xmessage(1):

$ sudo xmessage foo
Invalid MIT-MAGIC-COOKIE-1 keyError: Can't open display: :0

Daran scheitern letztlich auch meine anderen Ansätze, so dass ich leider
keine bessere Idee habe.


Meine Recherche, für den Fall, dass ich etwas übersehen habe:

Googlen nach “send message to other user X.org” lieferte

<http://superuser.com/questions/309961/linux-how-to-send-message-to-local-user-logged-into-x11>

Das klappt aber offenbar wegen X-Cookie nur, wenn man selbst der Zieluser
ist.

<http://askubuntu.com/questions/132592/how-do-i-send-a-notify-osd-message-to-a-remote-user-via-ssh>

Dafür muss man sich aber als der andere User anmelden können.

Googlen nach “determine x11 display of user” lieferte

<http://www.commandlinefu.com/commands/view/9979/how-to-find-the-active-x-x11xorg-username-and-display-variable>

Und ich habe dann herausgefunden, dass who(1) auch die X-Displays der
angemeldeten Benutzer liefert.

Jedoch nützt es nichts, die Display-Nummer zu kennen, weil das X-Cookie
trotzdem nicht passt.

--
PointedEars

Twitter: @PointedEars2
Please do not cc me. / Bitte keine Kopien per E-Mail.

Ulf Volmer

unread,
Sep 2, 2015, 5:55:03 PM9/2/15
to
Thomas 'PointedEars' Lahn <Point...@web.de> schrieb:
> Stefan Enzinger wrote:
>
>> Falls man auf der kiste auch nur kurz root zugang bekommt könnte man ja
>> einen Eintrag mit NOPASSWD int /etc/sudoers machen.

> $ sudo xmessage foo
> Invalid MIT-MAGIC-COOKIE-1 keyError: Can't open display: :0

Wenn man das wirklich will (tm), kann man einfach $XAUTHORITY in der sudoers
unter env_keep ablegen.

Viele Grüße
Ulf

Ulf Volmer

unread,
Sep 2, 2015, 6:05:02 PM9/2/15
to
Ulf Volmer <u.vo...@u-v.de> schrieb:
Das war selbstredend Quatsch, es ging ja um das Display eines fremden Users.

Dennoch sollte es für root möglich sein, dass Cookie auszulesen, und in obriger
Variable abzulegen.

Viele Grüße
Ulf

Stefan Enzinger

unread,
Sep 2, 2015, 6:38:22 PM9/2/15
to
On 2015-09-02 23:05, Thomas 'PointedEars' Lahn wrote:
> Stefan Enzinger wrote:

>> Falls man auf der kiste auch nur kurz root zugang bekommt könnte man ja
>> einen Eintrag mit NOPASSWD int /etc/sudoers machen.
>
> Das nützt wahrscheinlich nichts. Man sieht das Problem mit dem
> generischen Programm xmessage(1):
>
> $ sudo xmessage foo
> Invalid MIT-MAGIC-COOKIE-1 keyError: Can't open display: :0

Ich habe hier unter Ubuntu gerade diesen cron Eintrag for root probiert
und ich sehe in meiner X session die Uhrzeit:

* * * * * XAUTHORITY=/home/estefan/.Xauthority DISPLAY=':0.0' \
notify-send "`date`"

Habe den Zeilenumbruch für's usenet mit '\' markiert. 'estefan' sollte
man natürlich anpassen, ebenso wie $DISPLAY, aber dazu hast du etwas
gefunden:

Stefan Enzinger

unread,
Sep 2, 2015, 6:52:45 PM9/2/15
to
Ingrid flüstert mir gerade noch diesen Link zu einem Skript das alle
X-Sessions informiert:

https://laclaro.wordpress.com/2011/10/20/nachrichten-vom-admin-broadcast-mit-notify-send/

Thomas 'PointedEars' Lahn

unread,
Sep 2, 2015, 7:58:12 PM9/2/15
to
Der Wert der Umgebungsvariable “XAUTHORITY” ist nicht das Cookie, sondern
der Pfad der Datei, in der es gespeichert ist. Deshalb funktioniert bei mir
als “root”, ohne gesetzte Umgebungsvariable DISPLAY:

DISPLAY=$(who | awk '/^joe[[:space:]]+:[[:digit:]]/ {print $2}') \
XAUTHORITY=$(ps a | awk '/\/[X]/ { match($0, /[[:space:]]-
auth[[:space:]]+([^[:space:]]+)/, a); print a[1] }') \
xmessage -center foo &

Erklärung:

who(1) liefert die Liste der angemeldeten Benutzer. In der ersten Spalte
steht der Benutzername; nach diesem wird gefiltert. In der zweiten Spalte
(“$2”) steht die “terminal line”; die vom X11-Server beginnt offenbar mit
“:” und ist identisch mit dem vom Benutzer verwendeten X11-Display. Deshalb
wird nach solchen Zeilen gefiltert (alternativ funktional identisch: “$1 ~
/^joe$/ && $2 ~ /^:[[:digit:]]/”). Entsprechend wird für den auszuführenden
Befehl die Umgebungsvariable “DISPLAY” gesetzt.

ps(1) liefert die Prozessliste; diese wird nach Einträgen, die “/X”
enthalten, gefiltert, um den Befehl für den X11-Server-Start herauszufinden.
Damit der Aufruf von awk(1), der auch diese Zeichenfolge enthält, nicht
gefunden wird, wird “/X” mit “/[X]” gesucht (ansonsten äquivalent:
Zeichenklasse bestehend aus einem Zeichen). Der Pfad der Datei, in der
offenbar *alle* gültigen MIT-MAGIC-COOKIE-1’s abgelegt werden, wird bei mir
im X11-Aufruf mit dem Parameter “-auth” angegeben; diese Option wird gesucht
und dessen Wert an die Umgebungsvariable “XAUTHORITY” für den auszuführenden
Befehl zugewiesen. (Man kann auch ~joe/.Xauthority angeben, aber das
funktioniert nur, wenn joe nicht XAUTHORITY auf einen anderen Wert gesetzt
hat.)

Der auszuführende Befehl ist “xmessage foo”; er wird es im Hintergrund
ausgeführt (“&”), da andernfalls die weitere Ausführung unterbrochen wird,
bis der Zielbenutzer (joe) die Meldung wegklickt. Die Option “-center”
zeigt die Meldung in der Mitte des Bildschirms an.

Dieser Ansatz funktioniert bei mir (mit und ohne “&”) auch mit notify-
send(1). [Aber nicht aus screen(1) heraus, weder mit
TERM=screen-256color+italic (benutzerdefinierte Terminal-Definition für
Kursivschrift in screen-Terminals) noch TERM=xterm oder dem screen-Default
TERM=screen. Woran liegt das?]

Mit der benutzerdefinierten Shell-Funktion

notify () {
(
user=$1
shift

DISPLAY=$(who | awk -v user=$user '
BEGIN { rx = "^" user "[[:space:]]+:[[:digit:]]" }
$0 ~ rx { print $2 }'
) \
XAUTHORITY=$(
ps a |
awk '/\/[X]/ { match($0, /[[:space:]]-
auth[[:space:]]+([^[:space:]]+)/, p); printf "%s", p[1] }'
) \
notify-send "$@"
);
}

geht dann

notify michael 'Hinweis' 'Du hast den Farbfilm vergessen!'


MIT-MAGIC-COOKIE-1 ist gemäss Xsecurity(7) aber nur eine von 5
Möglichkeiten, einen X11-Server gegen unbefugten Zugriff abzusichern, wenn
auch offenbar unter GNU/Linux der Default.

Sieghard Schicktanz

unread,
Sep 3, 2015, 2:13:07 PM9/3/15
to
Hallo Ulf,

Du schriebst am Thu, 3 Sep 2015 00:00:13 +0200:

> > Wenn man das wirklich will (tm), kann man einfach $XAUTHORITY in der
> > sudoers unter env_keep ablegen.
...
> Dennoch sollte es für root möglich sein, dass Cookie auszulesen, und in
> obriger Variable abzulegen.

Tut es, geht sogar direkt in .Xauthority, habe ich hier laufend am Laufen.
(Damit können sogar Daemons Mitteilungen absetzen.)

--
--
(Weitergabe von Adressdaten, Telefonnummern u.ä. ohne Zustimmung
nicht gestattet, ebenso Zusendung von Werbung oder ähnlichem)
-----------------------------------------------------------
Mit freundlichen Grüßen, S. Schicktanz
-----------------------------------------------------------

Tim Ritberg

unread,
Sep 4, 2015, 7:36:15 AM9/4/15
to
Oder den:
http://cweiske.de/tagebuch/DBus%20notify-send%20over%20network.htm


Das Topic brachte mich eben auf die Idee, über ISDNlog mir ein
Fensterchen bei Anrufen anzuzeigen.
Bisher kam immer nur stündlich eine Mail.

Tim

Jan Heitkötter

unread,
Sep 4, 2015, 2:39:40 PM9/4/15
to
Am 01.09.2015 um 00:41 schrieb Andreas Kohlbach:
> Gibt es eine Möglichkeit, ein "GUI Popup" bei einem anderen User zu
> erzeugen, ohne sein Passwort zu kennen? So wie das bei "write" ja geht, wo
> es allerdings auf einem Terminal landet.

Nimm einen Chat-Client wie bspw. Empathy und nutze das Protokoll
"Personen in der Nähe".
<https://help.gnome.org/users/empathy/stable/salut-protocol.html.en>

HTH

Jan

Christian Garbs

unread,
Sep 10, 2015, 4:57:31 PM9/10/15
to
Mahlzeit!

Arno Lutz <inv...@freakmail.de> wrote:

> [Ingrid]
> sorry, hab wohl das Ubuntu überlesen.
> Für kdialog brauchts leider KDE

KDE gibt es natürlich auch unter Ubuntu - allerdings scheint es
kdialog nicht als eigenes Package zu geben. Das versteckt sich wohl
in irgendeinem Sammelpaket.

Gruß
Christian
--
....Christian.Garbs.....................................http://www.cgarbs.de
(Beide) Hände an die Stange, Frauen-Popos sind immer da,
wo man sie nicht vermutet.
(fanyilam im AnT-Forum zum Thema Bahn/Rush-Hour/Japan)

Tim Ritberg

unread,
Sep 10, 2015, 5:21:36 PM9/10/15
to
Am 10.09.2015 um 22:57 schrieb Christian Garbs:
> Mahlzeit!
>
> Arno Lutz <inv...@freakmail.de> wrote:
>
>> [Ingrid]
>> sorry, hab wohl das Ubuntu überlesen.
>> Für kdialog brauchts leider KDE
>
> KDE gibt es natürlich auch unter Ubuntu - allerdings scheint es
> kdialog nicht als eigenes Package zu geben. Das versteckt sich wohl
> in irgendeinem Sammelpaket.
>
> Gruß
> Christian
>


Datei Pakete
/usr/bin/kdialog kde-baseapps-bin


Tim
0 new messages