sudo vs gksudo. diferença?

34

Qual é a diferença entre sudo e gksudo ?

    
por oneat 23.10.2010 / 19:22

5 respostas

26

sudo pede a senha na linha de comando e gksudo exibe uma caixa de diálogo para ela.

    
por 23.10.2010 / 19:24
29

gksudo é uma interface baseada em GTK de sudo (BTW, kdesudo é uma interface baseada em Qt), no entanto ela (por padrão) manipula mais variáveis ambientais ( HOME , XAUTHORITY , etc .) do que sudo , tornando os comandos em execução mais seguros.

Tanto quanto eu posso ver, apenas a resposta do @Logics está correta o suficiente (@Ignacio Vazquez-Abrams's não está completo). Aqui está a tentativa de evitar esclarecimentos para @Davros @knitti responder / comentários (Por favor, remova / edite-os quando não for necessário):

  1. Embora ambos os comandos representem sudo , a interface usada NÃO é a única diferença entre os 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, você deve usar o gk / kdesudo sempre que não puder determinar se o comando criará / gravará arquivos em seu diretório home (qual HOME variável de ambiente aponta para o comando sudo em algum sistema e situações). Nem todos os aplicativos GUI gravam em seu diretório pessoal e nem todos os aplicativos CLI não são , portanto, o tipo de comando não é o ponto-chave.
  3. Você ainda pode usar o comando sudo para iniciar aplicativos GUI como root (para exibir a saída do console dos aplicativos como exemplo), mas é necessário manipular HOME (e outras, como XAUTHORITY , DISPLAY , input-method-related-stuff, etc.) variáveis ambientais corretamente para que o aplicativo lançado não falhe, perca funcionalidade ou faça coisas realmente ruins. A seguir, minha recomendação atual para usar sudo
    • %código%
      • (da página de manual sudo -H <rest of the command> seção 8) A opção sudo solicita que a política de segurança defina a variável de ambiente -H ( HOME ) para 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 impedir, pelo menos, que arquivos sejam criados no diretório inicial do chamador HOME
    • %código%
      • Isso deve permitir que o < programa GUI > executado em um terminal TTY e exibido em seu ambiente de trabalho
  4. O comportamento do comando sudo não é idêntico em todos os sistemas e pode ser configurado através do comando sudo -H DISPLAY=<a working X display name, usually :0> <rest of a GUI program command> , confira sudo manpage para obter mais informações.
por 08.03.2014 / 06:21
2

Usar sudo regular para rodar programas gráficos irá, em raras ocasiões, bagunçar permissões em alguns arquivos. Para ser seguro, o 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 causa problemas. Apenas como uma dica; Se você está rodando programas gráficos como root, ao invés de abrir um terminal para cada programa que você quer rodar, digite ALT-F2 (alt e tecla de função 2 ao mesmo tempo), então digite a caixa de diálogo que aparece "gksudo" programa "sem as aspas e programa substituído pelo aplicativo que você deseja executar.

    
por 24.10.2010 / 08:57
2

o sudo é executado como o usuário atual com privilégios elevados. Isso tem o potencial de alterar as permissões de arquivos 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 sudo.

O gksudo (kdesudo sob o KDE) executa os aplicativos como usuário root, portanto, qualquer permissão de arquivo tocada está nos arquivos do root, não nos arquivos dos usuários. A execução desses aplicativos novamente sem o gksudo / kdesudo sempre terá o comportamento esperado.

    
por 07.01.2014 / 22:17
0

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

"Você nunca deve usar sudo normal para iniciar aplicações gráficas como root. Você deve usar o gksudo (kdesudo no Kubuntu) para rodar tais programas. gksudo define HOME = ~ root e copia .Xauthority para um diretório tmp. Isso evita arquivos no seu diretório home, tornando-se propriedade do root. (AFAICT, isso é tudo que é especial sobre o ambiente do processo iniciado com gksudo vs. sudo). "

    
por 17.04.2015 / 07:42

Tags