it-swarm.com.de

So führen Sie .desktop icon in sudo aus

Ich habe ein Desktopsymbol für das gddccontrol erstellt, aber um es auszuführen, muss es in Sudo ausgeführt werden. Gibt es eine Möglichkeit, einen Befehl über das Desktopsymbol auszuführen, z.

Sudo -pPASSWORD gddccontrol

fragt es mich nicht nach dem Passwort im Terminal?

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 einwandfrei, aber im Launcher nicht :(

Exec=echo mypasswd | Sudo -S gddccontrol
10
Eugene

Verwenden Sie NIEMALS Ihr Passwort, das in einer .desktop -Datei gespeichert ist. Es ist furchtbar unsicher.

Außerdem können Sie in einer .desktop -Datei nicht einfach so komplizierte Befehle ausführen, aber das ist ein anderes Thema.

Was ist zu tun

Sie haben einige Möglichkeiten:

  1. Fügen Sie gddccontrol zur sudoers -Datei hinzu, wie z. hier . Dies ist möglich, wenn Sie sicher sind, dass die Anwendung nicht für böswillige Zwecke verwendet werden kann.

    Dann benutze

    Exec=Sudo gddccontrol
    

    in der Exec=- Zeile

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

    Exec=gksu gddccontrol
    

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

    Sudo apt-get install gksu
    
17
Jacob Vlijm

Die Verwendung von Sudo fordert per Definition eine Passwortanforderung auf. Sie müssen Ihrem Benutzer lediglich Ausführungsberechtigungen erteilen. Ich bin nicht sicher, wo sich das Programm befindet, aber für diese Antwort nehmen wir an, dass es /usr/bin/ ist.

In einem Terminal laufen diese:

Sudo chmod o+x /usr/bin/gddccontrol

Dieser Befehl gewährt o anderen Benutzern (wie Ihnen) das Recht auf e x das Programm ohne Erlaubnis ausführen.

Dann verwenden Sie in der .desktop-Datei einfach:

Exec=gddccontrol
4
user308164

Ich bin gegen die Hardcodierung des Passworts 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. Sie können herausfinden, wie in diese Antwort

  2. Wenn Sie nicht möchten, dass Sudo Befehle immer mit der Aufforderung zur Kennworteingabe ausgeführt werden, verwenden Sie gksu vor Ihrem Befehl zur Aufforderung zur Kennworteingabe in einem Grafikfenster, anstatt Ihr unformatiertes Kennwort in eine Datei zu schreiben.

0
S.Mohsen sh