Nie można uruchomić aplikacji graficznych z terminala po aktualizacji do 15.10

10

Po aktualizacji do 15.10 nie można uruchamiać aplikacji graficznych z terminala:

xxx@xxx:~$ gksudo wireshark
Invalid MIT-MAGIC-COOKIE-1 key
(gksudo:5532): Gtk-WARNING **: cannot open display: :0
xxx@xxx:~$ sudo -H wireshark
[sudo] password for xxx: 
Invalid MIT-MAGIC-COOKIE-1 key
** (wireshark:5535): WARNING **: Could not open X display
Invalid MIT-MAGIC-COOKIE-1 keyFailed to connect to Mir: Failed to connect to server socket: No such file or directory
Unable to init server: Could not connect: Connection refused

(wireshark:5535): Gtk-WARNING **: cannot open display: :0
xxx@xxx:~$ wireshark
Invalid MIT-MAGIC-COOKIE-1 key
** (wireshark:5569): WARNING **: Could not open X display
Invalid MIT-MAGIC-COOKIE-1 keyFailed to connect to Mir: Failed to connect to server socket: No such file or directory
Unable to init server: Could not connect: Connection refused

(wireshark:5569): Gtk-WARNING **: cannot open display: :0
xxx@xxx:~$ gedit
Invalid MIT-MAGIC-COOKIE-1 key
** (gedit:5570): WARNING **: Could not open X display
Invalid MIT-MAGIC-COOKIE-1 keyFailed to connect to Mir: Failed to connect to server socket: No such file or directory
Unable to init server: Could not connect: Connection refused

(gedit:5570): Gtk-WARNING **: cannot open display: :0
xxx@xxx:~$ sudo gedit
Invalid MIT-MAGIC-COOKIE-1 key
** (gedit:5574): WARNING **: Could not open X display
Invalid MIT-MAGIC-COOKIE-1 keyFailed to connect to Mir: Failed to connect to server socket: No such file or directory
Unable to init server: Could not connect: Connection refused

(gedit:5574): Gtk-WARNING **: cannot open display: :0

Moje małe badania wskazywały na używanie gksudo, ale to też nie działa. Próbowałem też trochę rzeczy z Xauth. Jaki jest problem? Dzięki.

sssemil
źródło
1
Spróbuj usunąć .Xauthority- sudo rm -f ~/.Xauthoritya następnie uruchomić ponownie.
UniversallyUniqueID
Nie, to samo.
sssemil

Odpowiedzi:

15

Jako zwykły użytkownik uruchom polecenie xhost +. Następnie spróbuj ponownie uruchomić aplikację graficzną.

To wyłącza kontrolę dostępu opartą na hoście na serwerze X. Oto odpowiednie informacje ze strony man:

Program xhost służy do dodawania i usuwania nazw hostów lub nazw użytkowników do listy dozwolonej do nawiązywania połączeń z serwerem X.

+ Dostęp jest przyznawany wszystkim, nawet jeśli nie ma ich na liście (tzn. Kontrola dostępu jest wyłączona).

strumień
źródło
Mam problemy z otwieraniem aplikacji GUI z terminala jako root, ale nie jako zwykły użytkownik. W takim przypadku uruchomienie xhost +jako rootpozwoliło mi uruchomić aplikacje GUI jako zwykły użytkownik.
Craig Otis,
To zadziałało! Dzięki!
Muhammad bin Yusrat
3

Dziwne, ale export DISPLAY=:1pomogło. Twoje zdrowie.

sssemil
źródło
2
Czy korzystasz z wielu wyświetlaczy X czy coś takiego? Domyślnie powinno być:0
UniversallyUniqueID
2
dokładnie ten sam problem (w moim przypadku 16.04); niestety to nie działa.
adam.smith
Nie, tylko jeden. „: 0” było zawsze domyślne, ale po aktualizacji coś się zmieniło.
sssemil
1
W moim przypadku ustawienie WYŚWIETLACZA na: 0 rozwiązało to (podczas gdy: 1 nie zrobiło)
mbello
W moim przypadku ustawienie WYŚWIETLACZA na: 2 rozwiązało to. Muszę tylko próbować.
zkytony
0

W moim przypadku ten sam problem został znaleziony po aktualizacji jednego pakietu gnome-shellza pośrednictwem synaptic-package-manager. Natychmiast po następnym logowaniu nie mogłem uzyskać dostępu do żadnej części GUI systemu operacyjnego. W końcu dużo szukałem,

kiedy korzystałem apt install gdm3z terminala trybu odzyskiwania, mogłem znaleźć monit o zalogowanie po uruchomieniu systemu (tylko terminal, nie GUI).

Po tym próbowałem, apt install gnomektóry zainstalował całą masę składników, po zakończeniu pobierania mogłem uzyskać mój system operacyjny w trybie GUI.

Jeśli nie pojawia się monit o zalogowanie się, spróbuj wykonać powyższy krok w trybie odzyskiwania. W przeciwnym razie spróbuj zainstalować Gnome, który aktualizuje gdm3.

Shrinivas Manjithaya
źródło
0

Ostrzeżenie: Niewłaściwe użycie xhosta może przypadkowo dać każdemu hostowi w Internecie pełny dostęp do serwera wyświetlania X.

Zasadniczo nie powinieneś wyłączać kontroli dostępu opartej na hoście na serwerze X, chyba że wiesz, co robisz. Zamiast tego należy zezwalać tylko na rzeczy wymagające dostępu.

Rozwiązanie:

Wykonać: xhost +si:localhost:root

Powyższe rozwiązanie działa również dla użytkowników Wayland wykonujących podwyższoną aplikację XWayland.

Podczas próby uruchomienia aplikacji XWayland z podwyższonymi uprawnieniami może pojawić się następujący błąd:

No protocol specified
Unable to init server: Could not connect: Connection refused
Could not parse arguments: Cannot open display:
loligany
źródło