Gibt es eine einfachere oder 'korrektere' Möglichkeit, gedit als root zu öffnen?

19

Ich habe Ubuntu 12.04 in einer virtuellen Maschine auf virtuellen Box ausgeführt. Seine Existenz ist hauptsächlich ein "Spielzeug", um mit Ubuntu herumzuspielen. Aus diesem Grund wollte ich die GUI (ist das, was "Dash" in Ubuntu 12.04 ist? Wie auch immer ...)

Eine Sache, für die ich dieses Gerät derzeit benutze, ist ein LAMP-Server. Ich benutze 'gedit', um meine Dateien zu bearbeiten, aber da ich die Berechtigungen noch nicht richtig festgelegt habe, öffne ich sie einfach mit sudo im Terminal.

Um diesen Prozess zu vereinfachen, habe ich gerade ein Shell-Skript auf dem Desktop mit einem sehr einfachen Job erstellt - sudo gedit

Ich kann nicht anders als zu denken, dass es eine noch offensichtlichere Möglichkeit geben muss, gedit als root über die GUI zu öffnen. Also ist da?

Bearbeiten: Ich habe gerade mein Skript 'verbessert', indem ich sudo durch gksudo ersetzt habe. Jetzt muss kein Terminalfenster mehr geöffnet sein, solange gedit geöffnet ist. Ich denke, das ist im Moment recht praktisch :) Es wäre gut zu wissen, ob dies in etwa dem entspricht, was erfahrene Ubuntu-Benutzer tun würden.

MrVimes
quelle
2
Ja, gksudo(oder besser bekannt als gksu) das, was die meisten Leute benutzen. Viel Lesematerial: askubuntu.com/questions/270006/… askubuntu.com/questions/197772/… askubuntu.com/questions/284306/… askubuntu.com/questions/11760/…
Seth
2
Seth, wären Sie bereit, Ihre Antwort als Antwort zu veröffentlichen? Das sieht geklärt aus.
Travis G.
"Jetzt muss kein Terminalfenster mehr geöffnet sein, solange gedit geöffnet ist." <- Möglicherweise wissen Sie bereits davon, aber wenn Sie wie hier gezeigt& einen Befehl anhängen , können Sie das Terminalfenster des Shell-Skripts sofort schließen, wenn es gestartet wird, anstatt darauf zu warten, dass es geschlossen wird. Dieser Trick sollte ohne Probleme funktionieren. geditgksudo
IQAndreas

Antworten:

19

Verwenden Sie gksudo gedit.

gksudoist das Äquivalent zu sudofür grafische Programme, deren Ausführung nicht sicher ist sudo.

Taymon
quelle
4
Problem ist, gksuist nicht mehr standardmäßig in Ubuntu 13.04 installiert. Ich würde wirklich gerne eine Antwort für diejenigen am 13.04+ sehen. Die vorgeschlagene Alternative ist pkexec, aber es funktioniert einfach nicht = /.
Alaa Ali
1
@Alaa Aber es befindet sich immer noch im Repository, daher sudo apt-get install gksusollte es für Sie schnell installiert werden.
IQAndreas
Wenn Sie eine Erklärung wünschen, warum die Verwendung nicht empfohlen wird sudo: Was ist der Unterschied zwischen „gksudo nautilus“ und „sudo nautilus“?
IQAndreas
4
@IQAndreas, ich weiß, dass es in den Repositories ist, aber es ist einfach unpraktisch, wenn ich einem neuen Benutzer antworte und möchte, dass er eine Datei als root bearbeitet und ihm "first, run sudo apt-get install gksu" sagt . Im Moment ist es ein Dilemma, zumindest für mich. Ich kann ihm nicht sagen, dass er es "benutzen pkexec" soll, weil es nicht funktioniert und es zu riskant ist, es sudo -idann zu benutzen gedit. Außerdem kenne ich den Unterschied zwischen gksudound sudo=), mit dem Sie mich möglicherweise verknüpft haben: Warum wird gksu in 13.04 nicht mehr standardmäßig installiert? .
Alaa Ali
@Alaa Gültiger Punkt bezüglich apt-get. Eigentlich war mein zweiter Kommentar (der mit dem Link) auf die Antwort gerichtet, die Sie gegeben haben, und nicht auf eine Fortsetzung der Diskussion in den Kommentaren (ich dachte, das Poster möchte vielleicht wissen, warum es "nicht sicher ist, mit" zu laufen sudo ").
IQAndreas
7

Ich stelle fest gedit, dass ich ziemlich häufig als Root ausgeführt werde, daher habe ich die Option zum Kontextmenü in Unity hinzugefügt (sie verwendet denselben Befehl wie die ausgewählte Antwort gksu gedit).

Sie müssen eine *.desktopDatei bearbeiten , um die Menüoption hinzuzufügen, und Sie haben zwei Möglichkeiten:

  • /usr/share/applications/gedit.desktop (Zum Bearbeiten ist Root-Zugriff erforderlich.) - Die Menüoption wird für alle Benutzer hinzugefügt . Beachten Sie, dass Sie diese Datei möglicherweise erneut bearbeiten müssen, indem Sie die Option hinzufügen, wenn eine Aktualisierung von gedit auftritt, bei der Ihre Änderungen überschrieben werden.
  • ~/.local/share/applications/gedit.desktop (Wenn Sie es dort nicht finden können, erstellen Sie ein Duplikat des in gefundenen /usr/share/applications/und speichern Sie es an diesem neuen Speicherort.) - Die Menüoption ist nur für den angegebenen Benutzer verfügbar und wird als "bewährte Methode" angesehen. Beachten Sie, dass Sie, wenn Sie es bereits an Ihre Unity-Leiste angedockt haben, Ihr Unlock from Launchervorhandenes GEdit-Symbol auswählen und dann Ihre "benutzerdefinierte" Version erneut hinzufügen müssen. Diese Änderungen sollten auch dann erhalten bleiben, wenn GEdit ein Update erhält.

Bearbeiten Sie die Textdatei gedit.desktop, indem Sie den folgenden Codeblock hinzufügen (Sie können die beiden vorhandenen Blöcke als Vorlage verwenden):

[Desktop Action RootWindow]
Name=Open a Root Window
Exec=gksu gedit
OnlyShowIn=Unity;

Fügen Sie als Nächstes die neue Aktion zur Liste hinzu (sollte sich in etwa in Zeile 19 der Textdatei befinden):

Actions=Window;Document;RootWindow;

Wenn Sie nun mit der rechten Maustaste auf das Texteditorfenster in Unity klicken, wird diese praktische neue Option angezeigt:

Ubuntu Unity: Öffnen Sie Gedit als Root

IQAndreas
quelle
Ich habe auch das gleiche Setup zum Öffnen des Dateimanagers als root, der läuft gksu nautilus.
IQAndreas
2

gksudo geditarbeitet in 16.04 LTS, aber in 17.10 mit Wayland gksudofunktioniert nicht.

Sudodus
quelle
2

Verwenden Sie admin://vor dem Dateinamen, der die Standard-GUI-Passwortabfrage für Ihre jeweilige WM / Shell aufruft.

Wenn Sie also beispielsweise Ihre Repos bearbeiten sudo gedit /etc/apt/sources.listmöchten , geben Sie anstelle der Eingabe Folgendes ein gedit admin:///etc/apt/sources.list. Es funktioniert grundsätzlich für alle GUI-Programme, nicht nur für Gedit.

Brandon Giesing
quelle
Diese Antwort ist der richtige Weg, um es jetzt zu tun. Die akzeptierte Antwort war für frühere Versionen von Ubuntu korrekt (vor 17.04, glaube ich).
PJ Singh
0

Sie können Nautilus als root öffnen. gksu nautilusJetzt wird jede Textdatei, die Sie in diesem Fenster öffnen, in Gedit als root geöffnet.

user154126
quelle
@ DavidFoerster nicht ganz, imo :-)
guntbert
0

gksudoist anscheinend auf neueren Ubuntu-Versionen nicht verfügbar und hat gksubei mir nicht funktioniert, aber diese Antwort war in meinem Fall sehr hilfreich (Ubuntu 17.04).

Verwenden visudoSie diese Option, um Ihrer sudo-Konfigurationsdatei die folgende Zeile hinzuzufügen:

Defaults env_keep="XAUTHORIZATION XAUTHORITY TZ PS2 PS1 PATH LS_COLORS KRB5CCNAME HOSTNAME HOME DISPLAY COLORS"`
jtpereyda
quelle
0

EDITOR=gedit sudo -e ist empfohlen.

Funicorn
quelle