GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux:Wie sende ich eine Nachricht an einen lokalen Benutzer, der bei X11 angemeldet ist?

Der xmessage Mit dem Tool können Sie genau das tun; Benutzern ein Popup-Fenster mit einer darin enthaltenen Textnachricht präsentieren.

Beispiel:Benutzer2 meldet sich bei einer BASH-Sitzung auf der Box an und gibt Folgendes aus:

export DISPLAY=':0.0'
xmessage "some message here"

Wenn Sie sich in eine TSCH-Sitzung einloggen, sieht das ungefähr so ​​aus:

setenv DISPLAY ':0.0'
xmessage "some message here'

Alternativ können Sie Nachrichten auf zwei Arten an Terminalsitzungen senden:

Mit wall (=alle [Benutzer] warnen)

Aus der Manpage:
Wall zeigt den Inhalt der Datei oder standardmäßig ihre Standardeingabe auf den Terminals aller derzeit angemeldeten Benutzer an.

Wenn Sie einen bestimmten Benutzer ansprechen möchten, verwenden Sie write . Wieder sagt uns der Mensch:

Das Schreib-Dienstprogramm erlaubt Ihnen, mit anderen Benutzern zu kommunizieren, indem Sie Zeilen von Ihrem Terminal zu ihrem kopieren.


In der Regel werden X11-Sitzungen normalerweise in einem „privaten“ Modus gestartet, sodass Sie eines von zwei Dingen benötigen:entweder die Zusammenarbeit von user2 um Ihnen den Zugriff auf ihre Bildschirme zu ermöglichen, oder Superuser-Privilegien, um in ihre Bildschirme „einzubrechen“.

GEFAHR: Denken Sie daran, dass Sie, sobald Sie Zugriff auf ihren Bildschirm haben, auch Dinge wie das Erfassen von Tastenanschlägen (möglicherweise einschließlich Passwörtern) und Screenshots machen könnten, also ist dies ein großes Sicherheitsrisiko.

In den meisten In solchen Fällen ist es besser, stattdessen ein Messaging-Tool oder ein Chat-Programm für diese Dinge zu verwenden.

Vorbehalte beiseite:

Zusammenarbeit

Wenn user2 möchte user1 zulassen um auf ihren Bildschirm zuzugreifen, dann zuerst user2 muss einen Befehl wie:

ausgeben
 xhost +si:localuser:user1

Dies könnte möglicherweise zu irgendeiner Art von Startskript hinzugefügt werden; Ich kenne Fluxbox nicht, aber ich nehme an, es hat einen rc oder Session-Start-Hook.

Sobald dies geschehen ist, user1 kann dann nach user2 schreiben angezeigt, wenn sie es finden können.

Wenn user2 weiß, kann er es jederzeit an user1 senden auf andere Weise.

Das Display eines anderen Nutzers finden

Auf einer typischen Workstation ist es ungewöhnlich, dass mehr als ein oder zwei Benutzer angemeldet sind; In diesem Fall könnte es eine praktikable Lösung sein, zu „raten“, dass die gewünschte Anzeige 0, 1 oder vielleicht 2 ist.

Nehmen wir für eine vollständigere Lösung jedoch an, dass Sie einen Computer haben, auf dem sehr viele Benutzer angemeldet sein könnten, und versuchen Sie, den gewünschten zu finden.

for proc in /proc/[0-9]*/
do
     if [ Xorg = $(< $proc/comm ) ] 2>/dev/null && \
        [ $(id -u user2) -eq $(< $proc/loginuid) ] 2>/dev/null
     then
        for subproc in $(
        do
            echo "user2 display=" $(perl -ne 'if (m,DISPLAY=(.*)\0,) { print $1 }' < $subproc/environ)
        done
     fi
done

dann user1 kann schließlich (unter Verwendung des oben erhaltenen DISPLAY-Werts; ich habe gerade :14.0 geschrieben hier…)

DISPLAY=:14.0 xmessage "Hello, user2"

Stattdessen eine Benachrichtigung senden

Der Vollständigkeit halber funktioniert Folgendes zumindest auf dem Gnome-Desktop. Ich weiß nicht, ob Fluxbox ein Benachrichtigungs-Widget hat.

 DISPLAY=:14.0 notify-send "Hello, user2"

Dies hat viel benutzerfreundlichere Optionen für die Anzeige und wird wahrscheinlich eher freundlicher auf dem Bildschirm des Benutzers erscheinen.


Linux
  1. So setzen und löschen Sie lokale, benutzer- und systemweite Umgebungsvariablen in Linux

  2. So ändern Sie einen Benutzernamen in Linux

  3. So fügen Sie Benutzer zu einer Gruppe in Linux hinzu

  4. So senden Sie Multicast-Pakete über eine bestimmte Schnittstelle in Linux

  5. Wie sende ich eine Raw-Mail-Nachricht unter Linux?

So fügen Sie einen Benutzer zu einer Gruppe in Linux hinzu

So booten Sie in die Linux-Befehlszeile

So ändern Sie den Benutzer unter Linux

So sehen Sie angemeldete Benutzer in Linux

So fügen Sie einen Benutzer zu einer Gruppe unter Linux hinzu

So fügen Sie einen Benutzer zu einer Linux-Gruppe hinzu