soluzioni
In Wayland è spesso difficile eseguire programmi applicativi GUI con autorizzazioni elevate (sudo -H, gksu ...). È una buona idea svolgere tali compiti con gli strumenti da riga di comando.
Ma ci sono soluzioni alternative, se si dispone di uno strumento GUI, che funziona bene per te e richiede autorizzazioni elevate. (Uso due di questi strumenti standard: Synaptic Package Manager synaptice lo strumento di partizionamento Gparted gparted. Uso anche MakeUSB per creare unità di avvio USB mkusb, ma può eseguire le parti che richiedono autorizzazioni elevate senza grafica.)
xhost e sudo -H
Esiste una soluzione alternativa per consentire ai programmi applicativi grafici di proprietà di utenti diversi da quelli che hanno effettuato l'accesso a Wayland,
xhost +si:localuser:root
gksue gksudonon sono in bundle con Ubuntu standard e non funzionano qui, ma funzionano in Xorg.
Invece puoi usare
sudo -H
È una buona idea prevenire programmi applicativi grafici di proprietà di altri utenti dopo l'utente che ha effettuato l'accesso,
xhost -si:localuser:root
gvfs admin backend
In Ubuntu 17.10 (gvfs> = 1.29.4) puoi usare il backend di amministrazione di gvfs. Si noti che è necessario il percorso completo,
gedit admin:///path/to/file
In teoria, il metodo di backend di amministrazione di gvfs (che usa polkit) è migliore e più sicuro (di xhoste xudo -H), indipendentemente dall'interfaccia utente che si utilizza.
Non eseguire l'intera applicazione come root. L'escalation dei privilegi avviene solo quando strettamente necessario. Vedi il seguente link e link da esso,
nautilus-admin
È anche possibile utilizzare nautilus-adminper operazioni sui file con autorizzazioni elevate e utilizzare geditcon autorizzazioni elevate. Questo è descritto nella seguente risposta AskUbuntu,
Accesso temporaneo per root al desktop Wayland tramite la funzione gks
Per favore, evita sudo GUI-program. Può far sì che il sistema sovrascriva i file di configurazione per il proprio ID utente normale con rootla configurazione e impostare la proprietà e le autorizzazioni per adattarsi roote bloccare il proprio ID utente normale. È necessario eseguire le applicazioni della GUI con sudo -Hcui vengono scritti i file di configurazione nella roothome directory di /root. Esempio:
sudo -H gedit myfile.txt
Ma c'è il rischio che tu dimentichi -H. Invece puoi creare una funzione, per esempiogks
gks () { xhost +si:localuser:root; sudo -H "$@"; xhost -si:localuser:root; }
e conservalo nel tuo ~/.bashrcvicino agli alias. Quindi puoi correre
gks gedit myfile.txt
in un modo simile a come hai usato gksudoprima.
analisi
È possibile verificare come sudo, sudo -He gksil lavoro con i seguenti comandi
sudodus@xenial32 ~ $ sudo bash -c "echo ~"
/home/sudodus
sudodus@xenial32 ~ $ sudo -H bash -c "echo ~"
/root
sudodus@xenial32 ~ $ gks () { xhost +si:localuser:root; sudo -H "$@"; xhost -si:localuser:root; }
sudodus@xenial32 ~ $ gks bash -c "echo ~"
localuser:root being added to access control list
/root
localuser:root being removed from access control list
sudodus@xenial32 ~ $
ed ovviamente
gks gedit myfile.txt
secondo l'esempio nella sezione precedente.
Metodo che funziona tramite il menu Alt-F2 e Gnome Shell
Invece di aggiungere una semplice funzione a una riga ~/.bashrc, puoi creare un sistema che funziona anche senza bash. Può essere comodo da usare, ma è più complicato da configurare. Si noti che è necessario installare solo una delle alternative, poiché la funzione di una riga disturberà l'utilizzo di questo sistema più complicato.
Tre file
Lo shellscript gks:
#!/bin/bash
xhost +si:localuser:root
if [ $# -eq 0 ]
then
xterm -T "gks console - enter command and password" \
-fa default -fs 14 -geometry 60x4 \
-e bash -c 'echo "gks lets you run command lines with GUI programs
with temporary elevated permissions in Wayland."; \
read -p "Enter command: " cmd; \
cmdfile=$(mktemp); echo "$cmd" > "$cmdfile"; \
sudo -H bash "$cmdfile"; rm "$cmdfile"'
else
xterm -T "gks console - enter password" -fa default -fs 14 -geometry 60x4 -e sudo -H "$@"
fi
xhost -si:localuser:root;
Il file desktop gks.desktop:
[Desktop Entry]
Version=1.0
Categories=Application;System;
Type=Application
Name=gks
Description=Run program with temporary elevated permissions in Wayland
Comment=Run program with temporary elevated permissions in Wayland
Exec=gks %f
Icon=/usr/share/icons/gks.svg
Terminal=false
StartupNotify=false
GenericName[en_US.UTF-8]=Run program with temporary elevated permissions in Wayland
Il file icona gks.svgè simile al seguente:

Puoi scaricare il file icona o un tarball con tutti e tre i file da questo link,
wiki.ubuntu.com/Wayland/gks
Copia i file [estratti o copiati e incollati] nelle seguenti posizioni,
sudo cp gks /usr/bin
sudo cp gks.desktop /usr/share/applications/
sudo cp gks.svg /usr/share/icons
Esci / accedi o riavvia e dovrebbe esserci un'icona del desktop funzionante. Funzionerà da una finestra terminale come con la semplice soluzione con la funzione.
Alt F2 scatola:

Menu di Gnome Shell:

console gks e gparted:

Script personalizzato e file desktop
Se hai solo poche applicazioni GUI, che richiedono autorizzazioni elevate, puoi creare script personalizzati e file desktop per loro ed evitare di immettere il comando (nome dell'applicazione). Dovresti solo inserire la password, il che non è più difficile rispetto alle versioni precedenti di Ubuntu (dovresti comunque inserire la password).
Esempio con il semplice programma GUI xlogofornito con il pacchetto del programma x11-apps:
Lo shellscript gkslogo(semplificato rispetto a gks),
#!/bin/bash
xhost +si:localuser:root
xterm -T "gks console - enter password" -fa default -fs 14 -geometry 60x4 -e sudo -H xlogo
xhost -si:localuser:root;
Il file desktop gkslogo.desktop:
[Desktop Entry]
Version=1.0
Categories=Application;System;
Type=Application
Name=gkslogo
Description=Run program with temporary elevated permissions in Wayland
Comment=Run program with temporary elevated permissions in Wayland
Exec=gkslogo
Icon=/usr/share/icons/gks.svg
Terminal=false
StartupNotify=false
GenericName[en_US.UTF-8]=Run program with temporary elevated permissions in Wayland
Ero pigro e ho usato lo stesso file icona gks.svg
Copia i file [copiati e incollati] nelle seguenti posizioni,
sudo cp gkslogo /usr/bin
sudo cp gkslogo.desktop /usr/share/applications/
gks [logo] console e xlogo:

gksudonon funzionerà in una sessione Wayland , puoi passare a una sessione Xorg e provare.