Lendo estas perguntas e respostas:
me trouxe outro que criará problemas para novos usuários desse comando:
- Como configurar
pkexec
para facilitar o uso?
Por exemplo, ao fazer o seguinte:
(Abrindo um arquivo no terminal)
pkexec nano /etc/mysql/my.cnf
(Abrindo um arquivo na GUI)
pkexec gedit /etc/mysql/my.cnf
O último obtém o seguinte erro:
pkexec must be setuid root
Agora, isso me trouxe as seguintes perguntas:
Como configurar
pkexec
para evitar isso? Semelhante a comosudo
/gksu
se comporta ao fazer a mesma coisa (eles apenas pedem a senha).Se aplicável, como dizer a ela para não solicitar uma senha após a primeira vez que a aplicar a um comando (ou incluir o primeiro comando, se configurável)?
Onde salvar o arquivo de configuração, se ainda não existir?
Existe um aplicativo GUI para configurar o
pkexec
uso (Kit de Políticas)?
command-line
sudo
pkexec
Luis Alvarado
fonte
fonte
Respostas:
Como configurar
pkexec
para evitar erros ao executar aplicativos GUI?Eu encontrei duas maneiras possíveis:
Como você pode ver, usando o seguinte:
não receberá nenhum erro. E isso é normal, porque
man pkexec
é muito claro neste assunto:Como resultado, você pode criar um alias ( permanente ) (esta é a maneira mais simples):
Ou, (novamente) como
man pkexec
diz:você pode criar um novo arquivo de política
/usr/share/polkit-1/actions
nomeadocom.ubuntu.pkexec.gedit.policy
com o seguinte código xml dentro do qual o mais importante é definirorg.freedesktop.policykit.exec.allow_gui
um valor não vazio:Como dizer a ele para não solicitar uma senha após a primeira vez que a aplicar a um comando?
Para estes três tags Ambiente:
allow_any
,allow_inactive
eallow_active
a partir do arquivo de política, as seguintes opções estão disponíveis:sudo
a autorização dura alguns minutos.sudo
, a autorização dura alguns minutos.Fonte: Polkit - Estrutura - Ações
Portanto, se você usar a opção auth_admin_keep (ou, conforme aplicável, auth_self_keep ),
pkexec
não solicitará uma senha novamente por algum tempo (por padrão, esse tempo é definido para 5 minutos, conforme eu verifiquei). A desvantagem aqui é que isso só é aplicável a um comando / aplicativo igual - e válido para todos os usuários (a menos que seja anulado na configuração posterior).Onde salvar o arquivo de configuração, se ainda não existir?
Arquivos de configuração ou definições de polkit podem ser divididos em dois tipos:
As ações são definidas nos arquivos .policy XML localizados em
/usr/share/polkit-1/actions
. Cada ação possui um conjunto de permissões padrão anexadas (por exemplo, você precisa se identificar como administrador para usar a ação GParted). Os padrões podem ser anulados, mas editar os arquivos de ações NÃO é a maneira correta. O nome desse arquivo de políticas deve ter este formato:As regras de autorização são definidas nos arquivos .rules do JavaScript. Eles são encontrados em dois locais: pacotes de terceiros podem ser usados
/usr/share/polkit-1/rules.d
(embora poucos, se houver) e/etc/polkit-1/rules.d
são para configuração local. Os arquivos .rules designam um subconjunto de usuários, referem-se a uma (ou mais) das ações especificadas nos arquivos de ações e determinam com quais restrições essas ações podem ser executadas por esse / esses usuários. Como exemplo, um arquivo de regras pode anular o requisito padrão para todos os usuários se autenticarem como administrador ao usar o GParted, determinando que um usuário específico não precisa. Ou não tem permissão para usar o GParted.Fonte: Polkit - Estrutura
Existe um aplicativo GUI para configurar o
pkexec
uso?Pelo que sei, até agora (18.01.2014) não existe algo parecido com isto. Se no futuro eu encontrar algo, não esquecerei de atualizar também esta resposta.
fonte
doublecmd
com o ROOT PRIVELEGES, pois precisava exportar ambientes comDISPLAY & XAUTHORITY
!! Apenas pequenas perguntas: existe alguma diferença na política de redação ou na execução de um programa com comandopkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY doublecmd
o tempo todo?pkexec
tornará tão inseguro comogksudo
se fosse executado por esse apelido? pode ser, em vez de um apelido, poderia ser um script com privilégios de root, poderia ser mais seguro?auth_admin_keep
parece não funcionar. Se eu iniciar o sináptico a partir da GUI (que é equivalente apkexec synaptic
), ele solicitará a senha para cada vez. Alguma idéia do porquê?Além da resposta de Radu: eu não usaria o psexec, mas gksudo .
Por quê? Você não precisa reescrever seu script.
Eu uso a seguinte configuração:
cd /usr/local/bin
sudo gedit gksudo
(crie um novo arquivo chamado "gksudo"escreva o seguinte conteúdo:
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY $@
(não esqueça o
$@
no final. Isso é para redirecionar todos os parâmetros)salvar e sair
chmod 755 gksudo
Por motivos de documentação, escreverei o que tentei e não deu certo:
~/.bash_aliases
ln -s pkexec [...]
)fonte