Ich habe eine .desktop-Datei für Androxyde's Flashtool (Dienstprogramm für Sony Xperia-Geräte, das ich mit einer ausführbaren Datei in seinem Ordner öffnen muss) erstellt, für die Root-Berechtigungen für die Verwendung von Fastboot-Dienstprogrammen erforderlich sind. Früher habe ich damit gearbeitet gksu
, aber ich bin auf Ubuntu 15.04 und gksu ist jetzt alt.
Ich habe versucht, die exec
Zeile von zu ändern
Exec=gksu /home/natasha/FlashTool/FlashTool
zu Exec=pkexec /home/natasha/FlashTool/FlashTool
Dann habe ich gelesen, dass pkexec keine X11-Anwendungen zulässt und ich überschreibe dies folgendermaßen:
Link zum Vollbild auf Imgur.com
Das Problem ist jetzt: Es fragt mich nach dem Passwort, aber die Benutzeroberfläche des Flashtools startet nicht. ABER wenn ich diesen Befehl im Terminal ausführe, startet das Programm ohne Probleme. Was kann ich tun?
command-line
.desktop
pkexec
nplezka
quelle
quelle
Antworten:
Erstellen Sie eine neue Datei in
/usr/share/polkit-1/actions/
und füge die folgenden Zeilen hinzu:
Dann erstelle eine neue Datei
/home/natasha/FlashTool/
und füge die folgenden Zeilen hinzu:
Verwenden Sie
Exec
in Ihrerdesktop
Datei die folgende Zeile für :Getestet auf meinem System Ubuntu 15.04 GNOME mit den folgenden Dateien:
quelle
Exec
Befehl: Ich habeExec=pkexec /home/natasha/FlashTool/FlashTool
wie zuvor geschrieben, da flashtool-pkexec nicht mit der .desktop-Datei funktioniert. Dank der Richtliniendatei funktioniert es wie ein Zauber. Vielen Dank!#!
, müssen Sie demExec
Befehl das Präfix voranstellen/bin/sh
.sudo -H
Dies reicht aus, um eine grafische Anwendung zu starten, die Änderungen an den Konfigurationsdateien des Benutzers verhindert~/
, da das Basisverzeichnis der ausgeführten Umgebung auf das Basisverzeichnis von root festgelegt wird:quelle
desktop
Datei?sh
Instanz (wahrscheinlich mit einigen Umgebungsvariablen, die ad hoc festgelegt wurden, aber hier ist kein Problem).sudo
wenn Sie eineTerminal=false
Zeile im.desktop
Launcher haben (wie OP hier). Jedoch würde es höchstwahrscheinlich mitTerminal=true
stattdessen funktionieren .