Abrir programa com privilegios de Root sem terminal

Ola pessoal, sou novo aqui e pesquisei sobre esse assunto no forum não consegui encontrar, pelo menos não nas minhas pesquisas.

Estou utilizando o Linux Mint 19.1 e utilizo maquinas virtuais tanto no Virtualbox e VMware, só que preciso inicializar elas com privilegios de root, atualmente estou utilizando o comando:

sudo -i vmware (para Vmware)
sudo -i virtualbox (para Virtualbox)

só que chega ser incomodo toda vez utilizar este comando para abrir em modo root, queria uma forma de abrir clicando no proprio atalho dos programas que eu colocar seja na area de trabalho ou na barra de tarefas. Mesmo que tenha que digitar a senha não tem problema, mais que seja mais rapido eu clicar no programa e digitar a senha e o programa abrir com os privilegios de root.

alguém pode me ajudar?

obs.: Encontrei muito assunto na internet falando do comando gksudo , mais não funciona no linux mint 19 porque vi que não foi dado continuidade no ubuntu então não tem mais esse comando por padrão, teria outra forma? Obrigado agradeço desde já!

1 Curtida

n sei se funciona, mas vc pode tentar isso: botao direito do mouse no virtulabox/vmware e abrir com outro aplicativo e comando personalizado e colar o comando aí, tambem pode tentar mudar o grupo de acesso nas propriedades

Captura%20de%20tela%20de%202019-07-22%2015-59-22 Captura%20de%20tela%20de%202019-07-22%2015-59-44
detalhe q uso mate. N sei se é igual no cinnamon ou xfce

Obrigado pela dica!
mais já tentei isso e não funcinou :frowning:

O Gksudo está obsoleto e foi sucedido pelo pkexec que faz a mesma coisa. Você pode:
I - Fazer o que tava tentando fazer com o Gksudo.
II - Por atalhos na área de trabalho com pkexec programa.

Para criar um atalho lá, crie uma arquivo chamado vmwaresudo.desktop com esse conteúdo

[Desktop Entry]
Name=VMWare (ROOT)
Exec=pkexec vmware
Type=Application

Faça o mesmo com o Virtualbox, trocando o Name e o Exec (comando). Pondo na área de trabalho, eles virarão atalhos.

1 Curtida

Opa!
Sou bem leigo no Linux, então tenho que instalar esse pacote? ou ele já vem como padrão?
E como eu criaria esse arquivo? por um bloco de texto? e salvaria como vmwaresudo.desktop ??

tem que ser esse nome? vmwaresudo.desktop

Obrigado por ajudar!

O pkexec é parte padrão do Linux Mint (inclusive, ele quem é usado quando a loja de aplicativos te pede a senha). Pode inclusive digitar pkexec vmware no terminal para ver como funciona. (E você tem razão, eu deveria ter dito isso).

Você cria o arquivo de texto com esse conteúdo pelo bloco de notas. Pode salvar com qualquer nome, contanto que a extensão seja .desktop. Para fazer o do Virtualbox, troque o Exec por pkexec virtualbox e o Name (por exemplo, para Virtualbox (ROOT)). E salve com outro nome de arquivo.

Então fiz exatamente como me disse, dei permissão para executar como aplicação, ele pede ate a senha corretamente da maneira que eu quero só que o vmware nao abre e nem o virtualbox

Também queria saber como fazer isso, tentei de varias formas sem resultado, no meu acontece a mesma coisa com o pkexec, pede a senha e não abre o app.

1 Curtida

Estranho, eu tinha testado com pkexec gparted e tinha funcionado.

Rodando pkexec vmware no terminal, há alguma mensagem de erro?

Você pode criar um Shell Script simples, por exemplo, e colocar na área de trabalho, pode até colocar um ícone dele:

!#/bin/bash
sudo -i vmware

Lembre de salvar o arquivo e marcar ele com permissões de execução nas propriedades do arquivo. Eu demonstrei algo semelhante neste vídeo: https://youtu.be/J_PVOXwNREI?t=726

Ou então você pode alterar o parâmetro Exec dentro dos arquivos .desktop (tipo esses que eu mostrei neste vídeo: YouTube

Dentro deles você vai encontra uma linha tipo:

Exec:vmware

Bastaria você alterar para:

Exec=vmware admin:///bin/vmware

Considerando que o binário esteja em /bin/vmware (nãot tenho certeza).

Acho que as duas formas podem funcionar, mas acho a primeira mais simples, já que não altera diretamente o comportamento de segurança do sistema.

3 Curtidas

Como sou bem iniciante, prefiro evitar executar programas no modo root… pois ja fiz muitos desastres em meus pobres sistemas… kkkkkkkkk

É porque sem modo Root eu não tenho permissão a pastas compartilhadas e eu preciso muito usar elas sempre! hehehe mais quando da pra evitar é bom mesmo.

Não sem mensagem de erros, apenas pede a senha mais não abre o programa…

Olá,
Obrigado pela resposta mais ainda não chegou onde eu queria ou ideal (podemos dizer assim), fiz das duas formas para ver qual iria melhor me atender, a parte do shell, funcionou mesmo dando permissão para executar como um programa ele só executa pelo terminal, eu queria que não abrisse pelo terminal, porque quando troco da maquina virtual para host e vou mecher e preciso abrir o terminal por outro motivo, posso acabar fechando o terminal que está rodando a aplicação do vmware ou virtual box.

Pela segunda forma testei no virtualbox e ele abre sem pedir senha do root e sem os privilégios o endereço correto que está no atalho da área de trabalho está desta forma.
Obs.: uma situação engraçada do virtualbox é que antes executando abrindo o shell e no modo “sudo” estava usando uma maquina virtual, quando abro sem ter os privilegios o virtualbox abre só que a máquina virtual não está lá para executar, só no modo “sudo” que a máquina virtual aparece, diferente do vmware que a maquina virtual aparece só que quando não estou no modo “sudo” eu não consigo abrir os arquivos que se encontram ná pasta compartilhada…

Estava pensando se eu tirar os privilégios da pasta compartilhada será que sem o modo root vai abrir os programas? só que como utilizo algumas funções da máquina virtual de comunicação e outros se a falta de privilégios continuar me atrapalhar ainda vai ser um incomodo.

@Dio, eu fiz uma mistura do que você explicou e deu certo, no meu arquivo cpu-x.desktop fiz assim:

Exec=sudo /home/danilo/portable/cpu-x/cpu-x.linux
Terminal=true

O terminal fica aberto, porém consigo abrir o app pelo atalho do menu como root.

Tentei com o admin:// antes do caminho do app mas não deu certo, talvez por ser um app portable.

2 Curtidas

Ainda não consegui, pelo shell eu consigo mais apenas executando pelo terminal, nao consigo simplesmente executar e o programa rodar…

@thh76 , faça o seguinte, no arquivo de texto executável (não importa se é o .desktop ou o script) coloque o seguinte:

pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY "aqui vai o nome do programa instalado ou o caminho completo do excutavel"

é isso :slightly_smiling_face:

Cheguei nesse tópico por que tenho uma duvida, quero adicionar a opção de abrir um programa como root usando o botão direito, me indicaram o nautilus-admin mas ele só serve para abrir pastas e arquivos de texto, quero abrir appimages e outros executáveis.

Talvez juntar essa duas informações ajude a me ajudar :upside_down_face::

Uma metéria ensinando a criar um script para abrir pastas e aruivos de texto no menu de contexto do nautilu, não funciona por que o gksu foi descontinuado:

Passo 1. Abra a Central de programas (ou Ubuntu Software Center). Procure e certifique-se que o pacote gksu está instalado. Ele permite que programas gráficos possam pedir a senha do usuário para executar o programa como root/administrador, e por isso, é essencial para este procedimento. Se preferir, use o comando sudo apt-get install gksu;
Passo 2. Abra o navegador de arquivos Nautilus e pressione as teclas Ctrl + H, para visualizar arquivos e pastas ocultas;
Passo 3. Navegue até a pasta HOME do usuário, depois vá para as pastas “.local”, “share”, “nautilus”, e por último entre na pasta “scripts”;
Passo 4. Crie um documento vazio neste diretório, clicando com o botão direito do mouse em um área vazia e escolhendo a opção “Novo documento” e depois “Documento vazio”;

Passo 5. Clique no arquivo criado e pressione a tecla F2. Renomeie ele para “abrir-como-administrator” ou “abrir-como-root”;

Passo 6. Dê um clique duplo no arquivo para abri-lo e colar as seguintes linhas dentro dele:

#!/bin/bash
#
# this code will determine exactly the path and the type of object,
# then it will decide use gedit or nautilus to open it by ROOT permission
#
# Determine the path
if [ -e -n $1 ]; then
obj="$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
else
base="`echo $NAUTILUS_SCRIPT_CURRENT_URI | cut -d'/' -f3- | sed 's/%20/ /g'`"
obj="$base/${1##*/}"
fi
# Determine the type and run as ROOT
if [ -f "$obj" ]; then
gksu gedit "$obj"
elif [ -d "$obj" ]; then
gksu nautilus "$obj"
fi

exit 0

AppImage como sudo? :thinking:

1 Curtida