Por que o gksu / gksudo ou o lançamento de um aplicativo gráfico com o sudo não funcionam com o Wayland?

35

Eu instalei o Ubuntu 17.10. Agora estou com problemas com gksu :

$ gksu -dg synaptic
No ask_pass set, using default!
xauth: /tmp/libgksu-HgUjgQ/.Xauthority
STARTUP_ID: gksu/synaptic/8760-0-alex-XPS-15-9530_TIME4974977
cmd[0]: /usr/bin/sudo
cmd[1]: -H
cmd[2]: -S
cmd[3]: -p
cmd[4]: GNOME_SUDO_PASS
cmd[5]: -u
cmd[6]: root
cmd[7]: --
cmd[8]: synaptic
buffer: -GNOME_SUDO_PASS-
brute force GNOME_SUDO_PASS ended...
Yeah, we're in...
Unable to init server: Could not connect: Connection refused
(synaptic:8767): Gtk-WARNING **: cannot open display: :1
xauth: /tmp/libgksu-HgUjgQ/.Xauthority
xauth_env: (null)
dir: /tmp/libgksu-HgUjgQ

Se eu não usar -g , a caixa de diálogo de senha será desativada. Então parece um problema com a criação de um tty para root.

Algum conselho?

    
por Alex Chapiro 04.10.2017 / 15:58

7 respostas

44

___ answer961978 ___

Soluções

No Wayland, muitas vezes é difícil executar programas de aplicação GUI com permissões elevadas (sudo -H, gksu ...). É uma boa ideia executar essas tarefas com ferramentas de linha de comando.

Mas há soluções alternativas, se você tiver uma ferramenta de GUI, que funcione bem para você e precise de permissões elevadas. (Eu uso duas dessas ferramentas padrão: o Gerenciador de Pacotes Synaptic, nano e a ferramenta de particionamento Gparted, vim . Eu uso o MakeUSB para criar unidades de inicialização USB < strong> emacs , também, mas pode executar as partes que precisam de permissões elevadas sem gráficos.

nano e vim

  1. Existe uma solução alternativa para permitir programas gráficos de aplicativos pertencentes a outros usuários que não o usuário conectado no Wayland,

    xhost si:localuser:root 
    
  2. xhost e xhost +si:localuser:root não são empacotados com o Ubuntu padrão e não funcionam aqui, mas funcionam no Xorg.

    Em vez disso, você pode usar

    xhost -si:localuser:root 
    
  3. É uma boa idéia evitar programas de aplicativos gráficos pertencentes a outros usuários que não o usuário conectado,

    cat <<EOF | sudo tee /etc/xdg/autostart/xhost.desktop
    [Desktop Entry]
    Name=xhost
    Comment=Fix graphical root applications
    Exec="xhost +si:localuser:root"
    Terminal=false
    Type=Application
    EOF
    

gvfs admin backend

No Ubuntu 17.10 (gvfs & gt; = 1.29.4) você pode usar o backend gvfs admin. Observe que você precisa do caminho completo,

alias gsuon='xhost si:localuser:root'

alias gsuoff='xhost -si:localuser:root'

Em teoria, o método backend de administração gvfs (que usa o polkit) é melhor e mais seguro (do que o %code% e o %code% ), independentemente da interface de usuário usada.

Você não executa o aplicativo inteiro como root. A escalação de privilégios acontece somente quando estritamente necessário. Veja o seguinte link e links dele,

nautilus-admin

Também é possível usar %code% para operações de arquivo com permissões elevadas e usar %code% com permissões elevadas. Isso é descrito na seguinte resposta do AskUbuntu,

  • Como posso iniciar o Nautilus como root? >

Acesso temporário para o root na área de trabalho do Wayland através da função %code%

Por favor, evite %code% . Isso pode fazer com que o sistema substitua os arquivos de configuração da sua ID de usuário comum com a configuração de %code% e defina a propriedade e as permissões para ajustar %code% e bloquear sua ID de usuário comum. Você deve executar aplicativos GUI com %code% , que grava os arquivos de configuração no diretório base %code% %code% . Exemplo:

%pre%

Mas há o risco de você esquecer %code% . Em vez disso, você pode criar uma função, por exemplo %code%

%pre%

e armazene-o no seu %code% próximo aos aliases. Então você pode correr

%pre%

de uma maneira semelhante à forma como você usou %code% antes.

Teste

Você pode verificar como %code% , %code% e %code% funcionam com os seguintes comandos

%pre%

e, claro,

%pre%

de acordo com o exemplo da seção anterior.

Método que funciona via menu Alt-F2 e Gnome Shell

Em vez de adicionar uma função simples de uma linha a %code% , você pode criar um sistema que funcione também sem bash. Pode ser conveniente usar, mas é mais complicado de configurar. Por favor note que você deve instalar apenas uma das alternativas, porque a função de uma linha irá atrapalhar usando este sistema mais complicado.

Três arquivos

O shellscript %code% :

%pre%

O arquivo da área de trabalho %code% :

%pre%

O arquivo de ícone %code% se parece com isto:

Você pode baixar o arquivo de ícone ou um arquivo tar com todos os três arquivos deste link,

wiki.ubuntu.com/Wayland/gks

Copie o [extraído ou copiado & amp; colou] arquivos nos seguintes locais,

%pre%

Logout / login ou reinicialização, e deve haver um ícone na área de trabalho. Ele funcionará a partir de uma janela de terminal como a solução simples com a função.

Caixa Alt F2 :

Menu do Gnome Shell:

gks console e gparted:

Script personalizado e arquivo da área de trabalho

Se você tiver apenas alguns aplicativos de GUI, que precisam de permissões elevadas, poderá criar scripts personalizados e arquivos da área de trabalho para eles e evitar inserir o comando (nome do aplicativo). Você só digitaria a senha, o que não é mais difícil em comparação com as versões anteriores do Ubuntu (você deve digitar a senha de qualquer maneira).

Exemplo com o programa GUI simples %code% que vem com o pacote de programas %code% :

O shellscript %code% (simplificado em comparação com %code% ),

%pre%

O arquivo da área de trabalho %code% :

%pre%

Eu era preguiçoso e usei o mesmo arquivo de ícones %code%

Copie o [copiado & amp; colou] arquivos nos seguintes locais,

%pre%

gks [logo] console e xlogo:

    
___ qstntxt ___

Eu instalei o Ubuntu 17.10. Agora estou com problemas com %code% :

%pre%

Se eu não usar %code% , a caixa de diálogo de senha será desativada. Então parece um problema com a criação de um tty para root.

Algum conselho?

    
___ qstnhdr ___ Por que o gksu / gksudo ou o lançamento de um aplicativo gráfico com o sudo não funcionam com o Wayland? ___ answer968199 ___

Se você estiver usando o Ubuntu 17.04 ou superior, é recomendado usar o gvfs admin backend . Basta adicionar admin: // à frente do caminho de arquivo completo que você deseja abrir em um aplicativo como o Editor de texto ou o Arquivos de aplicativos .

Por exemplo, para alterar as configurações de inicialização, abra

%pre%

Este método usa o PolicyKit e ainda funcionará com o padrão Wayland do Ubuntu 17.10, enquanto o sudo e o gksu para aplicativos GUI não.

    
___ tag123root ___ Em um sistema Ubuntu, root é o superusuário, o proprietário da maioria dos arquivos do sistema. Perguntas sobre o usuário root ou acessando privilégios de superusuário podem usar esta tag; os diretórios / ou / root podem estar mais apropriadamente marcados com "sistema de arquivos" ___ tag123wayland ___ Wayland é um protocolo que especifica a comunicação entre um servidor de exibição e seus clientes, bem como uma implementação de referência do protocolo na linguagem C. Foi inicialmente escrito por Kristian Høgsberg como um substituto para o X Window System. ___ answer967542 ___

Para aplicações que usam su-to-root e pkexec você pode querer adicionar este código a %code% (veja meu comentário no launchpad por sua conta e risco:

%pre%

Outras aplicações de raiz estão quebradas no Wayland também (veja bug 1713313 e bug 1713311 ).

Se você não quer uma solução permanente, você pode usar o método @ ravery:

  

apenas digite %code% no terminal antes de iniciar o aplicativo privilegiado

    
___ answer1031691 ___

Se um aplicativo suportar a Wayland API, você poderá executá-lo como root usando o comando %code% .

O switch -E diz ao sudo para preservar as variáveis de ambiente (assim como WAYLAND_SOCKET e XDG_RUNTIME_DIR) necessárias para os aplicativos de rotas terrestres. É sempre melhor usar essa opção do que o desagradável xhost hack proposto em outras respostas. xhost permite que o aplicativo seja executado sob o wrapper X, que é menos seguro que o Wayland (área de transferência compartilhada, keylogging, etc.). O truque sudo-EH não funciona com um aplicativo que não tenha sido reescrito para wayland, como o gparted, por exemplo, mas funcionaria com o gedit, etc.

    
___
por Panther 04.10.2017 / 16:36
17

Soluções

No Wayland, muitas vezes é difícil executar programas de aplicação GUI com permissões elevadas (sudo -H, gksu ...). É uma boa ideia executar essas tarefas com ferramentas de linha de comando.

Mas há soluções alternativas, se você tiver uma ferramenta de GUI, que funcione bem para você e precise de permissões elevadas. (Eu uso duas dessas ferramentas padrão: o Gerenciador de Pacotes Synaptic, synaptic e a ferramenta de particionamento Gparted, gparted . Eu uso o MakeUSB para criar unidades de inicialização USB < strong> mkusb , também, mas pode executar as partes que precisam de permissões elevadas sem gráficos.

xhost e sudo -H

  1. Existe uma solução alternativa para permitir programas gráficos de aplicativos pertencentes a outros usuários que não o usuário conectado no Wayland,

    xhost +si:localuser:root
    
  2. gksu e gksudo não são empacotados com o Ubuntu padrão e não funcionam aqui, mas funcionam no Xorg.

    Em vez disso, você pode usar

    sudo -H
    
  3. É uma boa idéia evitar programas de aplicativos gráficos pertencentes a outros usuários que não o usuário conectado,

    xhost -si:localuser:root
    

gvfs admin backend

No Ubuntu 17.10 (gvfs & gt; = 1.29.4) você pode usar o backend gvfs admin. Observe que você precisa do caminho completo,

gedit admin:///path/to/file

Em teoria, o método backend de administração gvfs (que usa o polkit) é melhor e mais seguro (do que o xhost e o xudo -H ), independentemente da interface de usuário usada.

Você não executa o aplicativo inteiro como root. A escalação de privilégios acontece somente quando estritamente necessário. Veja o seguinte link e links dele,

nautilus-admin

Também é possível usar nautilus-admin para operações de arquivo com permissões elevadas e usar gedit com permissões elevadas. Isso é descrito na seguinte resposta do AskUbuntu,

  • Como posso iniciar o Nautilus como root? >

Acesso temporário para o root na área de trabalho do Wayland através da função gks

Por favor, evite sudo GUI-program . Isso pode fazer com que o sistema substitua os arquivos de configuração da sua ID de usuário comum com a configuração de root e defina a propriedade e as permissões para ajustar root e bloquear sua ID de usuário comum. Você deve executar aplicativos GUI com sudo -H , que grava os arquivos de configuração no diretório base root /root . Exemplo:

sudo -H gedit myfile.txt

Mas há o risco de você esquecer -H . Em vez disso, você pode criar uma função, por exemplo gks

gks () { xhost +si:localuser:root; sudo -H "$@"; xhost -si:localuser:root; }

e armazene-o no seu ~/.bashrc próximo aos aliases. Então você pode correr

gks gedit myfile.txt

de uma maneira semelhante à forma como você usou gksudo antes.

Teste

Você pode verificar como sudo , sudo -H e gks funcionam com os seguintes comandos

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 ~ $ 

e, claro,

gks gedit myfile.txt

de acordo com o exemplo da seção anterior.

Método que funciona via menu Alt-F2 e Gnome Shell

Em vez de adicionar uma função simples de uma linha a ~/.bashrc , você pode criar um sistema que funcione também sem bash. Pode ser conveniente usar, mas é mais complicado de configurar. Por favor note que você deve instalar apenas uma das alternativas, porque a função de uma linha irá atrapalhar usando este sistema mais complicado.

Três arquivos

O 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;

O arquivo da área de trabalho 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

O arquivo de ícone gks.svg se parece com isto:

Você pode baixar o arquivo de ícone ou um arquivo tar com todos os três arquivos deste link,

wiki.ubuntu.com/Wayland/gks

Copie o [extraído ou copiado & amp; colou] arquivos nos seguintes locais,

sudo cp gks /usr/bin
sudo cp gks.desktop /usr/share/applications/
sudo cp gks.svg /usr/share/icons

Logout / login ou reinicialização, e deve haver um ícone na área de trabalho. Ele funcionará a partir de uma janela de terminal como a solução simples com a função.

Caixa Alt F2 :

Menu do Gnome Shell:

gks console e gparted:

Script personalizado e arquivo da área de trabalho

Se você tiver apenas alguns aplicativos de GUI, que precisam de permissões elevadas, poderá criar scripts personalizados e arquivos da área de trabalho para eles e evitar inserir o comando (nome do aplicativo). Você só digitaria a senha, o que não é mais difícil em comparação com as versões anteriores do Ubuntu (você deve digitar a senha de qualquer maneira).

Exemplo com o programa GUI simples xlogo que vem com o pacote de programas x11-apps :

O shellscript gkslogo (simplificado em comparação com 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;

O arquivo da área de trabalho 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

Eu era preguiçoso e usei o mesmo arquivo de ícones gks.svg

Copie o [copiado & amp; colou] arquivos nos seguintes locais,

sudo cp gkslogo /usr/bin
sudo cp gkslogo.desktop /usr/share/applications/

gks [logo] console e xlogo:

    
por sudodus 04.10.2017 / 16:51
6
___ answer961978 ___

Soluções

No Wayland, muitas vezes é difícil executar programas de aplicação GUI com permissões elevadas (sudo -H, gksu ...). É uma boa ideia executar essas tarefas com ferramentas de linha de comando.

Mas há soluções alternativas, se você tiver uma ferramenta de GUI, que funcione bem para você e precise de permissões elevadas. (Eu uso duas dessas ferramentas padrão: o Gerenciador de Pacotes Synaptic, %code% e a ferramenta de particionamento Gparted, %code% . Eu uso o MakeUSB para criar unidades de inicialização USB < strong> %code% , também, mas pode executar as partes que precisam de permissões elevadas sem gráficos.

%code% e %code%

  1. Existe uma solução alternativa para permitir programas gráficos de aplicativos pertencentes a outros usuários que não o usuário conectado no Wayland,

    if [ $XDG_SESSION_TYPE = "wayland" ]; then
        xhost +si:localuser:root
    fi
    
  2. %code% e %code% não são empacotados com o Ubuntu padrão e não funcionam aqui, mas funcionam no Xorg.

    Em vez disso, você pode usar

    %pre%
  3. É uma boa idéia evitar programas de aplicativos gráficos pertencentes a outros usuários que não o usuário conectado,

    %pre%

gvfs admin backend

No Ubuntu 17.10 (gvfs & gt; = 1.29.4) você pode usar o backend gvfs admin. Observe que você precisa do caminho completo,

%pre%

Em teoria, o método backend de administração gvfs (que usa o polkit) é melhor e mais seguro (do que o %code% e o %code% ), independentemente da interface de usuário usada.

Você não executa o aplicativo inteiro como root. A escalação de privilégios acontece somente quando estritamente necessário. Veja o seguinte link e links dele,

nautilus-admin

Também é possível usar %code% para operações de arquivo com permissões elevadas e usar %code% com permissões elevadas. Isso é descrito na seguinte resposta do AskUbuntu,

  • Como posso iniciar o Nautilus como root? >

Acesso temporário para o root na área de trabalho do Wayland através da função %code%

Por favor, evite %code% . Isso pode fazer com que o sistema substitua os arquivos de configuração da sua ID de usuário comum com a configuração de %code% e defina a propriedade e as permissões para ajustar %code% e bloquear sua ID de usuário comum. Você deve executar aplicativos GUI com %code% , que grava os arquivos de configuração no diretório base %code% %code% . Exemplo:

%pre%

Mas há o risco de você esquecer %code% . Em vez disso, você pode criar uma função, por exemplo %code%

%pre%

e armazene-o no seu %code% próximo aos aliases. Então você pode correr

%pre%

de uma maneira semelhante à forma como você usou %code% antes.

Teste

Você pode verificar como %code% , %code% e %code% funcionam com os seguintes comandos

%pre%

e, claro,

%pre%

de acordo com o exemplo da seção anterior.

Método que funciona via menu Alt-F2 e Gnome Shell

Em vez de adicionar uma função simples de uma linha a %code% , você pode criar um sistema que funcione também sem bash. Pode ser conveniente usar, mas é mais complicado de configurar. Por favor note que você deve instalar apenas uma das alternativas, porque a função de uma linha irá atrapalhar usando este sistema mais complicado.

Três arquivos

O shellscript %code% :

%pre%

O arquivo da área de trabalho %code% :

%pre%

O arquivo de ícone %code% se parece com isto:

Você pode baixar o arquivo de ícone ou um arquivo tar com todos os três arquivos deste link,

wiki.ubuntu.com/Wayland/gks

Copie o [extraído ou copiado & amp; colou] arquivos nos seguintes locais,

%pre%

Logout / login ou reinicialização, e deve haver um ícone na área de trabalho. Ele funcionará a partir de uma janela de terminal como a solução simples com a função.

Caixa Alt F2 :

Menu do Gnome Shell:

gks console e gparted:

Script personalizado e arquivo da área de trabalho

Se você tiver apenas alguns aplicativos de GUI, que precisam de permissões elevadas, poderá criar scripts personalizados e arquivos da área de trabalho para eles e evitar inserir o comando (nome do aplicativo). Você só digitaria a senha, o que não é mais difícil em comparação com as versões anteriores do Ubuntu (você deve digitar a senha de qualquer maneira).

Exemplo com o programa GUI simples %code% que vem com o pacote de programas %code% :

O shellscript %code% (simplificado em comparação com %code% ),

%pre%

O arquivo da área de trabalho %code% :

%pre%

Eu era preguiçoso e usei o mesmo arquivo de ícones %code%

Copie o [copiado & amp; colou] arquivos nos seguintes locais,

%pre%

gks [logo] console e xlogo:

    
___ qstntxt ___

Eu instalei o Ubuntu 17.10. Agora estou com problemas com %code% :

%pre%

Se eu não usar %code% , a caixa de diálogo de senha será desativada. Então parece um problema com a criação de um tty para root.

Algum conselho?

    
___ qstnhdr ___ Por que o gksu / gksudo ou o lançamento de um aplicativo gráfico com o sudo não funcionam com o Wayland? ___ answer968199 ___

Se você estiver usando o Ubuntu 17.04 ou superior, é recomendado usar o gvfs admin backend . Basta adicionar admin: // à frente do caminho de arquivo completo que você deseja abrir em um aplicativo como o Editor de texto ou o Arquivos de aplicativos .

Por exemplo, para alterar as configurações de inicialização, abra

%pre%

Este método usa o PolicyKit e ainda funcionará com o padrão Wayland do Ubuntu 17.10, enquanto o sudo e o gksu para aplicativos GUI não.

    
___ tag123root ___ Em um sistema Ubuntu, root é o superusuário, o proprietário da maioria dos arquivos do sistema. Perguntas sobre o usuário root ou acessando privilégios de superusuário podem usar esta tag; os diretórios / ou / root podem estar mais apropriadamente marcados com "sistema de arquivos" ___ tag123wayland ___ Wayland é um protocolo que especifica a comunicação entre um servidor de exibição e seus clientes, bem como uma implementação de referência do protocolo na linguagem C. Foi inicialmente escrito por Kristian Høgsberg como um substituto para o X Window System. ___ answer967542 ___

Para aplicações que usam su-to-root e pkexec você pode querer adicionar este código a %code% (veja meu comentário no launchpad por sua conta e risco:

%pre%

Outras aplicações de raiz estão quebradas no Wayland também (veja bug 1713313 e bug 1713311 ).

Se você não quer uma solução permanente, você pode usar o método @ ravery:

  

apenas digite %code% no terminal antes de iniciar o aplicativo privilegiado

    
___ answer1031691 ___

Se um aplicativo suportar a Wayland API, você poderá executá-lo como root usando o comando %code% .

O switch -E diz ao sudo para preservar as variáveis de ambiente (assim como WAYLAND_SOCKET e XDG_RUNTIME_DIR) necessárias para os aplicativos de rotas terrestres. É sempre melhor usar essa opção do que o desagradável xhost hack proposto em outras respostas. xhost permite que o aplicativo seja executado sob o wrapper X, que é menos seguro que o Wayland (área de transferência compartilhada, keylogging, etc.). O truque sudo-EH não funciona com um aplicativo que não tenha sido reescrito para wayland, como o gparted, por exemplo, mas funcionaria com o gedit, etc.

    
___
por eli chan 07.10.2017 / 12:52
5

Se você estiver usando o Ubuntu 17.04 ou superior, é recomendado usar o gvfs admin backend . Basta adicionar admin: // à frente do caminho de arquivo completo que você deseja abrir em um aplicativo como o Editor de texto ou o Arquivos de aplicativos .

Por exemplo, para alterar as configurações de inicialização, abra

admin:///etc/default/grub

Este método usa o PolicyKit e ainda funcionará com o padrão Wayland do Ubuntu 17.10, enquanto o sudo e o gksu para aplicativos GUI não.

    
por Jeremy Bicha 23.10.2017 / 20:45
3

Para aplicações que usam su-to-root e pkexec você pode querer adicionar este código a /etc/xdg/autostart (veja meu comentário no launchpad por sua conta e risco:

cat <<EOF | sudo tee /etc/xdg/autostart/xhost.desktop
[Desktop Entry]
Name=xhost
Comment=Fix graphical root applications
Exec="xhost +si:localuser:root"
Terminal=false
Type=Application
EOF

Outras aplicações de raiz estão quebradas no Wayland também (veja bug 1713313 e bug 1713311 ).

Se você não quer uma solução permanente, você pode usar o método @ ravery:

  

apenas digite xhost +si:localuser:root no terminal antes de iniciar o aplicativo privilegiado

    
por N0rbert 22.10.2017 / 12:45
0
___ answer961978 ___

Soluções

No Wayland, muitas vezes é difícil executar programas de aplicação GUI com permissões elevadas (sudo -H, gksu ...). É uma boa ideia executar essas tarefas com ferramentas de linha de comando.

Mas há soluções alternativas, se você tiver uma ferramenta de GUI, que funcione bem para você e precise de permissões elevadas. (Eu uso duas dessas ferramentas padrão: o Gerenciador de Pacotes Synaptic, %code% e a ferramenta de particionamento Gparted, %code% . Eu uso o MakeUSB para criar unidades de inicialização USB < strong> %code% , também, mas pode executar as partes que precisam de permissões elevadas sem gráficos.

%code% e %code%

  1. Existe uma solução alternativa para permitir programas gráficos de aplicativos pertencentes a outros usuários que não o usuário conectado no Wayland,

    #! /bin/bash
    set -e 
    if [ -z "" ] ; then
        echo "Application is not specified" ;  exit
    fi 
    if [ $XDG_SESSION_TYPE = "wayland" ]; then
        if [[ -t 1 ]]; then
           xhost +si:localuser:root
           sudo -u root "$@"
           xhost  -  
           exit 0
        fi 
    fi
    gksu "$@"
    
  2. %code% e %code% não são empacotados com o Ubuntu padrão e não funcionam aqui, mas funcionam no Xorg.

    Em vez disso, você pode usar

    %pre%
  3. É uma boa idéia evitar programas de aplicativos gráficos pertencentes a outros usuários que não o usuário conectado,

    %pre%

gvfs admin backend

No Ubuntu 17.10 (gvfs & gt; = 1.29.4) você pode usar o backend gvfs admin. Observe que você precisa do caminho completo,

%pre%

Em teoria, o método backend de administração gvfs (que usa o polkit) é melhor e mais seguro (do que o %code% e o %code% ), independentemente da interface de usuário usada.

Você não executa o aplicativo inteiro como root. A escalação de privilégios acontece somente quando estritamente necessário. Veja o seguinte link e links dele,

nautilus-admin

Também é possível usar %code% para operações de arquivo com permissões elevadas e usar %code% com permissões elevadas. Isso é descrito na seguinte resposta do AskUbuntu,

  • Como posso iniciar o Nautilus como root? >

Acesso temporário para o root na área de trabalho do Wayland através da função %code%

Por favor, evite %code% . Isso pode fazer com que o sistema substitua os arquivos de configuração da sua ID de usuário comum com a configuração de %code% e defina a propriedade e as permissões para ajustar %code% e bloquear sua ID de usuário comum. Você deve executar aplicativos GUI com %code% , que grava os arquivos de configuração no diretório base %code% %code% . Exemplo:

%pre%

Mas há o risco de você esquecer %code% . Em vez disso, você pode criar uma função, por exemplo %code%

%pre%

e armazene-o no seu %code% próximo aos aliases. Então você pode correr

%pre%

de uma maneira semelhante à forma como você usou %code% antes.

Teste

Você pode verificar como %code% , %code% e %code% funcionam com os seguintes comandos

%pre%

e, claro,

%pre%

de acordo com o exemplo da seção anterior.

Método que funciona via menu Alt-F2 e Gnome Shell

Em vez de adicionar uma função simples de uma linha a %code% , você pode criar um sistema que funcione também sem bash. Pode ser conveniente usar, mas é mais complicado de configurar. Por favor note que você deve instalar apenas uma das alternativas, porque a função de uma linha irá atrapalhar usando este sistema mais complicado.

Três arquivos

O shellscript %code% :

%pre%

O arquivo da área de trabalho %code% :

%pre%

O arquivo de ícone %code% se parece com isto:

Você pode baixar o arquivo de ícone ou um arquivo tar com todos os três arquivos deste link,

wiki.ubuntu.com/Wayland/gks

Copie o [extraído ou copiado & amp; colou] arquivos nos seguintes locais,

%pre%

Logout / login ou reinicialização, e deve haver um ícone na área de trabalho. Ele funcionará a partir de uma janela de terminal como a solução simples com a função.

Caixa Alt F2 :

Menu do Gnome Shell:

gks console e gparted:

Script personalizado e arquivo da área de trabalho

Se você tiver apenas alguns aplicativos de GUI, que precisam de permissões elevadas, poderá criar scripts personalizados e arquivos da área de trabalho para eles e evitar inserir o comando (nome do aplicativo). Você só digitaria a senha, o que não é mais difícil em comparação com as versões anteriores do Ubuntu (você deve digitar a senha de qualquer maneira).

Exemplo com o programa GUI simples %code% que vem com o pacote de programas %code% :

O shellscript %code% (simplificado em comparação com %code% ),

%pre%

O arquivo da área de trabalho %code% :

%pre%

Eu era preguiçoso e usei o mesmo arquivo de ícones %code%

Copie o [copiado & amp; colou] arquivos nos seguintes locais,

%pre%

gks [logo] console e xlogo:

    
___ qstntxt ___

Eu instalei o Ubuntu 17.10. Agora estou com problemas com %code% :

%pre%

Se eu não usar %code% , a caixa de diálogo de senha será desativada. Então parece um problema com a criação de um tty para root.

Algum conselho?

    
___ qstnhdr ___ Por que o gksu / gksudo ou o lançamento de um aplicativo gráfico com o sudo não funcionam com o Wayland? ___ answer968199 ___

Se você estiver usando o Ubuntu 17.04 ou superior, é recomendado usar o gvfs admin backend . Basta adicionar admin: // à frente do caminho de arquivo completo que você deseja abrir em um aplicativo como o Editor de texto ou o Arquivos de aplicativos .

Por exemplo, para alterar as configurações de inicialização, abra

%pre%

Este método usa o PolicyKit e ainda funcionará com o padrão Wayland do Ubuntu 17.10, enquanto o sudo e o gksu para aplicativos GUI não.

    
___ tag123root ___ Em um sistema Ubuntu, root é o superusuário, o proprietário da maioria dos arquivos do sistema. Perguntas sobre o usuário root ou acessando privilégios de superusuário podem usar esta tag; os diretórios / ou / root podem estar mais apropriadamente marcados com "sistema de arquivos" ___ tag123wayland ___ Wayland é um protocolo que especifica a comunicação entre um servidor de exibição e seus clientes, bem como uma implementação de referência do protocolo na linguagem C. Foi inicialmente escrito por Kristian Høgsberg como um substituto para o X Window System. ___ answer967542 ___

Para aplicações que usam su-to-root e pkexec você pode querer adicionar este código a %code% (veja meu comentário no launchpad por sua conta e risco:

%pre%

Outras aplicações de raiz estão quebradas no Wayland também (veja bug 1713313 e bug 1713311 ).

Se você não quer uma solução permanente, você pode usar o método @ ravery:

  

apenas digite %code% no terminal antes de iniciar o aplicativo privilegiado

    
___ answer1031691 ___

Se um aplicativo suportar a Wayland API, você poderá executá-lo como root usando o comando %code% .

O switch -E diz ao sudo para preservar as variáveis de ambiente (assim como WAYLAND_SOCKET e XDG_RUNTIME_DIR) necessárias para os aplicativos de rotas terrestres. É sempre melhor usar essa opção do que o desagradável xhost hack proposto em outras respostas. xhost permite que o aplicativo seja executado sob o wrapper X, que é menos seguro que o Wayland (área de transferência compartilhada, keylogging, etc.). O truque sudo-EH não funciona com um aplicativo que não tenha sido reescrito para wayland, como o gparted, por exemplo, mas funcionaria com o gedit, etc.

    
___
por Alex Chapiro 26.10.2017 / 04:10
0

Se um aplicativo suportar a Wayland API, você poderá executá-lo como root usando o comando sudo -EH application .

O switch -E diz ao sudo para preservar as variáveis de ambiente (assim como WAYLAND_SOCKET e XDG_RUNTIME_DIR) necessárias para os aplicativos de rotas terrestres. É sempre melhor usar essa opção do que o desagradável xhost hack proposto em outras respostas. xhost permite que o aplicativo seja executado sob o wrapper X, que é menos seguro que o Wayland (área de transferência compartilhada, keylogging, etc.). O truque sudo-EH não funciona com um aplicativo que não tenha sido reescrito para wayland, como o gparted, por exemplo, mas funcionaria com o gedit, etc.

    
por ZAB 03.05.2018 / 21:08