gparted: problemi d'avvio.

1 risposta [Ultimo contenuto]
Ritratto di John_Tempesta
John_Tempesta
(Geek)
Offline
Geek
Iscritto: 17/11/2007
Messaggi: 82

  • Openbox
  • lightdm
  • Debian Buster

Non riesco ad avviare Gparted dopo il login da utente normale:

$ su -
# gparted
Unit tmp.mount does not exist, proceeding anyway.
 
(gpartedbin:6457): Gtk-WARNING **: 14:38:17.173: cannot open display: 

però, se vado in tty1 con ctrl+alt+f1 e mi loggo direttamente da root, riesco ad usarlo regolarmente.
Cosa mi sfugge?

Grazie, ragazzi.

Ritratto di John_Tempesta
John_Tempesta
(Geek)
Offline
Geek
Iscritto: 17/11/2007
Messaggi: 82

Ho risolto leggendo questo capitolo: Variabili d'ambiente e programmi grafici

Citazione:

Variabili d'ambiente e programmi grafici

Con una nuova shell di login, sono ereditate soltanto le variabili d'ambiente $TERM, $COLORTERM, $DISPLAY e $XAUTHORITY. Queste ultime due permettono a root di accedere al server grafico (via Xorg) associato all'utente che ha invocato su, se presente e attivo.

Si noti che a partire da Debian 10 (Buster) soltanto $TERM viene ereditata. Pertanto per lanciare un'applicazione grafica (via Xorg) da terminale come root, è necessario specificare esplicitamente $DISPLAY e $XAUTHORITY ai loro valori precedenti:

$ echo $DISPLAY
:0
$ echo $XAUTHORITY
/home/utente/.Xauthority

# su -
# DISPLAY=:0 XAUTHORITY=/home/utente/.Xauthority synaptic
# exit
$

È invece rimasto invariato il comportamento di su senza shell di login, per quanto sia sconsigliabile, visto che sarebbero ereditate anche tutte le variabili d'ambiente (si noti infatti che $PATH non è cambiata, e pertanto non conterrà le directory /sbin e /usr/sbin, rendendo necessario specificare il percorso completo di un eseguibile che si trovi in tali directory):

$ su -c /usr/sbin/synaptic
$

$ su
# /usr/sbin/synaptic
# exit
$

Alcune variabili d'ambiente non sono mai ereditate in ogni caso ($HOME, $SHELL, $USER, $LOGNAME, $PATH e $IFS) ed altre (come $LD_PRELOAD e $LD_DEBUG_OUTPUT) non hanno effetto per ragioni di sicurezza.

Prima di Debian 10 (Buster) su modificava la variable $PATH anche quando non era avviata una shell di login, per quanto il suo uso (senza una delle opzioni - / -l / --login) fosse comunque sconsigliato nella maggior parte dei casi.

Quindi, a me è bastato specificare il percorso completo di gparted:

$ su
# /usr/sbin/synaptic

Spero possa esser d'aiuto ad altri.