Wie öffne ich eine Datei als root in TextEdit on Lion?

13

Wie öffne ich eine Datei als root in TextEdit? Ich habe diese Befehle als ausprobiert root, aber TextEdit sagt immer, dass es gesperrt ist:

open -e /etc/apache2/httpd.conf
open -e -F /etc/apache2/httpd.conf
open -e -F -W /etc/apache2/httpd.conf

Und das sudo !!macht natürlich keinen Unterschied.

Znarkus
quelle

Antworten:

14

Sie können eine textedit-Instanz als root öffnen, indem Sie den vollständigen Pfad zur eigentlichen ausführbaren Datei eingeben:

sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"

Sobald Ihre Root-Instanz geöffnet ist, können Sie zu der gewünschten Datei navigieren oder dies über die Befehlszeile tun:

sudo su - root -c "open -e /etc/apache2/httpd.conf"
Tyr
quelle
Danke, es hat funktioniert! sudo /Applications/Textedit.app/Contents/MacOS/TextEditdann öffnen Sie einfach die Datei von TextEdit
Znarkus
Wenn Sie dies nicht jedes Mal eingeben möchten, wenn Sie einen Alias ​​erstellen möchten, indem Sie in Ihr Ausgangsverzeichnis in Terminal wechseln pico .bash_profile, fügen Sie eine alias sudotext='sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"'Datei hinzu , speichern Sie sie und starten Sie Terminal neu. Jetzt können Sie einfach eingeben sudotext, um TextEdit als root zu starten.
Webbiedave
Wie in anderen Antworten darauf hingewiesen wurde, besteht die einzige echte Option darin, einen Drittanbieter-Editor zu haben, der dies unterstützt. Dann tippen Sie einfach open -t "/etc/hosts"zum Beispiel. Mit TextWrangler können Sie einfach tippen edit /etc/hosts.
Cregox
2
Was für eine schreckliche Benutzererfahrung! Gibt es nicht einen einfacheren Weg?
Marc
2
Nun, auf meinem Yosemite 10.10.2 funktioniert das sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"nicht :(
Henrique de Sousa
8

BBEdit ist das kostenlose Tool, das dies im Jahr 2019 ermöglicht. Es ersetzt alle Funktionen von TextErangler und kann im App Store und auf der Entwickler-Website heruntergeladen werden.


TextEdit ist nicht wirklich das richtige Tool zum Bearbeiten von Konfigurationsdateien - verwenden Sie stattdessen TextWrangler . Es ist kostenlos und verfügt über eine integrierte Funktion zum Bearbeiten von Dateien mit Root-Zugriff über ein Administratorkonto sowie zum Öffnen unsichtbarer Dateien und Verzeichnisse, mit der sich Dateien problemlos über SFTP bearbeiten lassen.

Gordon Davisson
quelle
emacshat auch einen schönen farbcodierten Conf-Modus.
msanford
Dies scheint bei mir in Mountain Lion nicht zu funktionieren. Beim Versuch, Systemkonfigurationsdateien in TextWrangler zu speichern, wird eine Fehlermeldung angezeigt. Hat sich das geändert?
Simon East
@Simon: Klingt so, als hätten Sie die Version von TextWrangler aus dem App Store und nicht den direkten Download von barebones.com . In diesem Fall wurden mehrere Funktionen (einschließlich dieser) entfernt, um den Sicherheitsrichtlinien des App Store zu entsprechen. also lass es fallen und hol dir stattdessen die direkte Version!
Gordon Davisson
Was ist, wenn Sie auf einem fremden Mac ohne Internet arbeiten? Die 2-Hacking-Terminal-Linien akzeptierte Lösung ist im Allgemeinen noch besser. Aber für den praktischen Alltag gehe ich mit Dritten den ganzen Weg! :-)
cregox
6

So vermeiden Sie, dass TextEdit als root ausgeführt wird:

EDITOR='open -Wne' sudo -e /etc/apache2/httpd.conf

Sie müssen die Kopie von TextEdit nach dem Bearbeiten der Datei beenden.

sudo -e, manchmal als, sudoeditaber nicht unter OS X bekannt, erstellt eine temporäre Kopie der Datei mit Schreibberechtigung für den aktuellen Benutzer, ruft einen Editor auf die übliche Unix-Weise auf und kopiert sie dann zurück.

Die folgenden Optionen stehen zur Verfügung open: -WWartet auf das Beenden von TextEdit, damit Sie sudowissen, wann Sie die Datei zurückkopieren müssen. -nStellt sicher, dass es auf eine separate Instanz von TextEdit wartet, die noch nicht geöffnet ist und die Sie möglicherweise nicht beenden möchten. Sie können auch ersetzen, -tanstatt -eeinen anderen bevorzugten Texteditor als TextEdit zu verwenden.

Wenn Sie bereits eine EDITORVariable für die Verwendung eines Grafikeditors mit einem eigenen wartefähigen Befehlszeilentool (z. B. TextMate oder BBEdit) festgelegt haben, benötigen Sie keine dieser Tricks und können sie direkt verwenden sudo -e <file>.

Kevin Reid
quelle
2

Da der Root-Benutzer deaktiviert ist, besteht die einzige Möglichkeit, eine beliebige OS X-App zu erzwingen, über Root-Berechtigungen zu verfügen, darin, Root zu aktivieren und sich als Root anzumelden.

Apps können natürlich API verwenden, um das System nach der Authentifizierung zu fragen und das Dialogfeld zu öffnen, das Sie erwarten, wenn Sie nach einem Administratorbenutzer und einem Kennwort gefragt werden. TextEdit verfügt nicht über diese Funktion, daher müssen Sie die Dateiberechtigungen umgehen, bevor und nachdem Sie die gewünschten Dateien öffnen und schreiben.

Haben Sie versucht sudo open -a textedit, die App mit zu öffnen?

bmike
quelle
Haben Sie Vorschläge zu Apps mit dieser Funktionalität? Vorzugsweise kostenlos :)
Znarkus
3
Das ist nicht ganz richtig. In Terminal.app starte ich sudo su -eine Shell als root und kann sie dann open "/Applications/Textedit.app/Contents/MacOS/TextEdit"erfolgreich ausführen . Ich habe weder den Root-Benutzer aktiviert noch mich als Root-Benutzer angemeldet.
EmmEff
1
sudo chmod +w name_of_the_file
sudo open -a TextEdit name_of_the_file
sudo chmod -w name_of_the_file

Sollte arbeiten

Gio
quelle
Okay, es ist also nicht möglich, TextEdit als root zu starten? Ich möchte wirklich den zusätzlichen Aufwand vermeiden, Berechtigungen hin und her zu ändern.
Znarkus
1
Die Dinge haben sich in Lion geändert, ich denke, es ist der Sandkasten
Paul Eccles
Der Punkt ist, dass die Datei, die Sie öffnen möchten, aufgrund ihrer Erlaubnis nicht in root geschrieben werden kann. Es wäre das gleiche für eine von Ihnen Dateien (eigentlich ist es das gleiche, mit Ausnahme der Tatsache , dass TextEdit „intelligent“ für Benutzerdateien ist, so es die Erlaubnis ändert , indem Sie gefragt werden ).
Gio
@Gio In der Tat liegt es an Lion's Sandboxing: Hat /etc/apache2/httpd.confStandardberechtigungen 0444. Ich habe den ganzen Morgen versucht, diese Datei (über emacsFernzugriff) zu bearbeiten, habe aber nie daran gedacht, die (neuen Lion-) Berechtigungen zu überprüfen.
msanford
-5
sudo nano /etc/hosts 

arbeitet für Lion

Bektur
quelle
2
Die Frage ist über TextEdit, nicht Nano.
Gosmond