Comment ouvrir une interface graphique avec des autorisations sudo sans changement de thème dans sudo et à partir d'un fichier .desktop

Apr 15 2020

TL, DR: Je veux pouvoir lancer une application GUI avec des privilèges root en double-cliquant sur un fichier .desktop, et en préservant le bon thème (par rapport à la manière sudo) qui ne ressemble pas à sudo.


J'ai regardé des questions / réponses connexes ici, cependant, je ne peux pas dire que je comprends la situation et que j'ai trouvé une solution. Soit ils n'étaient pas bien structurés et explicatifs, soit je ne les ai tout simplement pas compris. OU la plupart d'entre eux mentionnaient gksu, cependant, pour autant que je sache, gksua été supprimé des référentiels. Je ne peux pas l'installer.

La capture d'écran peut être trouvée en pièce jointe à la fin de la question.

Je sais que ce sera une question compliquée, pardonnez-moi.


Maintenant, j'ai le programme Quartus installé sur mon ordinateur et je peux l'exécuter via (CÔTÉ GAUCHE DE LA CAPTURE D'ÉCRAN):

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

J'avais également créé un .desktopfichier comme suit:

[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

Jusqu'ici tout va bien, je peux l'exécuter via une entrée de bureau, aucune fenêtre de terminal n'apparaît et s'arrête là (assez ennuyeux). Tout va bien.

Cependant, j'ai compris que dans une partie de l'application Quartus, il fallait ouvrir (appeler) un autre programme (Modelsim) et enregistrer des fichiers à certains endroits, etc. Le problème est que si je ne lance pas l'application avec un sudoin devant (CÔTÉ DROIT DE LA CAPTURE D'ÉCRAN), j'obtiens des erreurs indiquant permission deniedque les choses ne fonctionnent tout simplement pas.

Donc, je peux résoudre cela en changeant mon habbit de lancement,

from -- double click on the desktop entry

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

Maintenant, clairement, je ne veux pas cela pour deux raisons principales.

  1. Cela prend plus de temps.
  2. Ce terminal y reste tant que l'application est ouverte.

Et à ce stade, une troisième raison (bonus) apparaît, comme vous l'avez peut-être remarqué ou non sur les captures d'écran, le lancement avec sudodonne au thème de l'interface graphique un aspect de style Windows XP ... Je n'ai pas choisi / changé n'importe quel thème lorsque j'ai installé Quartus pour la première fois, soit dit en passant.

Donc, j'espère que j'ai fait mon point clairement.

Merci d'avance.


Mises à jour de la question

Après la demande de quelqu'un dans les commentaires, voyez l'erreur que j'obtiens dans l'application appelée (lancée depuis l'intérieur 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
# }"

Réponses

1 user.dz Apr 15 2020 at 17:55

L'utilisateur a reçu ce message d'erreur:

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

De l'utilisation de sudo, je m'attendais à ce que certains dossiers / fichiers aient été créés avec le niveau de privilèges root.

  1. Nous avons généré une liste pour l'ensemble de l'arbre dans le dossier "altera" pour vérifier la propriété et les autorisations. En utilisant:

    find /home/muyustan/altera -type d -exec stat -c '%A %G %U %n' {} \; > log.txt
    
  2. Recherchez ce dossier temp1ou l'utilisateur / groupe root, comme vous pouvez le voir, il y a des dossiers appartenant à 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. Changez la propriété de ce dossier altera et de tous les dossiers et fichiers enfants qu'il contient en votre utilisateur et groupe.

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

Réessayez d'exécuter Quartus sans sudo