Existem duas maneiras gerais de executar aplicativos graficamente como raiz (ou, mais geralmente, como outro usuário). Programas como gksu
, gksudo
, e kdesudo
são interfaces gráficas para sudo
. Por outro lado, pkexec
é uma interface gráfica para o PolicyKit .
Ao executar manualmente programas como root (ou como outro usuário não root), quais são as vantagens / desvantagens (se houver) do uso pkexec
, em comparação com o método mais tradicional de usar um sudo
front - end?
Respostas:
O PolicyKit é mais configurável, embora
pkexec
não faça uso dessa configurabilidade. Além disso,pkexec
mostre ao usuário o caminho completo do programa que será iniciado, para que o usuário tenha um pouco mais de certeza do que acontecerá. As chamadas 'políticas' do PolicyKit podem ser usadas para definir mais configurações avançadas. Por exemplo, se a senha deve ser lembrada.Algo que recebi do
pkexec
manual:Mais informações sobre políticas ou definições de ação do
pkexec
manual:fonte
pkexec
para executar aplicativos gráficos (eu nunca tinha feito isso ...). Sua resposta explica por que não existe (ou pelo menos por que um ambiente personalizado precisa ser especificado para fazê-lo).pkexec
, em que sentido os recursos ("permissões") podem ser restringidos? Eu concedo a um programa a capacidade de fazer qualquer coisa quando o executosudo
ou com umsudo
front - end ... em que sentido executar um programa como rootpkexec
também não faz isso?pkexec
facilita, oupkexec
simplesmente executa as coisas como raiz com habilidades irrestritas? Opkexec
trecho manual incluído em sua resposta documenta como escrever regras para determinar quem pode executar um programa como root (ou como outro usuário não root), e não o que o programa pode fazer.pkexec
é mais configurável do quesudo
, e dada a discussão que tivemos aqui nos comentários, isso não parece ser o caso. Você consideraria editar sua resposta para explicarsudo
a configurabilidade e compará-la / contrastar compkexec
a ou editar sua resposta para dizer que a diferença é algo diferente de configurabilidade?Com o sudo, você pode definir políticas por usuário e por programa sobre o tempo para reter ou redefinir o ambiente de chamadas no contexto do sudo. A política env_reset é definida por padrão.
Você não pode executar aplicativos gráficos via pkexec sem configurá-lo explicitamente para isso. Como isso é apenas um resultado da redefinição do ambiente, isso também é obviamente verdadeiro para o sudo. Observe, no entanto, que nem o pkexec nem o sudo podem impedir que um aplicativo malévolo seja executado como root para recuperar todas as informações necessárias dos gerenciadores de exibição ou do arquivo de cookie X11 dos usuários. O último, ambos ou similar, pode até ser feito por aplicativos não raiz, dependendo das circunstâncias.
Sudo não requer listagens explícitas de usuários. É possível listar qualquer grupo de usuários ou mesmo definir uma permissão para todos os usuários em geral. A diretiva target_pw permite que esses usuários se autentiquem com as credenciais do usuário em cujo contexto desejam executar um aplicativo, ou seja, raiz. Além disso, o igualmente tradicional programa su (su / gtksu / kdesu) pode ser usado para fazer o mesmo sem configuração especial.
O sudo também permite que o usuário permaneça autenticado por um tempo especificado. A opção é denominada timeout, configurável globalmente, por usuário ou por aplicativo. A autenticação pode ser mantida por tty ou globalmente por usuário.
Enquanto o pkexec pode não validar os ARGUMENTOS transmitidos ao PROGRAMA, o sudo realmente possui esse recurso. Admitido, porém, você pode facilmente mexer com isso, e isso normalmente não é feito.
Você pode ajustar um pouco a forma como deseja que os programas sejam executados via pkexec: icon, texto a ser exibido, você pode até ter informações sobre localização e tudo mais. Dependendo das circunstâncias, isso pode ser realmente bacana. Triste, porém, que alguém sentisse a necessidade de reinventar a roda para esse recurso. Provavelmente isso seria algo para colocar nos wrappers gráficos do gtksudo / kdesu.
O Policykit é apenas uma estrutura de configuração centralizada. Infelizmente não é bonito. Os arquivos XML de PKs são muito mais complicados do que qualquer coisa que um aplicativo possa fornecer nativamente sem arquivos binários. E ninguém seria tão maluco em usar binário ... oh gconf ... deixa pra lá.
fonte
pkexec
pode executar a GUI sem configurar: askubuntu.com/a/332847/89385Algumas coisas em que
pkexec
é diferentesudo
e suas interfaces:pkexec
sem configurá-lo explicitamente para isso.pkexec
: ícone, texto a ser exibido, lembrando-se da senha ou não, permitindo que seja executada graficamente e um pouco mais.sudo
você seja listado nosudoers
arquivo como administrador .gksudo
bloqueia o teclado, o mouse e o foco ao solicitar uma senha,pkexec
não. Em ambos os casos, as teclas são detectáveis .pkexec
você trabalha em um ambiente um pouco mais higienizado.Tente por exemplo:
fonte
root
compkexec
. É configurável, quais usuários podem usarpkexec
(mesmo se souberem a senha de outro usuário que tenha permissão para fazê-lo)?su
é configurável dessa maneira. Quando tentosu
outroroot
usuário não comoguest
em um sistema Onírico, ele diz que não tenho permissão para fazê-lo. (Em contraste, quando eu tento usarpkexec
comoguest
em Oneiric ou preciso, fico com o que parece ser um erro de declaração, que logo eu possa relatar como um erro, como eu não deveria ter que mesmo que não é permitido.)sudo
e suas interfaces também podem ser aprimoradas conforme descrito no ponto 2. Você pode executar um programa comgksu
ougksudo
exibir texto personalizado , parar de precisar das senhas de alguns usuários editando/etc/sudoers
(comvisudo
) e alterar por quanto tempo elas são lembradas no sentido de alterar como quanto tempo leva para o sudo atingir o tempo limite (embora eu não tenha certeza de como fazer isso no Ubuntu, que está configurado para que as perguntas sobre a necessidade ou não desudo
uma senha e quanto tempo até que ela precise ser novamente) sejam específicas do terminal )pkexec
pode executar a GUI sem configurar: askubuntu.com/a/332847/89385