Mam takie samo pytanie jak ty, ale dla zwykłego użytkownika. Powiedzmy, że chcę uruchomić Firefoksa przy użyciu konta użytkownika foo. Jestem zalogowany jako pasek:
[bar@localhost ~]$ sudo -u foo -H firefox
Niestety to polecenie nie powiodło się z takim samym błędem jak w pytaniu (tzn. Nie określono protokołu i nie można otworzyć wyświetlacza)
Moim rozwiązaniem było po prostu dodanie foo użytkownika do listy autoryzowanych użytkowników na serwerze X.
xhost si:localuser:foo
I to było to, mogłem wtedy uruchomić Firefoksa (i inną aplikację X) za pomocą sudo
i użytkownika foo.
Tło : w X Window jest architektura klient / serwer. Po uruchomieniu aplikacji żądasz autoryzacji serwera X, aby ją wyświetlić. Domyślnie po otwarciu sesji (zalogowaniu się graficznie), Ty (Twój użytkownik) oczywiście możesz komunikować się z serwerem i wyświetlać aplikacje. Inni użytkownicy nie mają tego uprawnienia, chyba że je określisz. xhost
to narzędzie do manipulowania listą uprawnień. si
Wskazuje, że zasada jest po stronie serwera i autoryzacji użytkownika lokalnego foo
do aplikacji graficznych. X Window jest pod tym względem bardzo wydajny i można wyświetlać zdalne aplikacje lokalnie, grając ze DISPLAY
zmienną środowiskową i xhost
(ale nie tylko). W starszych czasach, kiedy ludzie pisali na maszyniexhost +
i domyślnie zezwalał wszystkim na korzystanie z sesji X, możliwe było wyświetlanie aplikacji na ekranie dla żartów ;-) obecnie nie tyle, ponieważ ludzie coraz mniej używają architektury klient / serwer X Window (przynajmniej dla tego, co obserwuję w przez ostatnie 10 lat).
PS: Zrobiłem to, aby uruchomić Firefoksa w rodzaju „więzienia” (aby uniknąć podatności takiej jak pdf.js w przyszłości). Szybko jednak przekonałem się, że wywołanie Firefoksa przez sudo nie pozwoli mu uzyskać dostępu do dźwięku ani sprzętu wideo. Ale jest jeden facet, który jasno wyjaśnia, jak włączyć akcelerację sprzętową wideo i dźwięk podczas wywoływania Firefoksa przez sudo . YMMV z tymi instrukcjami, np. Wciąż mam odmowę dostępu do dźwięku, ale wideo jest w porządku (testowane na Fedorze 22 z włączonym SELinux).