Wie starte ich eine Anwendung als root in Unity Launcher?

81

Hauptsächlich suche ich nach einer Möglichkeit, eine Anwendung an die Unity-Startleiste anzuheften und als Root auszuführen.

Selbst wenn ich die Anwendung derzeit mit sudo starte und sie nach dem Start anhefte, wird sie das nächste Mal als aktueller Benutzer gestartet.

Schade, aber es gibt keinen Kontextmenüpunkt "Ausführen als ...".

Update : Ich bin zu gnome3 gewechselt und jetzt bin ich glücklich, mir fehlt nur noch die Suche.

Sorin
quelle
Wenn Sie das Risiko kennen, grafische Apps als Root auszuführen,
edm
Du hast die Frage nicht verstanden, ich weiß, wie man sie benutzt sudound ich habe sie bereits getunt. Die Frage ist, wie ich eine Verknüpfung zum Ubuntu Unity-Startprogramm für Apps erstellen kann, die ich als Root ausführen möchte.
Sorin
Für Unity Launcher, ich weiß es nicht. Wenn Sie jedoch eine Datei auf Ihrem Desktop haben und diese als gksu ausführen möchten, können Sie die Erweiterung "nautilus execute" installieren.
Curious Apprentice

Antworten:

89

Wenn Sie möchten, dass die App immer als Root ausgeführt wird

  1. Befestigen Sie die Anwendung wie gewohnt am Launcher.

  2. Suchen Sie die .desktop-Datei der Anwendung, die sich in folgenden Verzeichnissen befindet:

    • /usr/share/applications/APPNAME.desktop
    • ~/.local/share/applications/APPNAME.desktop
    • oder woanders verwenden locate .desktop|grep APPAME
  3. Öffne mit gedit:

    gksudo gedit /usr/share/applications/APPNAME.desktop
    
  4. Dann ändern Sie die Zeile

    Exec=APP_COMMAND
    

    zu

    Exec=gksudo -k -u root APP_COMMAND
    
  5. sparen

Mit diesem Befehl wird auch Ihre Umgebung erhalten, was sehr nützlich ist, wenn Sie eine Verbindung zu anderen Servern herstellen und Ihren privaten Schlüssel verwenden müssen.

So fügen Sie der Option "Als Root ausführen" eine Quicklist hinzu

Befolgen Sie die obigen Schritte 1, 2 und 3

Wenn der Launcher derzeit keine anderen Optionen für die Schnellliste hat, hängen Sie diese einfach an das Ende des Dokuments an

X-Ayatana-Desktop-Shortcuts=Runroot

[Runroot Shortcut Group]
Name=Run as root
Exec=gksudo -k -u root APP_COMMAND
TargetEnvironment=Unity
edm
quelle
51
Warum ist das Festlegen einer einfachen Verknüpfung so kompliziert? Was ist los mit den Machern von Ubuntu?
Sliq
7
Für den gksudoBefehl müssen Sie installierensudo apt-get install gksu
Arul
5
@Sliq heißt Sicherheit ... Ein Desktop-Icon zu haben, das als root ausgeführt wird, ohne ein Passwort zu benötigen ... ist sehr gefährlich ... Für mich ist das eigentlich die Freude von Linux ... Wenn ich ein einfaches Leben haben wollte ... Ich würde Windows als mein Hauptsystem verwenden ...
Angry 84
3
@sliq "Warum ist es so schwierig, von der cmd-Eingabeaufforderung aus zu navigieren? Was ist mit den Erstellern von Windows los?" - Schöpfer von Ubuntu ... wahrscheinlich
thenaglecode
3
veraltet für Ubuntu 18.XX Kann jemand eine aktualisierte Lösung anbieten?
JRsz
4

Geben Sie im Hauptmenü unter System, Preferences gksudoin das Feld Command der Launcher Properties Folgendes ein:

/usr/bin/gksudo /usr/bin/yourapplication

Ihr Namensfeld könnte lauten:

sudo yourapplication

Benutzer wissen also, dass sie möglicherweise ein Passwort-Popup sehen und warum ...

Ich bin mir nicht sicher, ob es Unity Launcher oder Main Menu gibt. Vielleicht hilft das?

Viel Glück

Boolship
quelle
3
Sie wissen wahrscheinlich, dass gerade sudonicht zum Ausführen von grafischen Anwendungen verwendet werden rootsollte, da Sie schließlich verwenden gksudo(was einer der guten Wege ist). Aus dem gleichen Grund ist es nicht ratsam, das Namensfeld so zu verwenden, sudowie Sie es haben, da dies (1) bei ausreichend erfahrenen Benutzern den Eindruck erweckt, dass Ihr Launcher nicht korrekt erstellt wurde, und (2) bei weniger erfahrenen Benutzern den Eindruck erweckt dass es in Ordnung ist, sudografische Anwendungen direkt als auszuführen root.
Eliah Kagan
Unable to locate package gksudo- Ubuntu 18.04.1 LTS
8bitjunkie
2

Folgendes scheint dasselbe zu tun, ohne private Attribute zu benötigen:

Actions=Runroot;Another

[Desktop Action Runroot]
Name=Run as root
Exec=gksudo -k -u root APP_COMMAND

[Desktop Action Another]
Name=Another action
Exec=whatever
Daniel
quelle
Unable to locate package gksudo- Ubuntu 18.04.1 LTS
8bitjunkie
2

Als schnelle und einfache Alternative zu den umständlichen Anforderungen, die in den Antworten hier beschrieben werden, habe ich mir angewöhnt, Folgendes zu tun ...

  1. Starten Sie ein neues Terminal.
  2. Eingeben gksu nautilus

    (Funktioniert sudo -i nautilusauch.)

Das resultierende Fenster befindet sich unter dem sudo-Dach, sodass Sie darauf zugreifen und Dateien mit sudo-root-Berechtigungen nach Herzenslust starten können, bis es geschlossen wird. Dies ist praktisch für vorübergehende Situationen, in denen Sie keine dauerhaftere Lösung benötigen. Ich verwende es routinemäßig, um komprimierte Dateien beispielsweise in geschützte Systemordner zu extrahieren.

Syndog
quelle
2
Die Verwendung sudomit grafischen Anwendungen ist keine gute Idee. Verwenden Sie gksuoder wenn Sie müssen sudo -i.
Seth
2
@Seth: Aktualisiert. Außerdem ... Eine kleine Erklärung, warum dies nicht nachlässig ist, anstatt nur kryptisch zu sagen, dass es keine gute Idee ist.
Syndog
Ein interessanter Thread zum Thema: crunchbang.org/forums/viewtopic.php?id=8468
Syndog
1

Ich poste dies als Antwort auf die Frage, die @ Chris in den Kommentaren gestellt hat:

Angenommen, Sie möchten einen Starter erstellen, der "Dateimanager (Nautilus)" als Root öffnet. Dann können Sie dies tun:

Terminal öffnen. Art:

sudo -H gedit /usr/share/applications/nautilus_root.desktop

Drücke Enter. Wenn Sie dazu aufgefordert werden, geben Sie Ihr Anmeldekennwort ein und drücken Sie die Eingabetaste. Dies öffnet gedit (Texteditor). Fügen Sie dort nun Folgendes ein:

[DesktopEntry]
Encoding=UTF-8
Name=Nautilus(Root)
Comment=FileManager
Exec=gksu nautilus
Icon=file-manager
Categories=System;
Type=Application
Terminal=0

Speichern Sie es jetzt und beenden Sie es. Du bist fertig. Wenn Sie nun nach Dash suchen, finden Sie einen neuen Launcher "Nautilus (Root)". Wenn Sie darauf klicken, werden Sie nach Ihrem Passwort gefragt. Nach der Authentifizierung wird Nautilus als root geöffnet.

Hinweis: Seien Sie vorsichtig, wenn Sie "Nautilus (Root)" ausführen. In diesem Modus können Sie fast alles löschen /und das System beschädigen.

Neugieriger Lehrling
quelle
0

Dies sollte vielleicht ein Kommentar zu Daniels Lösung sein. Es funktioniert bei mir sogar in Ubuntu 15.04. Ich musste den Befehl Exec=gksu "nautilus --new-window"wegen des zusätzlichen Arguments zwischen Anführungszeichen setzen . Irgendwie weiß ich auch nicht warum, ich musste den Launcher direkt bearbeiten, um das ursprüngliche Menü (zusammen mit der neuen Option) beizubehalten. Wenn Sie Ihren eigenen Launcher ziehen, wird dieser registriert, Sie haben jedoch nicht das gleiche Menü.

In Ubuntu 15.04 ist der Launcher für Nautilus usr/share/applications/org.gnome.Nautilus.desktop. Sie müssen die Befehlszeile verwenden, um den tatsächlichen Dateinamen anzuzeigen.

Weitere Nachforschungen haben mich zu einer meiner Meinung nach besseren Option geführt: http://ubuntuhandbook.org/index.php/2014/04/ubuntu-14-04-add-open-as-rootadministrator-to-context-menu/ . Anstatt Nautilus vollständig als Root zu öffnen, können Sie ausgewählte Verzeichnisse in Nautilus als Root öffnen. Jedenfalls habe ich überprüft, und diese beiden Optionen sind kompatibel. Wenn Sie Nautilus als Root öffnen und dann mit der zweiten Option ein Verzeichnis als Root öffnen, wird es einfach geöffnet, ohne dass Sie nach dem Kennwort gefragt werden.

Dominic108
quelle