
Ich bin neu hier und habe versucht, eine Möglichkeit zu finden, ein Desktopsymbol für den Sudo-Befehl zu erstellen, um das Programm namens GfxTablet zu öffnen, kann aber keine Informationen finden, die tatsächlich funktionieren.
Bei all den vielen Befehlen, die ich ausprobiert habe, schlug das Starten des Tilix-Terminals und/oder die Eingabe eines Befehls fehl. Ich habe viele .desktop-Dateien erstellt, die selbst Programme starteten, aber nie eine Befehlszeile, die mit sudo oder ohne sudo ausgeführt werden konnte.
Ich weiß nur, dass die Exec-Zeile präzise sein muss, was sie vorgibt, um den Vorgang auszuführen. Wenn ich versuche, das Standardterminal zu starten, indem ich die Exec-Zeile eingebe, um Exec=tilix anzugeben, passiert überhaupt nichts, aber wenn ich beispielsweise in UXterm gehe und tilix eingebe und dann die Eingabetaste drücke, öffnet es sich. Ich habe versucht, das Standardterminal in diesem Build von Disco Dingo 19.04 in eines von 3 oder 4 Terminals zu ändern, aber keines wird von der Exec=-Zeile gestartet, wenn sie den Ordnerspeicherort gefolgt vom Dateinamen enthält, wenn ich den .desktop-Launcher schreibe.
Ich mache es ausführbar und führe es aus, indem ich es mit der rechten Maustaste mit der Option „Software ausführen“ öffne oder die Desktopdatei in Tilix ziehe und die Eingabetaste drücke.
Ich weiß nicht, um welchen Dateityp es sich bei der Datei handelt, die ich starten möchte, und weiß auch nicht, wie ich die Dateierweiterung finde, da ich die Eigenschaften per Rechtsklick aufgerufen habe und dort kein Name für den Dateityp angezeigt wird. Oder ich habe per Rechtsklick die Option zum Anzeigen des Speicherorts gewählt, um den Pfad anzuzeigen. Auch dort wird keine Dateierweiterung angezeigt.
Der Pfad zur Datei, für die ich diesen .desktop-Launcher erstellen möchte, lautet wie folgt:
/home/pc/GfxTablet/Treibereingabe/Netzwerktablet
Der Dateiname, den ich zum Starten benötige, lautet wie folgt:
NetzwerkTablet
Das Starten der Anwendung funktioniert auf allen Terminals. Wenn Sie den Startbefehl eingeben, lautet er wie folgt:
sudo ./Netzwerktablet
Ich bin jetzt seit über 36 Stunden dabei und versuche, es herauszufinden. Ich habe sporadisch Hilfe online erhalten, aber das hat nicht funktioniert. Es macht mich verrückt. Ich möchte, dass das Symbol zum Docky Dock hinzugefügt wird, da ich meine eigene angepasste Distribution erstelle.
Ich möchte es aber bei Bedarf irgendwann nach der vollständigen Anpassung auf andere Maschinen übertragen, daher muss ich es nach der Fertigstellung als Systembackup speichern, um dies auf einfache Weise tun zu können, wenn alles einsatzbereit ist. Ich möchte es bei der Neuinstallation oder Installation auf einer beliebigen Maschine im Dock haben und den einfachen Zugriff auf jeder Maschine vom Dock aus, indem ich einfach auf ein Symbol klicke, anstatt es zum Starten immer über ein Terminal einzugeben, das ich erst anklicken und öffnen muss. Dasselbe gilt, wenn ich weitere Befehlszeilen hinzufügen möchte, um sie mit einem Klick zu öffnen, anstatt eine Eingabeaufforderung zu öffnen und sie dann einzutippen. Ich möchte sie auch in der App-Suche haben, d. h. sie müssen eine .desktop-Datei im Ordner .local/share/applications sein. So viel habe ich beim Erstellen anderer Launcher gelernt.
Kann mir bitte jemand helfen? Ich bin erst seit wenigen Tagen neu bei Linux, kenne mich aber mit Windows nicht so gut aus, mit der Kommandozeile aber mit allem anderen. Ich habe gerade endgültig das Betriebssystem gewechselt, mir gefällt die Sicherheit, die Geschwindigkeit und die Flüssigkeit des Ubuntu-Betriebssystems besser.
Ich hoffe auf Hilfe, damit ich meine Haare behalten kann, wie sie sind, bevor ich sie mir ganz ausreiße, lol
Dank im Voraus
Antwort1
In früheren Versionen von Ubuntu wäre die Antwort einfach gewesen: Verwenden Sie gksudo
die Zeile „Exec=“ des Launchers. Vor dem Starten des eigentlichen Programms würde ein grafischer Dialog angezeigt, in dem Sie das Benutzerkennwort eingeben müssen. „gksudo“ erlaubte jedoch privilegierten Benutzern wahllos, jedes grafische Programm als Root auszuführen, und dies ist mittlerweile veraltet. Es wurde durch ersetzt pkexec
, das zusätzlich zur Kennwortabfrage zuerst überprüft, ob Sie versuchen, ein Programm auszuführen, das ausdrücklich als Root ausgeführt werden darf. Darüber hinaus wird es standardmäßig niemals zulassen, dass ein grafisches Programm vollständig als Root ausgeführt wird. Die Möglichkeit besteht jedoch weiterhin, ältere grafische Programme zu unterstützen, die vollständig als Root ausgeführt werden sollen.
man pkexec
erklärt, wie Sie Ihre benutzerdefinierte ausführbare Datei als Root ausführen können.
Erstellen Sie eine Aktionsdatei, basierend auf der Vorlage, die Sie finden
man pkexec
(siehe unter Beispiel). Geben Sie Ihre eigene an<action id=
und ändern Sie sie<annotate key="org.freedesktop.policykit.exec.path">
in den vollständigen Befehl Ihrer ausführbaren Datei. Optional können Sie Parameter wie Symbol, Beschreibung, Herstellerinformationen usw. übernehmen.Legen Sie die Datei in das Verzeichnis
/usr/share/polkit-1/actions
Stellen Sie im .desktop-Launcher dem vollständigen Befehl Ihrer ausführbaren Datei ein voran pkexec
. Wenn alles gut geht, sollte beim Klicken auf den Launcher ein Dialogfeld zur Eingabe Ihres Kennworts sowie die in der Datei angegebene Meldung angezeigt werden.
Wenn der Befehl eine Terminalausgabe liefert, die Sie sehen möchten, fügen Sie in Ihre .desktop-Datei die Zeile „Terminal=true“ ein. Auf diese Weise wird der Befehl in einem Terminal gestartet, das geöffnet bleibt, solange der Befehl ausgeführt wird.