Como abrir uma GUI com permissões de sudo sem mudanças de tema no sudo e de um arquivo .desktop

Apr 15 2020

TL, DR: Eu quero ser capaz de iniciar um aplicativo GUI com privilégios de root clicando duas vezes em um arquivo .desktop e preservando o bom (em relação ao modo sudo) com o tema do modo não sudo.


Procurei perguntas / respostas relacionadas aqui, no entanto, não posso dizer que compreendo a situação e encontrei uma solução. Ou eles não eram bem estruturados e explicativos, ou eu simplesmente não os entendi. OU a maioria deles estava mencionando gksu, no entanto, pelo que eu entendi, gksufoi removido dos repositórios. Não consigo instalar.

A captura de tela pode ser encontrada em anexo no final da pergunta.

Estou ciente de que será uma pergunta complicada, por favor, me perdoe.


Agora, tenho o programa Quartus instalado no meu computador e posso executá-lo via (LADO ESQUERDO DA CAPTURA DE TELA):

/home/muyustan/altera/13.1/quartus/bin/quartus --64bit

Eu também criei um .desktoparquivo como segue:

[Desktop Entry]
Type=Application
Version=0.9.4
Name=Quartus II 13.1 (64-bit) Web Edition
Comment=Quartus II 13.1 (64-bit)
Icon=/home/muyustan/altera/13.1/quartus/adm/quartusii.png
Exec=/home/muyustan/altera/13.1/quartus/bin/quartus --64bit
Terminal=false
Path=/home/muyustan/altera/13.1

Até agora tudo bem, posso executá-lo por meio de entrada na área de trabalho, nenhuma janela de terminal aparece e para lá (irritante o suficiente). Tudo está bem.

No entanto, descobri que em uma parte do aplicativo Quartus, ele precisa abrir (chamar) outro programa (Modelsim) e salvar alguns arquivos em alguns lugares etc. O problema é, se eu não iniciar o aplicativo com um sudoem na frente dele (LADO DIREITO DA CAPTURA DE TELA), eu recebo alguns erros informando permission deniede as coisas simplesmente não funcionam.

Então, posso resolver isso mudando meu habbit de lançamento,

from -- double click on the desktop entry

to -- Ctrl+Alt+T -> sudo [executablePath] -> enter password

Bem, claramente não quero isso por dois motivos principais.

  1. Leva mais tempo.
  2. Esse terminal permanece lá enquanto o aplicativo estiver aberto.

E bem neste ponto surge um terceiro (bônus) motivo, como você pode ou não ter notado nas imagens, iniciar com sudofaz com que o tema da GUI pareça, bem, o estilo do Windows XP ... qualquer tema quando instalei pela primeira vez o Quartus ou algo assim, aliás.

Então, espero ter deixado meu ponto claro.

Desde já, obrigado.


Atualizações para a pergunta

Após a solicitação de alguém nos comentários, veja o erro que estou recebendo no aplicativo chamado (iniciado de dentro do Quartus), Modelsim:

do temp1_run_msim_rtl_verilog.do 
# if {[file exists rtl_work]} {
#   vdel -lib rtl_work -all
# }
# ** Error: (vdel-19) Failed to access library 'rtl_work' at "/home/muyustan/altera/13.1/temp1/simulation/qsim/rtl_work".
# Permission denied. (errno = EACCES)
# ** Error: /home/muyustan/altera/13.1/modelsim_ase/linux/vdel failed.
# Error in macro ./temp1_run_msim_rtl_verilog.do line 4
# /home/muyustan/altera/13.1/modelsim_ase/linux/vdel failed.
#     while executing
# "vdel -lib rtl_work -all"
#     invoked from within
# "if {[file exists rtl_work]} {
#   vdel -lib rtl_work -all
# }"

Respostas

1 user.dz Apr 15 2020 at 17:55

O usuário recebeu esta mensagem de erro:

# ** Error: (vdel-19) Failed to access library 'rtl_work' at "/home/muyustan/altera/13.1/temp1/simulation/qsim/rtl_work".
# Permission denied. (errno = EACCES)

Com o uso de sudo, eu esperava que algumas pastas / arquivos fossem criados com nível de privilégios de root.

  1. Geramos uma listagem para toda a árvore na pasta "altera" para verificar a propriedade e as permissões. Usando:

    find /home/muyustan/altera -type d -exec stat -c '%A %G %U %n' {} \; > log.txt
    
  2. Procure essa pasta temp1ou o usuário / grupo root, como você pode ver que há pastas pertencentes ao root

    drwxrwxr-x muyustan muyustan /home/muyustan/altera/13.1/temp1/simulation/qsim/work/up_counter
    drwxrwxr-x muyustan muyustan /home/muyustan/altera/13.1/temp1/simulation/qsim/work/prime_detector_4bits_vlg_check_tst
    drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/qsim/rtl_work
    drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/qsim/rtl_work/_temp
    drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/qsim/rtl_work/up_counter_tb
    drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/qsim/rtl_work/up_counter
    drwxrwxr-x muyustan muyustan /home/muyustan/altera/13.1/temp1/simulation/modelsim
    drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/modelsim/gate_work
    drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/modelsim/gate_work/prime_detector_4bits
    drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/modelsim/gate_work/_temp
    drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/modelsim/rtl_work
    drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/modelsim/rtl_work/_temp
    drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/modelsim/rtl_work/up_counter
    drwxrwxr-x muyustan muyustan /home/muyustan/altera/13.1/temp1/db
    drwxrwxr-x muyustan muyustan /home/muyustan/altera/13.1/temp1/incremental_db
    
  3. Mude a propriedade dessa pasta e de todas as pastas filho e arquivos contidos nela para o seu usuário e grupo.

    sudo chown -R muyustan:muyustan /home/muyustan/altera
    

Tente executar novamente o Quartus sem sudo