Non è solo gedit
che sta per fallire ma in realtà tutti i programmi che usano il protocollo X11 per parlare con il server grafico. X11 utilizza il protocollo Xauth per autenticare i client di connessione. Quando esegui il login tramite una sorta di display manager, un cookie di autenticazione MIT-MAGIC-COOKIE-1
viene creato e scritto nel tuo file ~/.Xauthority
. Il file viene letto dai client X11 e i cookie disponibili vengono utilizzati per autenticare le connessioni.
L'elenco dei cookie nel file ~/.Xauthority
può essere visualizzato utilizzando xauth list
:
$ xauth list
localhost:1012 MIT-MAGIC-COOKIE-1 bd988401cbf8xxxxxxxxxxxxxxxxxxxx
some.host.example.com/unix:1012 MIT-MAGIC-COOKIE-1 bd988401cbf8xxxxxxxxxxxxxxxxxxxx
Se si cambia il nome host, la libreria client X11 non sarà più in grado di trovare un cookie corrispondente nel database di autenticazione e il server X11 rifiuterà la connessione non autenticata (se non diversamente configurato).
Che cosa si può fare è di aggiungere un cookie corrispondente mediante l'xauth
:
$ xauth add "$(hostname)/unix:0" MIT-MAGIC-COOKIE-1 bd988401cbf8xxxxxxxxxxxxxxxxxxxx
$(hostname)
espande al risultato del comando hostname
e unix:0
corrisponde alla variabile di ambiente DISPLAY
essere impostato su :0.0
. Se si tratta di un altro numero di display, ad es. :ddd.0
, quindi è necessario modificare di conseguenza la voce host aggiunta a "($hostname)/unix:ddd"
. Si noti inoltre che il valore del cookie aggiunto deve corrispondere al valore di quello esistente.
Se non si dispone di un emulatore di terminale aperto in quel momento e non è possibile aprirne uno a causa di un errore di autenticazione, è possibile passare alla console (modalità testo), effettuare il login e eseguire il comando precedente.
fonte
2013-12-16 13:25:44
Come si fa a cambiare l'hostname? A mano (ad esempio, modifica/etc/hostname) o utilizzando uno strumento? – jml
io cambio il nome dell'host usando questo comando sudo hostname master.192.168.1.44 –
Ok. Puoi verificare se il tuo nuovo nome host ha una voce in '/ etc/hosts ', altrimenti aggiungilo. Ma non sono sicuro che questo sia il vero problema ... – jml