Existe uma maneira mais fácil ou mais 'correta' de abrir o gedit como root?

19

Eu tenho o ubuntu 12.04 rodando em uma máquina virtual na caixa virtual. Sua existência é principalmente como um 'brinquedo' para brincar com o Ubuntu, então, por essa razão, eu queria a GUI (é isso que 'Dash' está no ubuntu 12.04? Enfim ...)

Atualmente, estou usando esta máquina para um servidor LAMP. Eu uso o 'gedit' para editar meus arquivos, mas como ainda não defini as permissões corretamente, apenas o abro com sudo no terminal.

Agora, para tentar simplificar esse processo, criei um shell script na área de trabalho com um trabalho muito simples - sudo gedit

Não consigo deixar de pensar que deve haver uma maneira ainda mais óbvia de abrir o gedit como root na GUI do que isso. Então está aí?

Edit: Eu apenas 'aprimorei' meu script substituindo sudo por gksudo. Agora não preciso abrir uma janela de terminal enquanto o gedit estiver aberto. Então, acho que isso é bastante conveniente por enquanto :) Seria bom, por uma questão de conhecimento, saber se isso é algo próximo de como os usuários mais experientes do ubuntu fariam esse tipo de coisa.

MrVimes
fonte
2
Sim, gksudo(ou mais conhecido como gksu) o que a maioria das pessoas usa. Muito material de leitura: askubuntu.com/questions/270006/… askubuntu.com/questions/197772/… askubuntu.com/questions/284306/… askubuntu.com/questions/11760/…
Seth
2
Seth, você gostaria de postar sua resposta como resposta? Isso parece resolvido.
Travis G.
"Agora não preciso abrir uma janela de terminal enquanto o gedit estiver aberto." <- Você já deve saber disso, mas se anexar &a um comando como mostrado aqui , permitirá que a janela do terminal do script shell seja fechada imediatamente quando geditfor iniciada, em vez de esperar que ela seja fechada. Esse truque deve funcionar gksudosem problemas.
IQAndreas

Respostas:

19

Use gksudo gedit.

gksudoé o equivalente sudoa programas gráficos que não são seguros para executar usando sudo.

Taymon
fonte
4
O problema é que gksunão está mais instalado por padrão no Ubuntu 13.04. Eu realmente adoraria ver uma resposta para aqueles em 13.04+. A alternativa sugerida é pkexec, mas simplesmente não funciona = /.
Alaa Ali
1
@ Laaa Mas ainda está no repositório, então um rápido sudo apt-get install gksudeve instalá-lo para você.
IQAndreas
Se você deseja uma explicação do motivo pelo qual não é recomendado o uso sudo: Qual é a diferença entre "gksudo nautilus" e "sudo nautilus"?
IQAndreas
4
@IQAndreas, eu sei que está nos repositórios, mas é apenas inconveniente, se eu estiver respondendo a um novo usuário e quiser que ele edite um arquivo como root, para dizer a ele "primeiro, execute sudo apt-get install gksu". No momento, é um dilema, pelo menos para mim. Não posso dizer a ele para "usar pkexec", porque não funciona, e é muito arriscado para sudo -iisso gedit. Além disso, eu sei a diferença entre gksudoe sudo=), ao que você pode ter me vinculado, é o seguinte: Por que o gksu não está mais instalado por padrão no 13.04? .
Alaa Ali
@Alaa Ponto válido sobre apt-get. Na verdade, meu segundo comentário (aquele com o link) foi direcionado para a resposta que você deu, e não uma continuação da discussão nos comentários (imaginei que o pôster talvez quisesse saber o motivo pelo qual "não é seguro executar usando sudo ").
IQAndreas
7

Eu me encontro rodando geditcomo root com bastante frequência, então adicionei a opção ao menu do botão direito do mouse no Unity (ele usa o mesmo comando que a resposta selecionada gksu gedit).

Você precisará editar um *.desktoparquivo para adicionar a opção de menu, e você tem duas opções:

  • /usr/share/applications/gedit.desktop (requer acesso root para editar) - A opção de menu será adicionada a todos os usuários. Observe que pode ser necessário reeditar esse arquivo, adicionando a opção se ocorrer uma atualização no gedit que substitua as alterações.
  • ~/.local/share/applications/gedit.desktop (Se não conseguir encontrá-lo lá, faça uma duplicata do que foi encontrado /usr/share/applications/e salve-o neste novo local) - A opção de menu estará disponível apenas para o usuário especificado e é considerada "melhor prática". Observe que, se você já o ancorou na barra do Unity, precisará escolher Unlock from Launchero ícone existente do GEdit e adicionar novamente sua versão "personalizada". Essas alterações devem permanecer mesmo se o GEdit receber uma atualização.

Edite o arquivo de texto gedit.desktop, adicionando o seguinte bloco de código (você pode usar os dois blocos existentes como modelo):

[Desktop Action RootWindow]
Name=Open a Root Window
Exec=gksu gedit
OnlyShowIn=Unity;

Em seguida, adicione a nova ação à lista (deve estar na linha 19 do arquivo de texto):

Actions=Window;Document;RootWindow;

Agora, clicar com o botão direito do mouse na janela do editor de texto no Unity exibe esta nova opção útil:

Ubuntu Unity: Gedit aberto como raiz

IQAndreas
fonte
Eu também tenho a mesma configuração para abrir o gerenciador de arquivos como root, que é executado gksu nautilus.
IQAndreas
2

gksudo geditfunciona em 16.04 LTS, mas em 17.10 com Wayland gksudonão funciona.

sudodus
fonte
2

Use admin://na frente do nome do arquivo que exibe o prompt de senha da GUI padrão para o seu respectivo WM / shell.

Por exemplo, se você quiser editar seus repositórios, em vez de digitar sudo gedit /etc/apt/sources.list, digite gedit admin:///etc/apt/sources.list. Funciona basicamente para todos os programas da GUI, não apenas para o Gedit.

Brandon Giesing
fonte
Esta resposta é a maneira correta de fazê-lo agora. A resposta aceita estava correta para as versões anteriores do Ubuntu (antes de 17.04, eu acho).
PJ Singh
0

Você pode abrir o Nautilus como root, gksu nautilusagora qualquer arquivo de texto que você abrir nessa janela será aberto no Gedit como root.

user154126
fonte
@DavidFoerster não completamente, imo :-)
guntbert
0

gksudoaparentemente não está disponível nas versões mais recentes do Ubuntu e gksunão estava funcionando para mim, mas esta resposta foi muito útil no meu caso (Ubuntu 17.04).

Use visudopara adicionar a seguinte linha ao seu arquivo de configuração do sudo:

Defaults env_keep="XAUTHORIZATION XAUTHORITY TZ PS2 PS1 PATH LS_COLORS KRB5CCNAME HOSTNAME HOME DISPLAY COLORS"`
jtpereyda
fonte
0

EDITOR=gedit sudo -e é recomendado.

funicorn
fonte