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 user2den user1Zugriff auf den Bildschirm zulassen möchten, user2mü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 rcoder Session-Start-Hook hat.
Sobald dies ausgegeben wurde, user1kann auf user2das Display geschrieben werden, wenn sie es finden können.
Wenn Sie user2sich dessen bewusst sind, können Sie es jederzeit auf user1andere 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 user1kann endlich (mit dem oben erhaltenen DISPLAY-Wert; ich habe gerade :14.0hier 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.
user1in meinem Beispiel) bei X11 angemeldet ist und noch keinxtermanderes Terminal geöffnet hat ,wallfunktioniert das auch? Ich denke, dasuser1wird keine Nachrichten sehen.