Eu instalei o Ubuntu 17.10. Agora estou tendo 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. Parece um problema com a criação de um tty para root.
Algum conselho?
gksudo
não funcionará em uma sessão de Wayland , você pode mudar para uma sessão do Xorg e tentar.gksu -dg synaptic
Você nunca deveria estar fazendo isso de qualquer maneira.Respostas:
Observe que esta resposta é específica para versões do Ubuntu usando Wayland, 17.10 sendo a primeira versão a usar Wayland por padrão.
É um recurso, não um bug! É um recurso de design do Wayland que você não pode iniciar aplicativos gráficos como raiz a partir do terminal.
As principais discussões estão obviamente nos sites do Fedora. Veja o bug # 1274451 do Fedora e aplicativos gráficos não podem ser executados como root no wayland (por exemplo, gedit, beesu, gparted, nautilus) no Ask Fedora . Mas há também algumas discussões nos sites do Ubuntu ( Ubuntu Devs incerto sobre o uso de Wayland por padrão em 17.10 - OMG! Ubuntu ).
Relatório de bug do Ubuntu: Não foi possível iniciar aplicativos pkexec'ed na sessão de Wayland
Solução potencial - Se você estiver editando arquivos do sistema com um editor gráfico (como o gedit), use uma ferramenta de linha de comando como
nano
ouvim
ouemacs
.nano
normalmente é mais fácil para novos usuários,vim
é mais poderoso e possui mais recursos, consulte este tutorial do Vim ou similar.De qualquer forma, se você realmente deseja ou precisa executar aplicativos gráficos como root , defina
xhost
primeiro o que força o fallback ao Xserver.Para definir permissões, execute:
Quando terminar, para remover permissões
Você pode adicionar uma opção gráfica / de mesa para fazer isso de acordo com este relatório de erro sináptico
Você pode adicionar este comando xhost ao .bashrc, mas eu recomendaria um par de aliases
Você pode nomear os aliases como desejar.
Para detalhes, consulte:
Volte para o Xorg
Se você preferir o Xorg por qualquer motivo, pode optar por executar no Xorg no login
Veja Como você muda do Wayland de volta para o Xorg no Ubuntu 17.10?
fonte
xhost +local:
Soluções
Em Wayland, geralmente é difícil executar programas de aplicativos da GUI com permissões elevadas (sudo -H, gksu ...). É uma boa ideia executar essas tarefas com ferramentas de linha de comando.
Mas existem soluções alternativas, se você tiver uma ferramenta GUI, que funcione bem para você e precise de permissões elevadas. (Eu uso duas dessas ferramentas padrão: o Synaptic Package Manager
synaptic
e a ferramenta de particionamento Gpartedgparted
. Também uso o MakeUSB para criar unidades de inicialização USBmkusb
, mas ele pode executar as partes que precisam de permissões elevadas sem gráficos.)xhost
esudo -H
Existe uma solução alternativa para permitir programas de aplicativos gráficos pertencentes a outros usuários que não o usuário conectado em Wayland,
gksu
egksudo
não estão incluídos no Ubuntu padrão e não funcionam aqui, mas funcionam no Xorg.Em vez disso, você pode usar
É uma boa idéia evitar programas de aplicativos gráficos pertencentes a outros usuários além do usuário conectado,
back-end do gvfs admin
No Ubuntu 17.10 (gvfs> = 1.29.4), você pode usar o backend administrativo do gvfs. Observe que você precisa do caminho completo,
Em teoria, o método de administração do gvfs admin (que usa o polkit) é melhor e mais seguro (que
xhost
exudo -H
), independentemente da interface do usuário usada.Você não executa o aplicativo inteiro como root. A escalação de privilégios ocorre apenas quando estritamente necessário. Consulte o seguinte link e links dele,
Resposta do sisco311 no tópico dos fóruns do Ubuntu 'Qual prática recomendada para usar o gedit como root?'
Esta é a publicação # 4. Veja também a publicação nº 6 no mesmo tópico.
nautilus-admin
Também é possível usar
nautilus-admin
para operações de arquivo com permissões elevadas e usargedit
com permissões elevadas. Isso é descrito na seguinte resposta do AskUbuntu,Acesso temporário da raiz ao desktop Wayland via função
gks
Por favor evite
sudo GUI-program
. Isso pode fazer com que o sistema substitua os arquivos de configuração do seu ID de usuário normal comroot
a configuração e defina a propriedade e as permissões para caberroot
e bloquear seu ID de usuário regular. Você deve executar aplicativos GUI comsudo -H
, que grava os arquivos de configuração noroot
diretório inicial do/root
. Exemplo:Mas há um risco que você esquece
-H
. Em vez disso, você pode criar uma função, por exemplogks
e guarde-o
~/.bashrc
perto dos pseudônimos. Então você pode correrde uma maneira semelhante à que você usou
gksudo
antes.Testando
Você pode verificar como
sudo
,sudo -H
egks
trabalho com os seguintes comandose claro
de acordo com o exemplo na seção anterior.
Método que funciona através do menu Alt-F2 e Gnome Shell
Em vez de adicionar uma função simples de uma linha
~/.bashrc
, você pode criar um sistema que funcione também sem o bash. Pode ser conveniente usar, mas é mais complicado de configurar. Observe que você deve instalar apenas uma das alternativas, porque a função de uma linha irá atrapalhar o uso deste sistema mais complicado.Três arquivos
O shellscript
gks
:O arquivo da área de trabalho
gks.desktop
:O arquivo de ícone
gks.svg
fica assim:Você pode baixar o arquivo de ícone ou um tarball com todos os três arquivos neste link,
wiki.ubuntu.com/Wayland/gks
Copie os arquivos [extraídos, copiados e colados] para os seguintes locais,
Efetue logout / logon ou reinicialize, e deve haver um ícone na área de trabalho. Funcionará a partir de uma janela de terminal, como na solução simples com a função
Alt F2 caixa:
Menu Gnome Shell:
console gks e gparted:
Script personalizado e arquivo da área de trabalho
Se você tiver apenas alguns aplicativos da GUI, que precisem de permissões elevadas, poderá criar scripts e arquivos da área de trabalho personalizados para eles e evitar a inserção do comando (nome do aplicativo). Você digitaria apenas 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 acompanha o pacote de programasx11-apps
:O shellscript
gkslogo
(simplificado comparado agks
),O arquivo da área de trabalho
gkslogo.desktop
:Eu estava com preguiça e usei o mesmo arquivo de ícone
gks.svg
Copie os arquivos [copiados e colados] para os seguintes locais,
gks [logo] console e xlogo:
fonte
/etc/xdg/autostart/xhost.destop
também sugerido) porque termina restaurando o ambiente original? E podemos substituirsudo -H
com segurançagksu
no alias para usar a inserção em arquivos .desktop etc.?sudo -H
porgksu
na função, pode funcionar melhor para seus aplicativos.gks
abreviação, eu tinha configuradogsu
para usar kits de políticas (o novo futuro para16.04
) paragedit
enautilus
. Quando o 18.04 for lançado, acho que vou apenas nomear oxhost +si...
script do wrappergksu
que nunca instalarei a partir dos pacotes começando18.04
.sudo -E gedit
. Atualmente, existe um erro nogdm
qual ele configura o servidor de compatibilidade Xwayland X11 para não suportar XAUTHORITY, o que é necessário para aplicativos X11 executados como raiz para funcionar. Os aplicativos nativos de wayland executados como raiz funcionam perfeitamente.Melhor verificar se o wayland está realmente funcionando primeiro antes de conceder o direito de root
fonte
Se você estiver usando o Ubuntu 17.04 ou superior, é recomendável usar o administrador do gvfs . Basta adicionar admin: // na frente do caminho de arquivo completo que você deseja abrir em um aplicativo como o Editor de Texto ou Arquivos .
Por exemplo, para alterar as configurações de inicialização, abra
Esse 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.
fonte
gedit admin:
), muito estranhamente com o nautilus (quase inútil) e totalmente falhou com o sináptico . Alguma ideia?admin:///etc/
Para aplicativos que usam su-to-root e pkexec, você pode adicionar este código
/etc/xdg/autostart
(veja meu comentário na barra de ativação ) por seu próprio risco:Outros aplicativos raiz também estão danificados no Wayland (consulte os erros 1713313 e 1713311 ).
Se você não deseja uma solução permanente, use o método @ ravery:
fonte
Se um aplicativo suportar a API Wayland, você poderá executá-lo como root usando o
sudo -EH application
comandoA opção -E diz ao sudo para preservar variáveis de ambiente (assim como WAYLAND_SOCKET e XDG_RUNTIME_DIR) necessárias para desviar aplicativos. É sempre melhor usar esta opção sobre o desagradável xhost hack proposto em outras respostas. O xhost permite que o aplicativo seja executado no invólucro do X, menos seguro do que o uso do Wayland (área de transferência compartilhada, registro de chaves etc.). O truque sudo -EH não funcionará com um aplicativo que não foi reescrito para wayland, como o gparted por exemplo, mas funcionaria com o gedit etc.
fonte
Na verdade, o seguinte código quase funciona:
(por favor, desculpe-me pelo estilo ingênuo de codificação do bash - sou uma espécie de novato nesse assunto). T não funciona estável com Alt-F2, se a última seleção não for um terminal; neste caso, simplesmente não podemos definir o foco na caixa de diálogo de senha. Parece que funciona no menu do Gnome. Enfim <1. Não é uma solução 100%. 2. Parece-me que os arquitetos do Ubuntu pensam que não devemos procurar nenhuma solução alternativa.
fonte
"$@"
(em vez de"$1" "$2" ...
).