There are occasions when you want to contact a user working at a remote computer, but his/her phone is switched off. If the remote user is running an X11 session, and you have ssh access to the remote computer, and you have root privileges on the remote computer, here is a solution.
ssh you@remotehost sudo DISPLAY=:0 XAUTHORITY=~remoteuser/.Xauthority xmessage "Are you there? Call me. You"
There are alternatives to xmessage if you want more sophistication, for example notify-send, zenity or kdialog.
If you don’t know the correct values for DISPLAY and XAUTHORITY, do the following:
ps -u remoteuser
... 2319 ? 00:01:02 xfce4-panel 2321 ? 00:00:00 Thunar 2323 ? 00:00:07 xfdesktop 2329 ? 00:00:31 indicator-cpufr 2331 ? 00:00:07 indicator-powerpulseaudio 2343 ? 00:00:21 pulseaudio 2344 ? 00:00:00 xfce4-volumed 2350 ? 00:00:02 nm-applet ...
Pick a process the remote user is running making sure that there is only a single instance of the process, e.g. nm-applet. Then run the following command.
sudo cat /proc/$(echo $(ps -C nm-applet -o pid=))/environ | xargs --null --max-args=1 | egrep '^(DISPLAY|XAUTHORITY)='
Source:
- http://www.linux-magazine.com/Issues/2009/99/Zenity-and-KDialog
- http://superuser.com/questions/598072/how-to-send-an-xmessage-as-root-remotely-to-regular-user-logged-in-with-x-se