Cómo abrir una GUI con permisos de sudo sin cambios de tema en sudo y desde un archivo .desktop

Apr 15 2020

TL, DR: Quiero poder lanzar una aplicación GUI con privilegios de root haciendo doble clic en un archivo .desktop y preservando el buen aspecto (relativo a la forma sudo) que no parece sudo.


He buscado preguntas / respuestas relacionadas aquí, sin embargo, no puedo decir que entienda la situación y encontré una solución. O no estaban bien estructurados y explicados, o simplemente no los entendí. O la mayoría de ellos mencionaban gksu, sin embargo, hasta donde yo tenía entendido, gksuse ha eliminado de los repositorios. No puedo instalarlo.

La captura de pantalla se puede encontrar adjunta al final de la pregunta.

Soy consciente de que será una pregunta complicada, perdóneme.


Ahora, tengo el programa Quartus instalado en mi computadora y puedo ejecutarlo a través de (LADO IZQUIERDO DE LA CAPTURA DE PANTALLA):

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

También había creado un .desktoparchivo de la siguiente manera:

[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

Hasta ahora todo bien, puedo ejecutarlo a través de la entrada del escritorio, no aparece ninguna ventana de terminal y se detiene allí (lo suficientemente molesto). Todo esta bien.

Sin embargo, he descubierto que en una parte de la aplicación Quartus, tiene que abrir (llamada) otro programa (Modelsim) y guardar algunos archivos en algunos lugares, etc. El problema es, si no lanzar la aplicación con una sudode delante (LADO DERECHO DE LA CAPTURA DE PANTALLA), obtengo algunos errores que indican permission deniedy las cosas simplemente no funcionan.

Entonces, puedo resolver esto cambiando mi hábito de lanzamiento,

from -- double click on the desktop entry

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

Ahora, claramente no querré esto por dos razones principales.

  1. Lleva más tiempo.
  2. Ese terminal permanece allí mientras la aplicación esté abierta.

Y justo en este punto aparece una tercera razón (extra), como puede que haya notado o no en las capturas de pantalla, el inicio sudohace que el tema de la GUI se vea como, bueno, al estilo de Windows XP ... No he elegido / cambiado cualquier tema cuando instalé Quartus por primera vez, por cierto.

Entonces, espero haber dejado claro mi punto.

Gracias por adelantado.


Actualizaciones de la pregunta

Después de la solicitud de alguien en los comentarios, vea el error que recibo en la aplicación llamada (iniciada desde dentro de 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
# }"

Respuestas

1 user.dz Apr 15 2020 at 17:55

El usuario recibió este mensaje de error:

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

Por el uso de sudo, esperaba que se crearan algunas carpetas / archivos con el nivel de privilegios de root.

  1. Generamos un listado para todo el árbol en la carpeta "altera" para verificar la propiedad y los permisos. Utilizando:

    find /home/muyustan/altera -type d -exec stat -c '%A %G %U %n' {} \; > log.txt
    
  2. Busque esa carpeta temp1o el usuario / grupo root, como puede ver, hay carpetas propiedad de 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. Cambie la propiedad de esa carpeta alternativa y todas las carpetas y archivos secundarios a su usuario y grupo.

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

Vuelva a intentar ejecutar Quartus sin sudo