Quando devo usar o pkexec e quando o sudo -i?

21

Eu escrevi uma resposta aconselhando o uso de sudo -i nautilus. Sei que isso gksufoi preterido e fiquei com a impressão de que sudo -idevemos executar aplicativos gráficos como root sem matar gatinhos , mas alguém comentou ' pkexecé o novo gksu'. Meu entendimento é que pkexecnão é o mesmo que usar qualquer forma de sudo:

Quando usar o pkexec vs gksu / gksudo?

e requer configuração, especialmente para uso com aplicativos gráficos:

Como configurar o pkexec?

Quando faço sudo -itudo sempre funciona, então por que devo me dar ao trabalho de configurar pkexec? Eu posso ver que, para escrever um script que inicie algo como root, eu precisaria fazê-lo:

Posso usar o pkexec em um arquivo Python Script ou .desktop?

Mas, caso contrário, o que ganho com o uso pkexec? Quando devo usar esses comandos? Atualmente, qual é a melhor prática para abrir aplicativos gráficos como raiz?

(Eu já li as ... manpáginas, mas não estou me sentindo mais sábio.)

Zanna
fonte
5
Pessoalmente, ignoro a depreciação e sempre instalo gksuem todos os sistemas para executar aplicativos da GUI, gksudose necessário. Nada mais.
Byte Commander
1
Relacionado: Este post antigo sobre a meta teve uma discussão relevante e a resposta mais votada sugerida sudo -ié uma solução segura; Mas não há muita explicação para isso pkexec.
Clearkimura
1
No caso de usar editores de texto da GUI para editar arquivos como raiz, que tal usar sudoedit(AKA sudo -e)?
Edwinksl
1
@edwinksl você quis dizer que poderia definir um editor gráfico como padrão para sudoedit? Idéia interessante
Zanna
1
@ Zanna Sim, veja unix.stackexchange.com/a/356443/6949, por exemplo.
Edwinksl

Respostas:

2

O uso básico é o mesmo - os programas em questão permitem executar outros programas como outro usuário, geralmente root. A diferença, no entanto, entre as sudovariantes e pkexecé que sudofornece ao programa controle total sobre tudo, enquanto pkexecvocê tem um controle muito mais refinado, definindo uma política para cada programa.

Se você confia nos programas que executa, o sudo está perfeitamente bem. Se você realmente deseja bloquear tudo e permitir que os programas façam apenas o que você permite, use o pkexecque acompanha o polkit .

Embora a ideia por trás pkexecseja boa, eu não chegaria a chamá-la da próxima vez gksu, devido ao complexo conjunto necessário.

Referência: a diferença entre sudo e pkexec no Quora .

Brane
fonte