A diferença entre sudo e gksu é a mesma que entre sudo -i e sudo -s?

26

A diferença entre sudo cmde é gksu cmdigual à diferença
entre iniciar um shell com sudo -ie sudo -s?

... ou, de outra forma,
é sudo cmd igual sudo -i cmd
e gksu cmdigual a sudo -s cmd?

EDIT: Com base no que li em uma página de documentação do Ubuntu, onde diz:

You should never use normal sudo to start graphical applications as root.  
You should use gksudo (kdesudo on Kubuntu) to run such programs. gksudo sets  
HOME=~root, and copies .Xauthority to a tmp directory. This prevents files  
in your home directory becoming owned by root.  
(AFAICT, this is all that's special about the environment of the started   
 process with gksudo vs. sudo).

O "AFAICT" não me dá total confiança de que não há mais nada.


(..uma ATUALIZAÇÃO tardia : eu testei seu commemnt hoje (2 meses depois) sobre:
"Isso evita que os arquivos do diretório inicial sejam de propriedade do root."
Todos os arquivos criados por sudo / gksu pertencem ao " root " e o grupo era " raiz ".)


Eu li partes do info sudoe observei o -ie -s parece estar fazendo a mesma coisa que a questão do ambiente AFAICT ...
mas eu atingi a sobrecarga ... então fiz minha pergunta aqui.

PS .. Minha pergunta não é sobre sudo vs gksu
.. É mais sobre: gksu é o mesmo que sudo -s
.. e se não, como eles diferem?

Peter.O
fonte

Respostas:

16

gksué basicamente uma interface gráfica para o sudo que permite que o comando gráfico seja executado sem a necessidade de executar um emulador de terminal X e usando o su diretamente. É efetivamente apenas uma capa GTK + para os comandos de superusuário.

Portanto, se você deseja executar um programa baseado em GUI como raiz, você o invocará com gksu cmd, em vez de sudo cmd, o que é usado para chamar programas de console como raiz.


fonte
1
Eu não sei o que você poderia dizer com um graphicalfront - end ... um aplicativo GTK roda muito feliz, independentemente de ser iniciado via sudo ou gksu ... mas executa o programa em um ambiente diferente ... vai adicionar um pouco mais a minha pergunta para apontar por isso que eu fiz a pergunta ...
Peter.O
2
Finalmente entendi o que você quer dizer com a graphical frontend. Eu sempre uso o terminal para rodar sudo / gksu ... mas, no espírito da força bruta, tentando tudo que eu conseguia pensar, tentei correr sudoe gksuvia Alt + F2 ... Bingo! .. sudodesapareceu no vazio, mas gksusubiu para a ocasião e me presenteou com o (legendário) graphical forntend... É a mesma caixa de diálogo como a que aparece para Synaptic Package Manager etc ...
Peter.O
PS .. Acabei de experimentar o gksu em um novo terminal. A caixa de diálogo de senha também aparece lá ... Eu devo ter visto isso antes, mas associada à senha (apenas), e não o fato de que era uma caixa de diálogo da GUI do um comando Terminal ... ("Entendo". disse o cego :) ... Obrigado ...
Peter.O
. continuando o processo, estimulado por sua resposta, parece que gksumuda a pasta XAUTHORITY e sudonão ... Não sei bem o que é isso, mas parece significativo! ... Isso resolveu meu dilema ... (detalhes em minha resposta abaixo)
Peter.O
10

sudo -iredefine o ambiente de login para o usuário de destino ( raiz , neste caso). Principalmente, é que a HOMEvariável de ambiente é alterada, o que significa que o usuário de destino ~/.bashrcestá carregado.

gksué, portanto, como sudo -iisso muda $HOMEpara o usuário root .

Kees Cook
fonte
Obrigado KC .. Está começando a fazer sentido para mim (devagar, devagar) ... mas parece claro que o gksu, criando uma cópia de XAUTHORITY e trabalhando com (?), Coloca o gksu em uma categoria de forma bastante separada qualquer uma das sudovariantes a que me referi ... e percebendo isso tem sido o Aha! momento para mim ... O resultado é: Use o gksu para aplicativos de GUI! .. mas fiquei com mais um dilema não resolvido ... O gksu se aplica apenas aos aplicativos GTK ou é perfeitamente bom usar o gksu ao executar um aplicativo da GUI do KDE ?
precisa saber é o seguinte
5

Isso não é realmente uma resposta, mas pode ser de algum interesse ...
Estou começando a ter uma idéia do que acontece com esses comandos su,
mas ainda não estou lá ... ainda uso gksu. .. Esta é mais uma jornada de compreensão para mim ... e eu luto para entender se gksué válido para konsoleou kate, ou deve eu usar a variante KDE kdesu..

Aqui estão alguns resultados de alguns testes que acabei de tentar.

From user fred's terminal, launch gnome-terminal

su style   resulting            custom   (ls)   new file
command    prompt               prompt   home   ownership
---------  -------------------- -------  -----  ----------
sudo      .root@DT:~#           fred's   fred   root
gksu       root@DT:/home/fred#  root's   fred   root
sudo -i    root@DT:~#           root's   root   root
sudo -s   .root@DT:~#           fred's   fred   root

Esses resultados não estão de acordo com a Página de documentação do Ubuntu , onde diz:

 This prevents files in your home directory becoming owned by root

ATUALIZAÇÃO: As envvariáveis XAUTHORITY para os terminais chamados sudo e gksu são diferentes (conforme mencionado na página de documentação do Ubuntu ).

sudo    #### XAUTHORITY=/var/run/gdm/auth-for-fred-RsngLK/database
sudo -i #### XAUTHORITY=/var/run/gdm/auth-for-fred-RsngLK/database
sudo -s #### XAUTHORITY=/var/run/gdm/auth-for-fred-RsngLK/database
gksu    #### XAUTHORITY=/tmp/libgksu-xR2OGn/.Xauthority   

Isso mostra que gksudefinitivamente não é o mesmo que o sudo -scomando a que me referi na pergunta ... e, portanto, responde à minha pergunta original (de alguma maneira ainda obscura) ... e a resposta de Chris certamente me fez pensar muito nisso! ... Eu preciso de um cafe!!

Peter.O
fonte
3

sudo é para aplicativos de linha de comando, gksu / gksudo para aplicativos gráficos

karthick87
fonte
Obrigado, minha pergunta pode ter sido tão clara quanto minha compreensão original do problema ... Eu estava principalmente tentando descobrir qual era a diferença específica que tornava necessário ter ambos os comandos. Parece que a principal diferença está no maneira que gksufunciona a partir de uma cópia temporária de XAUTHORITY .. Não estou claro os detalhes de por que XAUTHORITY precisa ser tratado especialmente, mas é uma coisa importante que distingue seu comportamento desudo
Peter