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:
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.