sudo vs gksudo. diferença?

37

Qual a diferença entre sudoe gksudo?

oneat
fonte
11
Boa pergunta. Estou aprendendo Linux agora (Você pode ver que eu ainda não encontrei o layout do meu teclado) Haha!
R0ca 23/10/10

Respostas:

27

sudosolicita a senha na linha de comando e gksudoabre uma caixa de diálogo.

Ignacio Vazquez-Abrams
fonte
6
O gksu (do) também possui sua própria configuração de quais variáveis ​​de ambiente devem ser passadas para o filho, separadas das próprias do su (do). Por exemplo, se sua configuração do sudoers especificar! Keep_env, a falta de $ DISPLAY poderá impedir a execução de aplicativos gráficos, mas o gksudo deve funcionar. Você pode encontrar alguns detalhes em git.debian.org/?p=users/kov/gksu-polkit.git;a=blob;f=common/… ou live.gnome.org/gksu .
ephemient 23/10/10
@ephemient Então, além do prompt gráfico, é sudo -Eequivalente a gksudo?
Isomorphismes
3
a resposta abaixo parece muito superior superuser.com/a/726249/112542
johny why
4
Quero enfatizar que essa não é a diferença crucial, e essa resposta é bastante enganadora para iniciantes. A principal diferença é explicada aqui: askubuntu.com/a/11766/81034 e a resposta abaixo (à qual @johnywhy está vinculado) vai um passo além disso para adicionar alguma nuance a isso. Por favor, leia a pergunta askubuntu ao invés de confiar nesta resposta enganosa.
sundar - Restabelece Monica
31

gksudoé uma interface baseada em GTK do sudo(BTW, kdesudoé uma interface baseada em Qt), no entanto, (por padrão) alças mais variáveis ambientais ( HOME, XAUTHORITY, etc.) do que sudofazendo assim, executar comandos como root mais seguro.


Tanto quanto posso ver, a resposta da @Logics está correta o suficiente (a da @Ignacio Vazquez-Abrams não está completa). Aqui está o esclarecimento da tentativa de evitar respostas / comentários do @Davros @knitti (por favor, remova / edite-os quando não for necessário):

  1. Embora os dois comandos sejam realmente representativos sudo, a interface do usuário usada NÃO é a única diferença dos dois comandos.
  2. A execução do programa GUI NÃO é a única situação em que você deve usar o gk / kdesudo, em vez disso, deve usar o gk / kdesudo sempre que não puder determinar se o comando criará / gravará arquivos no diretório inicial (para o qual a HOMEvariável de ambiente aponta no diretório sudocomando em alguns sistemas e situações). Nem todos os aplicativos da GUI gravam no diretório inicial e nem todos os aplicativos da CLI , portanto, o tipo de comando não é o ponto principal.
  3. Você ainda pode usar o sudocomando para iniciar aplicativos da GUI como raiz (para visualizar a saída do console dos aplicativos como um exemplo); no entanto, você precisa manipular corretamente HOME(e outras como XAUTHORITY, DISPLAYcoisas relacionadas ao método de entrada, etc.) variáveis ​​ambientais corretamente para que o aplicativo lançado não falhará, perderá funcionalidade ou fará coisas realmente ruins. A seguir, é minha recomendação atual para usarsudo
    • sudo -H <rest of the command>
      • (da sudopágina de manual da seção 8) A -H ( HOME )opção solicita que a política de segurança defina a HOMEvariável de ambiente como o diretório inicial do usuário de destino (raiz por padrão), conforme especificado pelo banco de dados de senhas. Dependendo da política, esse pode ser o comportamento padrão.
      • Isso deve pelo menos impedir que arquivos sejam criados no sudodiretório inicial do chamador
    • sudo -H DISPLAY=<a working X display name, usually :0> <rest of a GUI program command>
      • Isso deve permitir que o <GUI program> seja executado em um terminal TTY e exibido em seu ambiente de desktop
  4. O comportamento do sudocomando não é idêntico em todos os sistemas e pode ser configurado através do visudocomando, consulte a página de sudoers(5)manual para mais informações.
Vdragon
fonte
2
parece uma explicação muito melhor do que a que está recebendo todos os votos. mais completo, mais correto. até o OP respondeu "isso é tudo?" para a resposta que obteve todos os votos.
johny why
2

O uso regular do sudo para executar programas gráficos, em raras ocasiões, atrapalha as permissões de alguns arquivos. Para ser seguro, gksudo (ou kdesudo, conforme apropriado) deve ser usado para executar programas com uma GUI. Eu acho que isso é realmente um bug, embora eu tenha ouvido explicações de que o gksudo entende as variáveis ​​do servidor X e o sudo não leva a problemas. Apenas como uma dica; se você estiver executando programas gráficos como root, em vez de abrir um terminal para cada programa que deseja executar, digite ALT-F2 (alt e tecla de função 2 ao mesmo tempo) e digite na caixa de diálogo que aparece "gksudo programa "sem as aspas e o programa substituídos pelo aplicativo que você deseja executar.

Davros
fonte
2

O sudo é executado como o usuário atual com privilégios elevados. Isso tem o potencial de alterar as permissões de arquivo de determinados arquivos de configuração do usuário (relacionados ao seu ambiente gráfico) ao executar aplicativos gráficos. Você pode encontrar erros ao executar esses aplicativos novamente sem o sudo.

O gksudo (kdesudo no KDE) executa os aplicativos como usuário root, portanto, qualquer permissão de arquivo tocada está nos arquivos raiz, não nos arquivos dos usuários. executar esses aplicativos novamente sem o gksudo / kdesudo sempre terá o comportamento esperado.

Logics
fonte
0

A resposta atual está incorreta. De acordo com o wiki do Ubuntu RootSudo :

"Você nunca deve usar o sudo normal para iniciar aplicativos gráficos como root. Você deve usar o gksudo (kdesudo no Kubuntu) para executar esses programas. Gksudo define HOME = ~ root e copia .Xauthority para um diretório tmp. Isso evita arquivos em sua casa. diretório que pertence à raiz. (AFAICT, isso é tudo o que há de especial no ambiente do processo iniciado com gksudo vs. sudo). "

eugene1832
fonte
2
Existem outras quatro respostas; qual deles está incorreto? A sua resposta não é essencialmente a mesma que a de Davros?
fixer1234
Eu estava me referindo à resposta marcada como correta. Sim, Davros está dizendo a mesma coisa, mas eu adicionei isso porque o dele não continha um link para uma fonte.
precisa saber é o seguinte
11
Uma solução melhor seria propor uma edição para essa resposta. É provável que a melhoria de uma resposta seja aceita (+2 repetições), enquanto a duplicação de uma resposta provavelmente atrairá votos negativos.
fixer1234