So führen Sie das .desktop-Symbol in sudo aus

11

Ich habe ein Desktop-Symbol für das gddccontrol erstellt, aber um es auszuführen, muss ich es von sudo ausführen. Gibt es eine Möglichkeit, einen Befehl über das Desktopsymbol auszuführen, z.

sudo -pPASSWORD gddccontrol

Also werde ich nicht nach dem Passwort im Terminal gefragt?

Ich möchte nur klicken und es mit Sudo-Berechtigungen ausführen.

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

Wenn ich das Symbol mit dem folgenden Exec-Befehl vom Terminal aus starte, funktioniert es gut, aber in Launcher nicht :(

Exec=echo mypasswd | sudo -S gddccontrol
Eugene
quelle

Antworten:

17

Verwenden Sie NIEMALS Ihr Passwort, das in einer .desktopDatei gespeichert ist . Es ist schrecklich unsicher.

Darüber hinaus können Sie in einer .desktopsolchen Datei keine komplizierten Befehle ausführen , aber das ist ein anderes Thema.

Was ist zu tun

Sie haben einige Möglichkeiten:

  1. In gddccontrolauf die sudoersDatei, wie erläutert , zB hier . Dies ist möglich, wenn Sie sicher sind, dass die Anwendung nicht für böswillige Aktionen verwendet werden kann.

    Dann benutze

    Exec=sudo gddccontrol
    

    in der Exec=-line

  2. Eine andere Möglichkeit besteht darin, die Exec=Zeile durch Folgendes zu ersetzen :

    Exec=gksu gddccontrol
    

    In diesem Fall werden Sie nach dem Klicken auf das Symbol aufgefordert, Ihr Passwort über die GUI einzugeben.
    Möglicherweise müssen Sie installieren gksu:

    sudo apt-get install gksu
    
Jacob Vlijm
quelle
keine anderen möglichkeiten ohne bearbeitung von sudoers und gksu? weil gksu auf keinen Fall nach dem Passwort fragt, aber wenn ich abends auf dem Sofa liege, möchte ich einfach gddccontrol mit der Maus ausführen, um Helligkeit / Kontrast zu verringern und weiterhin Filme anzusehen, ohne auf meine Tastatur zu kommen. Ich würde meinem Benutzer besser Zugriff auf das $ gddccontrol geben dev: / dev / i2c-4: Berechtigung verweigert Ich möchte nur einen einfachen Weg ohne Kopfschmerzen, um Helligkeit und Kontrast in der Abendzeit zu ändern :(
Eugene
1
@ Eugene kann ich mir vorstellen. In diesem Fall würde ich mich für die Sudoers-Datei entscheiden.
Jacob Vlijm
1
Lieber pkexecüber gksu; Ich glaube, es gab einen Meta-Beitrag dazu.
Katze
@cat pkexecläuft nicht einfach so auf GUI-Anwendungen. Die Einrichtung ist komplizierter und gksufunktioniert einwandfrei.
Jacob Vlijm
Aber ich muss nicht zusätzlich pkexecam 16.04 installieren .
Valentas
4

Die Verwendung von sudowird per Definition eine Passwortanfrage auslösen. Sie müssen Ihrem Benutzer Ausführungsberechtigungen erteilen. Ich bin nicht sicher, wo sich dieses Programm befindet, aber um dieser Antwort willen nehmen wir an, dass es so ist /usr/bin/.

Führen Sie in einem Terminal Folgendes aus:

sudo chmod o+x /usr/bin/gddccontrol

Dieser Befehl gewährt o ther Benutzer (wie Sie) das Recht auf e x ecute das Programm ohne die Notwendigkeit einer Genehmigung.

Verwenden Sie dann in der .desktop-Datei einfach:

Exec=gddccontrol

quelle
0

Ich bin gegen das Festcodieren von Passwörtern in einer Nur-Text-Datei, daher kann ich mir zwei mögliche Lösungen vorstellen:

  1. Nehmen Sie eine systemweite Bearbeitung vor, bei der jeder von Ihrem Benutzer mit sudo ausgegebene Befehl als Superuser ausgeführt wird, ohne dass Sie zur Eingabe eines Kennworts aufgefordert werden. Wie das geht, erfahren Sie in dieser Antwort

  2. Wenn Sie nicht möchten, dass sudoBefehle immer mit der Kennwortabfrage ausgeführt werden, verwenden Sie gksuvor Ihrem Befehl die bewährte Methode, um in einem Grafikfenster zur Eingabe des Kennworts aufzufordern, anstatt Ihr unformatiertes Kennwort in eine Datei zu schreiben.

S.Mohsen sh
quelle