У мене було те саме питання, що і у вас, але до звичайного користувача. Скажімо, я хочу запустити firefox за допомогою foo користувача. Я ввійшов як бар:
[bar@localhost ~]$ sudo -u foo -H firefox
На жаль, ця команда не вдалася з тією ж помилкою, що і в питанні (тобто не вказано протокол і не можна відкрити показ)
Моє рішення полягало в тому, щоб просто додати foo користувача до списку дозволеного доступу до X-сервера.
xhost si:localuser:foo
І це було все, я тоді зміг запустити Firefox (та інший додаток X) за допомогою sudo
та foo користувача.
Фон : у вікні X є архітектура клієнт / сервер. Під час запуску програми ви вимагаєте авторизації сервера X для його відображення. За замовчуванням, коли ви відкриваєте сеанс (ви графічно входите в систему), вам (вашому користувачеві), очевидно, дозволяється спілкуватися з сервером і показувати програми. Інші користувачі не мають цього дозволу, якщо ви не вказали його. xhost
є інструментом для управління списком дозволів. si
Вказує на те, що правило на стороні сервера і авторизації локального користувача foo
до додатків дисплея. X Window в цьому плані дуже потужний, і ви можете відображати віддалені програми локально, граючи зDISPLAY
змінною середовища та xhost
(але не обмежуючись ними). У старіші часи, коли люди друкувалиxhost +
і явно дозволяв всім використовувати свій X сеанс, можна було показувати додаток на своєму екрані для витівки ;-) не стільки, скільки зараз люди все рідше використовують клієнтську / серверну архітектуру X Window (принаймні для того, що я спостерігаю в останні 10 років).
PS: Я зробив це для того, щоб запустити Firefox у своєрідну "в'язницю" (щоб уникнути вразливості на зразок pdf.js в майбутньому). Але я швидко з’ясував, що виклик Firefox через sudo не дозволить йому отримати доступ до аудіо, ні до відеообладнання. Але є один хлопець, який чітко пояснює, як активувати прискорення відеоапаратури та аудіо при дзвінку Firefox через sudo . YMMV з цими вказівками, наприклад, мені все одно у дозволі відмовлено в аудіо, але відео чудово (тестовано на Fedora 22 з SELinux ON).