Come eseguire l'icona .desktop da sudo


11

Ho creato un'icona desktop per gddccontrol, ma per eseguirlo ho bisogno di eseguirlo da sudo. C'è un modo per eseguire un comando dall'icona del desktop come,

sudo -pPASSWORD gddccontrol

quindi non mi chiederà la password nel terminale?

Voglio solo fare clic ed eseguirlo con le autorizzazioni sudo.

[Desktop Entry]
Type=Application
Name=GDDCControl
Terminal=false
Comment=gddccontrol ddccontrol
Exec=sudo -pPASSWORD gddccontrol
Icon=~/Pictures/10429.png

Quando eseguo l'icona dal terminale con il seguente comando Exec funziona bene, ma non funziona in Launcher :(

Exec=echo mypasswd | sudo -S gddccontrol

Risposte:


17

MAI MAI usare la tua password, memorizzata in un .desktopfile. È terribilmente pericoloso.

Inoltre, non è possibile eseguire comandi complicati in un .desktopfile come quello, ma questo è un altro argomento.

Cosa fare

Hai alcune opzioni:

  1. Aggiungi gddccontrolal sudoersfile, come spiegato ad esempio qui . Questo può essere fatto se si è certi che l'applicazione non possa essere utilizzata per eseguire azioni dannose.

    Quindi utilizzare

    Exec=sudo gddccontrol
    

    nella Exec=riga

  2. Un'altra opzione è quella di sostituire la Exec=linea con:

    Exec=gksu gddccontrol
    

    In questo caso, una volta che fai clic sull'icona, ti verrà chiesto di inserire la password tramite l'interfaccia grafica.
    Potrebbe essere necessario installare gksu:

    sudo apt-get install gksu
    

nessun altro modo senza modificare sudoers e gksu? perché gksu chiede in ogni caso la password, ma quando mi sdraio sul divano la sera, vorrei semplicemente eseguire gddccontrol con il mouse per ridurre la luminosità / il contrasto e continuare a guardare film senza venire sulla mia tastiera. meglio darei al mio utente l'accesso a $ gddccontrol dev: / dev / i2c-4: autorizzazione negata, voglio solo un modo semplice senza mal di testa per cambiare luminosità e contrasto di sera :(
Eugene

1
@Eugene posso immaginare. Vorrei cercare il file sudoers in quel caso.
Jacob Vlijm,

1
Preferisco pkexecsopra gksu; Credo che ci fosse un meta post su questo.
gatto

@cat pkexecnon è in esecuzione su applicazioni gui proprio così. È più complicato da configurare, mentre gksufunziona perfettamente.
Jacob Vlijm,

Ma non ho bisogno di installare adizionale pkexecsu 16.04.
Valentas,

4

L'uso sudoper definizione richiederà una richiesta di password. Quello che devi fare è concedere le autorizzazioni di esecuzione al tuo utente. Non sono sicuro di dove si trovi quel programma, ma per il bene di questa risposta, supponiamo che lo sia /usr/bin/.

In un terminale esegui questo:

sudo chmod o+x /usr/bin/gddccontrol

Questo comando concede o ther utenti (come te) il diritto di posta x ecute il programma senza necessità di autorizzazione.

Quindi, nel file .desktop, basta usare:

Exec=gddccontrol

0

Sono contrario alla password hard-coding in un file di testo semplice, quindi posso pensare a due possibili soluzioni:

  1. apporta una modifica a livello di sistema in modo che ogni comando emesso dal tuo utente con sudo venga eseguito come superutente senza richiedere la password. Puoi scoprire come in questa risposta

  2. Se non si desidera che i sudocomandi vengano sempre eseguiti con la richiesta della password, è consigliabile utilizzare gksuprima del comando per richiedere la password in una finestra grafica anziché scrivere la password non elaborata in un file.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.