Lançar um programa graficamente, com privilégios, sem abrir o terminal [RESOLVIDO COM MESTRIA]

1. Lançar um programa graficamente, com privilégios, sem abrir o terminal [RESOLVIDO COM MESTRIA]

Ricardo Groetaers
ricardogroetaers

(usa Linux Mint)

Enviado em 20/12/2020 - 01:49h

Histórico:
1- Linux Mint 17.3:
Tinha o "su-to-root" que abria uma janela gráfica para inserir a senha. Funcionava com todos os programas gráficos que testei.
2- Linux Mint 18.3:
Não tinha mais o "su-to-root" mas tinha "gksu" que funcionava da mesma maneira.
3- Linux Mint 19.3 (em uso atualmente e testando):
Tem o "su-to-root" ou ele foi instalado por ocasião da instalação do "lshw-gtk" (interface gráfica para "lshw", programa para mostrar o hardware).
Tem o "pkexec" mas este não funciona com todos os programas.
Não tem o "gksu".

Observação: "su-to-root", "gksu" e "pkexec" são "prefixos" (vamos chamar assim) que se coloca no campo "comando" dos lançadores para que se abra uma janela gráfica para digitar a senha. Esta janela se fecha após o lançamento do programa. Exemplo de uso:
pkexec lightdm-settings
su-to-root -X -c lshw-gtk
gksu /usr/bin/warsaw stop

Problemas:
O problema do "su-to-root" atual é que ele abre uma janela de terminal para digitar a senha e esta janela de terminal permanece aberta (embora possa ser minimizada) enquanto o programa gráfico estiver em uso.
Se usarmos, por exemplo, 3 programas gráficos (com privilégios) simultaneamente, teremos 6 janelas abertas, 3 dos programas e 3 janelas de terminal.
Isso é absurdo nos dias de hoje!

Instalei "gksu" (original do Ubuntu 16.04, equivalente a Mint 18.x) mas não funciona corretamente.
Durante o uso do programa, que foi lançado com "gksu", e mesmo após o fechamento do programa, uma "rodinha" fica rodando no ponteiro do mouse como se algo ainda estivesse em execução. Não encontrei quem é o dito cujo.

Pergunto:
Alguem sabe como (em Mint 19.3 Xfce 64 bits) "lançar" programa gráfico (em geral), com privilégios, sem abrir o terminal ou que pelo menos o terminal se feche após digitar a senha?



  


2. Re: Lançar um programa graficamente, com privilégios, sem abrir o terminal [RESOLVIDO COM MESTRIA]

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 20/12/2020 - 07:30h

Tente uma combinação de sudo com nohup (ou nohup com sudo). Ou tentar aplicar suid ( nem um pouco recomendável - chmod +s ... )


3. Re: Lançar um programa graficamente, com privilégios, sem abrir o terminal [RESOLVIDO COM MESTRIA]

Mauricio Ferrari
mauricio123

(usa Slackware)

Enviado em 20/12/2020 - 19:29h


tenta o pkexec eu tenho no Deepin, não explorei muito ele mas tenta.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento



4. Re: Lançar programa gráfico, com privilégios, sem abrir o terminal

Ricardo Groetaers
ricardogroetaers

(usa Linux Mint)

Enviado em 20/12/2020 - 21:53h

leandropscardua,
Esse nohup está meio esquisito. Ele, segundo o manual, parece ,manter um programa em execução (mesmo que em segundo plano) mesmo após fazer logoff.
Parece tambem que direciona a saida (do programa que se deseja executar) para um arquivo. Esse não é o caso dos programas que quero executar com privilégios, salvo, por hipótese, o lshw-gtk, o que tambem não faria sentido direcionar uma saída gráfica para um arquivo.
Poderia explicar melhor a sua ideia?

mauricio123,
Como dito no post inicial, o pkexec não funciona com qualquer programa em Mint 19.3.
O porque, eu não sei.
Tem lançadores de programas (que já vem instalados de fábrica), onde o pkexec aparece como "prefixo" ou como "sufixo", exemplo:
pkexec mintsources (aparece como prefixo)
synaptic-pkexec (aparece como sufixo)
Naquele em que pkexec aparece como sufixo, observei vagamente que existe um script de mesmo nome em algum lugar, mas não sei se isso é geral. Exemplo:
/usr/bin/synaptic-pkexec
/usr/bin/gufw-pkexec

Se, por acaso, tivermos que criar um hipotético script "programa-pkexec" para cada programa desejado, isso seria inviável e não faria sentido.
De fato isso parece não ser necessário. Exemplo:
O warsaw (módulo de segurança bancário) pode ser habilitado e desabilitado usando o pkexec.

A pergunta que não se cala é:
"Como (em Mint 19.3 Xfce 64 bits) "lançar" programa gráfico (em geral), com privilégios, sem abrir o terminal ou que pelo menos o terminal se feche após digitar a senha"?



5. Re: Lançar programa gráfico, com privilégios, sem abrir o terminal

Mauricio Ferrari
mauricio123

(usa Slackware)

Enviado em 20/12/2020 - 23:15h

No deepin, o pkexec funciona com alguns programas, o BleachBit por exemplo.

No KDE tinha o kdesu que era infalível, mas não sei se tem no plasma 5, deve ter. Aí tem que ver a interface que o sistema tá usando, que deve não ser o KDE, já que é Mint.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento



6. Re: Lançar um programa graficamente, com privilégios, sem abrir o terminal [RESOLVIDO COM MESTRIA]

Alberto Federman Neto.
albfneto

(usa Sabayon)

Enviado em 21/12/2020 - 20:00h

@ Mauricio, Plasma 5 tem kdesu, e funciona bem, não tem mais kdesudo, mas dá para usar, senha de usuario se quiser, invés de root:

https://unix.stackexchange.com/questions/463352/how-to-run-kde-partition-manager-with-no-root-passwo...

em sabayon, kdesu e gksu (e gksudo) funcionam bem.

¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Albfneto,
Ribeirão Preto, S.P., Brasil.
Usuário Linux, Linux Counter: #479903.
Distros Favoritas: Sabayon, Gentoo, openSUSE, Mageia e OpenMandriva.


7. Re: Lançar um programa graficamente, com privilégios, sem abrir o terminal [RESOLVIDO COM MESTRIA]

Ricardo Groetaers
ricardogroetaers

(usa Linux Mint)

Enviado em 21/12/2020 - 20:22h

mauricio123 escreveu:
No deepin, o pkexec funciona com alguns programas, o BleachBit por exemplo.

Aqui também, o BleachBit em modo administrador, é claro.
É o BleachBit mais atual, baixado do site do desenvolvedor.
O meu Mint (em teste ainda) é o 19.3 Xfce 64 bits, o que já foi mencionado, mas acredito que o ambiente de trabalho (original do Mint) não influi em nada.
Segundo os desenvolvedores do Mint, há compatibilidade dos programas nos ambientes originais do Mint, o que foi implementado mediante estruturas (frameworks) cruzadas (não me pergunte o que é isso porque eu não sei).



8. Re: Lançar um programa graficamente, com privilégios, sem abrir o terminal [RESOLVIDO COM MESTRIA]

Alberto Federman Neto.
albfneto

(usa Sabayon)

Enviado em 21/12/2020 - 20:24h

Tem algum arquivo de configuração desse "su-to-root", que vc possa editar, porque gksu e kdesu tem!

¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Albfneto,
Ribeirão Preto, S.P., Brasil.
Usuário Linux, Linux Counter: #479903.
Distros Favoritas: Sabayon, Gentoo, openSUSE, Mageia e OpenMandriva.


9. Re: Lançar programa gráfico, com privilégios, sem abrir o terminal

Ricardo Groetaers
ricardogroetaers

(usa Linux Mint)

Enviado em 21/12/2020 - 21:08h

albfneto escreveu: Tem algum arquivo de configuração desse "su-to-root", que vc possa editar, porque gksu e kdesu tem!

su-to-root é um script. Seu conteúdo é muito grande para postar aqui.
Tem "su-to-rootrc, cujo conteúdo é apenas:
SU_TO_ROOT_SU=sudo
O restante são arquivos de idiomas.



10. Re: Lançar um programa graficamente, com privilégios, sem abrir o terminal [RESOLVIDO COM MESTRIA]

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 21/12/2020 - 22:06h

As outras respostas realmente são melhores que a minha. Minha ideia seria abrir um shell, rodar o nohup c o programa desejado e depois matar o terminal. Nesse caso o processo pai do programa seria o pid 1.
Quanto à saída, pensei em redirecionar p /dev/null, nesse cado ele não criaria a.out. É um monte de gambiarra kkk as outras ideias são realmente bem melhores.


11. Re: Lançar um programa graficamente, com privilégios, sem abrir o terminal [RESOLVIDO COM MESTRIA]

Mauricio Ferrari
mauricio123

(usa Slackware)

Enviado em 23/12/2020 - 14:33h


Eu mesmo sinto necessidade as vezes de usar um sudo gráfico e o que me vem em Mente é só o kdesu, porque eu sei que ele funciona no KDE, só que não tenho certeza nas demais interfaces.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento



12. Re: [Resolvido com mestria] Lançar um programa graficamente, com privilégios, sem abrir o terminal

Ricardo Groetaers
ricardogroetaers

(usa Linux Mint)

Enviado em 11/01/2021 - 03:29h

Solução:
Créditos e agradecimentos aos usuários do Linux Mint, Smurphos, Sanmig e Welcome.

Abra um Editor de texto simples e cole o seguinte:


#!/bin/bash
#
# Originally from smurphos as mentioned by sanmig, modified by Welcome
# Version to execute any command, just like sudo

echo "#!/bin/bash" > /tmp/passwordmagic
echo zenity --password --title="Autenticação-Necessária" >> /tmp/passwordmagic
chmod 755 /tmp/passwordmagic

export SUDO_ASKPASS=/tmp/passwordmagic
sudo -A $*

rm /tmp/passwordmagic
exit 0

# eof


-Salve este arquivo com o nome sugerido de:
suexec
Que significa "executar com sudo".

-Mova ou copie este arquivo para uma pasta constante do path do sistema (recomendável mas não obrigatório).
Sugestão: /usb/bin/

-Lá na pasta "/usr/bin/" , configure, pelo Gerenciador de Arquivos, as propriedades de "suexec" da seguinte maneira:
Proprietário -> root
Poderes -> leitura e gravação

Grupo -> root
poderes -> apenas leitura

Outros
poderes -> apenas leitura

Dê permissão de execução ao arquivo "suexec".

Pronto.
No lançador para um programa qualquer, que deseje executar com privilégios, basta no campo "comando" do lançador colocar o suexec como prefixo, exemplo:
suexec gparted
suexec lshw-gtk
ou, se for o caso, o caminho completo até o programa e seus respectivos parâmetros, exemplo genérico:
suexec /caminho/programa parametro

Observação: Se optar por colocar o "suexec" na sua pasta pessoal, basta dar a ele permissão de execução, não precisa alterar o proprietário e o grupo para root.
O problema é que precisará informar ao "lançador" o caminho até suexec.

O "suexec" já poderia vir instalado de fábrica no Linux Mint, pois tudo funciona com ele. As restrições apresentadas pelo "su-to-root", pelo "gksu" ou pelo "pkexec" simplesmente não existem.



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts