In der Regel werden X11-Sitzungen in einem "privaten" Modus gestartet. Sie benötigen daher eines von zwei Dingen: entweder die Zusammenarbeit von user2
, um auf ihre Bildschirme zugreifen zu können, oder die Superuser-Berechtigungen, um in ihre Bildschirme einzudringen .
GEFAHR: Denken Sie daran, sobald Sie Zugriff auf den Bildschirm haben, können Sie auch Tastenanschläge (möglicherweise einschließlich Kennwörter) erfassen und Screenshots erstellen. Dies ist also ein großes Sicherheitsrisiko.
In den meisten Fällen ist es vorzuziehen, stattdessen ein Messaging-Tool oder ein Chat-Programm für diese Dinge zu verwenden.
Vorbehalte beiseite:
Zusammenarbeiten
Wenn Sie user2
den user1
Zugriff auf den Bildschirm zulassen möchten, user2
müssen Sie zunächst einen Befehl wie den folgenden eingeben:
xhost +si:localuser:user1
Dies könnte möglicherweise zu einem Startskript hinzugefügt werden. Ich kenne Fluxbox nicht, aber ich gehe davon aus, dass es einen rc
oder Session-Start-Hook hat.
Sobald dies ausgegeben wurde, user1
kann auf user2
das Display geschrieben werden, wenn sie es finden können.
Wenn Sie user2
sich dessen bewusst sind, können Sie es jederzeit auf user1
andere Weise senden .
Anzeige eines anderen Benutzers suchen
Auf einer typischen Workstation ist es ungewöhnlich, dass mehr als ein oder zwei Benutzer angemeldet sind. In diesem Fall ist es möglicherweise eine praktikable Lösung, zu erraten, dass die gewünschte Anzeige 0, 1 oder vielleicht 2 ist.
Für eine vollständigere Lösung nehmen wir jedoch an, dass Sie einen Computer haben, auf dem sehr viele Benutzer angemeldet sein könnten, und versuchen, 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 endlich (mit dem oben erhaltenen DISPLAY-Wert; ich habe gerade :14.0
hier geschrieben ...)
DISPLAY=:14.0 xmessage "Hello, user2"
Senden Sie stattdessen eine Benachrichtigung
Der Vollständigkeit halber funktioniert das Folgende zumindest auf dem Gnome-Desktop. Ich weiß nicht, ob Fluxbox ein Benachrichtigungs-Widget hat.
DISPLAY=:14.0 notify-send "Hello, user2"
Dies bietet viel benutzerfreundlichere Anzeigeoptionen und wird wahrscheinlich auf dem Bildschirm des Benutzers auf eine freundlichere Weise angezeigt.
user1
in meinem Beispiel) bei X11 angemeldet ist und noch keinxterm
anderes Terminal geöffnet hat ,wall
funktioniert das auch? Ich denke, dasuser1
wird keine Nachrichten sehen.