Risoluzione problemi comuni: Aprire un’applicazione grafica come utente root

Xorg LogoA volte può essere necessario utilizzare alcune applicazioni grafiche come utente root, un messaggio d’errore molto comune a cui si può andare incontro è

Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified

(mousepad:7701): Gtk-WARNING **: cannot open display:

Eseguendo un applicazione grafica da root vi sara’ capitato numerose volte un errore simile.

Non avete un sistema bacato, effettivamente l’utente root ha appena effettuato un login e probabilmente non ha avviato alcun server X, non puo’ cosi’ utilizzare un display grafico :).

Abbiamo dunque due possibilita’ per ovviare allo spiacevole errore.

(Per neofiti: un comando che comincia con:
$ deve essere eseguito da utente
# deve essere eseguito da root .

[invio] significa che dovete eseguire il comando premendo appunto invio/enter :)

OPZIONE1:
digitare semplicemente:
$ xhost +local: [invio]
Xhost e’ un comando che permette ad un hostname o ad un utente, di effettuare una connessione ad un X server.
In questo caso autorizziamo tutte le connessioni locali.
Siete a cavallo e potete fare ogni cosa con root.
Per sicurezza (ma sembra davvero un’ esagerazione :), una volta terminato:
$ xhost -local: [invio]

xhost +local: deve essere effettuato ogni volta che, avviato gnu/linux, vorrete eseguire una applicazione grafica da root, perche’ per sicurezza le impostazioni di base non consentono connessioni ad uno stesso server X.

OPZIONE2:
servirci di sudo:
Modificando infatti il file /etc/sudoers:
# nano /etc/sudoers

scendendo e andando alla riga contenente:
# Reset environment by default
Defaults env_reset

Questo significa che sudo, una volta eseguito, avra’ soltanto alcune delle variabili principali (quelle della HOME, della PATH ecc.)
poste al valore predefinito.

Per neofiti: le variabili sono come delle “scatole” che contengono un valore in particolare.
La variabile HOSTNAME ad esempio; contiene il nome del vostro computer. Se voleste verificare tutto cio’ bastera’ eseguire:
$ echo $HOSTNAME [invio]
Avrete in risposta il nome dato al vostro computer.
Echo e’ il comando che legge una stringa; il simbolo del dollaro che precede HOSTNAME indica che quella e’ una variabile e HOSTNAME e’ la variabile che ci interessava.

L’unica variabile che non viene resettata e’ quella TERM del terminale, che
effettivamente, quando eseguite il comando sudo, viene copiata da quella del vostro utente.
Bastera’ commentare, ovvero porre un cancelletto #, di fronte “Defaults env_reset”. Quindi avremo:

# Reset environment by default
# Defaults env_reset

per neofiti: su nano, per salvare dovete premere ctrl+o, date invio per confermare il nome del file che nel nostro caso non deve essere alterato e poi ctrl+x per chiudere. Per una lista di comandi di nano vi rimando a:
$ man nano [invio]
Per uscire dal manuale bastera’ digitare ctrl+c (comando che chiude un programma in esecuzione sul terminale)

Ora, per avviare un programma che sfrutta la sessione X da root bastera’:
$ sudo programma

peace and love and linux :)

1 Risposta a “Risoluzione problemi comuni: Aprire un’applicazione grafica come utente root”


  1. 1 ilgufo

    complimenti, ottimo articolo

Lascia una risposta