Come aprire una GUI con autorizzazioni sudo senza modifiche al tema in sudo e da un file .desktop
TL, DR: Voglio essere in grado di avviare un'applicazione GUI con privilegi di root facendo doppio clic su un file .desktop e preservando il buon tema (relativo al modo sudo) dall'aspetto non sudo.
Ho esaminato le domande / risposte correlate qui, tuttavia, non posso dire di aver compreso la situazione e ho trovato una soluzione. O non erano né ben strutturati ed esplicativi, o semplicemente non li ho ricevuti. O la maggior parte di loro menzionava gksu, tuttavia, per quanto ho capito, gksuè stato rimosso dai repository. Non riesco a installarlo.
Lo screenshot può essere trovato come allegato alla fine della domanda.
Sono consapevole che sarà una domanda complicata, per favore perdonami.
Ora, ho il programma Quartus installato sul mio computer e posso eseguirlo tramite (LATO SINISTRO DELLO SCREENSHOT):
/home/muyustan/altera/13.1/quartus/bin/quartus --64bit
 
    Avevo anche creato un .desktopfile come 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
 
    Fin qui tutto bene, posso eseguirlo tramite desktop entry, nessuna finestra di terminale si apre e si ferma lì (abbastanza fastidioso). Va tutto bene.
Tuttavia, ho capito che in una parte dell'app Quartus, deve aprire (chiamare) un altro programma (Modelsim) e salvare alcuni file in alcuni posti ecc. Il problema è che se non avvio l'app con un sudoin davanti (LATO DESTRO DELLO SCREENSHOT), ottengo alcuni errori di dichiarazione permission deniede le cose semplicemente non funzionano.
Quindi, posso risolvere questo problema cambiando la mia abitudine di lancio,
from -- double click on the desktop entry
to -- Ctrl+Alt+T -> sudo [executablePath] -> enter password
 
    Ora, chiaramente non lo voglio per due ragioni principali.
- Ci vuole più tempo.
 - Quel terminale rimane lì finché l'applicazione è aperta.
 
E proprio a questo punto viene visualizzato un terzo motivo (bonus), come potresti aver notato o meno dagli screenshot, l'avvio con sudorende il tema della GUI simile, beh, in stile Windows XP ... non ho scelto / cambiato qualsiasi tema quando ho installato Quartus per la prima volta o giù di lì, a proposito.
Quindi, spero di aver chiarito il mio punto.
Grazie in anticipo.
                Aggiornamenti alla domanda
Dopo la richiesta di qualcuno nei commenti, vedere l'errore che ricevo nell'applicazione chiamata (lanciata dall'interno di 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
# }"
Risposte
L'utente ha ricevuto questo messaggio di errore:
# ** Error: (vdel-19) Failed to access library 'rtl_work' at "/home/muyustan/altera/13.1/temp1/simulation/qsim/rtl_work". # Permission denied. (errno = EACCES)
Dall'uso di sudo, mi aspettavo che alcune cartelle / file venissero creati con il livello di privilegi di root.
Abbiamo generato un elenco per l'intero albero nella cartella "altera" per verificare la proprietà e le autorizzazioni. Utilizzando:
find /home/muyustan/altera -type d -exec stat -c '%A %G %U %n' {} \; > log.txtCerca quella cartella
temp1o l'utente / grupporoot, come puoi vedere che ci sono cartelle di proprietà di rootdrwxrwxr-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_dbCambia la proprietà di quella cartella altera e di tutte le cartelle figli e i file in essa contenuti al tuo utente e gruppo.
sudo chown -R muyustan:muyustan /home/muyustan/altera
Riprova a eseguire Quartus senza sudo