При запуске графических программ от имени другого пользователя ему требуется разрешение на доступ к X серверу. Такое разрешение выдается командой xost в различных вариациях. Кроме того программе необходимо указать адрес дисплея на котором запущены иксы. Xhost устанавливает разрешение на время текущей сессии, примеры команды:
1 2 3 4 5 6 7 8 | xhost +SI:localuser:root # разрешить пользователю root xhost +SI:localuser:avtobys # разрешить пользователю avtobys xhost +local:local # разрешить всем локальным хостам и локльным пользователям машины xhost + # разрешить всем хостам и кому угодно(плохая идея) |
Предположим, нам нужно запустить chromium от имени пользователя avtobys
1 2 3 4 | xhost +SI:localuser:avtobys # разрешаем пользователю использование X сервера su - avtobys -c 'export DISPLAY=:0 && chromium' # указываем адрес дисплея и запускаем нужную прогу |