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
maurixnovatrento

(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
maurixnovatrento

(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 openSUSE)

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 openSUSE)

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
maurixnovatrento

(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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts