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

Wie öffne ich eine Datei als root in TextEdit? Ich habe diese Befehle als versucht 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 sudo !!macht natürlich keinen Unterschied.

Antworten (6)

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 nach der gewünschten Datei suchen oder dies über die Befehlszeile tun:

sudo su - root -c "open -e /etc/apache2/httpd.conf"
Danke, es hat funktioniert! sudo /Applications/Textedit.app/Contents/MacOS/TextEditÖffnen Sie dann einfach die Datei von TextEdit
Wenn Sie das nicht jedes Mal eingeben möchten, können Sie einen Alias ​​erstellen, indem Sie in Terminal in Ihr Home-Verzeichnis gehen, dann pico .bash_profile, hinzufügen alias sudotext='sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"', Datei speichern und Terminal neu starten. Jetzt können Sie einfach eingeben sudotext, um TextEdit als root zu starten.
Wie andere Antworten betonten, besteht die einzige wirkliche Option, um dies in 1 Liner zu tun, darin, einen Editor eines Drittanbieters zu haben, der dies unterstützt. Dann tippen Sie einfach open -t "/etc/hosts"zB. Mit TextWrangler können Sie einfach edit /etc/hosts.
Was für eine schreckliche Benutzererfahrung! Gibt es keinen einfacheren Weg?
Warum zum Teufel haben sie es mir so schwer gemacht, Dinge zu tun, verdammt noch mal!
Nun, auf meinem Yosemite 10.10.2 sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"funktioniert das nicht :(
Selbst wenn Sie textedit als root ausführen, "Sie besitzen die Datei nicht und haben keine Berechtigung, darauf zu schreiben". Der Mac ist zu schlau für sein eigenes Wohl. Es erkennt, dass Sie nicht wirklich root sind, und weigert sich paternalistisch, Sie es bearbeiten zu lassen.
Wenn es nicht funktioniert, weil Sie eine neuere MacOS-Version haben, versuchen Sie Folgendes:sudo -b "/System/Applications/TextEdit.app/Contents/MacOS/TextEdit"

BBEdit ist das kostenlose Tool dafür im Jahr 2019 und ersetzt alle Funktionen von TextErangler und Sie können es aus dem App Store und der Entwickler-Website herunterladen.


TextEdit ist nicht wirklich das richtige Werkzeug zum Bearbeiten von Konfigurationsdateien – verwenden Sie stattdessen TextWrangler . Es ist kostenlos, hat eine integrierte Funktion zum Bearbeiten von Dateien mit Root-Zugriff von einem Administratorkonto aus sowie Dinge wie das Öffnen unsichtbarer Dateien und Verzeichnisse, das einfache Bearbeiten von Dateien über SFTP usw.

emacshat auch einen schönen farbcodierten Konf-Modus.
Dies scheint bei mir in Mountain Lion nicht zu funktionieren. Ich erhalte eine Fehlermeldung, wenn ich versuche, Systemkonfigurationsdateien in TextWrangler zu speichern. Hat sich das geändert?
@Simon: Klingt so, als hätten Sie die Version von TextWrangler aus dem App Store und nicht den direkten Download von barebones.com . Wenn dies der Fall ist, wurden mehrere Funktionen (einschließlich dieser) entfernt, um den Sicherheitsrichtlinien des App Store zu entsprechen. also verwerfen Sie es und holen Sie sich stattdessen die direkte Version!
Was ist, wenn Sie auf einem fremden Mac ohne Internet sind? Die akzeptierte Lösung mit 2 Hacking-Terminals ist immer noch besser . Aber für den praktischen Alltagsgebrauch gehe ich den ganzen Weg mit Drittanbietern! :-)

Hier ist eine Möglichkeit, TextEdit nicht als root auszuführen:

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

Sie müssen die Kopie von TextEdit beenden, nachdem Sie die Datei bearbeitet haben.

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

Die Optionen zu open: -Wwartet auf das Beenden von TextEdit, sudoweiß also, wann die Datei zurückkopiert werden muss. -nstellt sicher, dass es auf eine separate Instanz von TextEdit wartet, nicht auf eine, die Sie bereits geöffnet haben und die Sie möglicherweise nicht beenden möchten. Sie können auch ersetzen -t, -ewenn Sie einen anderen bevorzugten Texteditor als TextEdit haben.

Wenn Sie bereits einen EDITORVariablensatz haben, um einen grafischen Editor mit eigenem wartefähigen Befehlszeilentool (z. B. TextMate oder BBEdit) zu verwenden, benötigen Sie keinen dieser Tricks und können ihn einfach sudo -e <file>direkt verwenden.

Da der Root-Benutzer deaktiviert ist, besteht die einzige Möglichkeit, einer beliebigen OS X-App Root-Berechtigungen zu erzwingen, darin, Root zu aktivieren und sich als Root anzumelden.

Apps können die API natürlich verwenden, um das System zur Authentifizierung aufzufordern und den erwarteten Dialog anzuzeigen, wenn Sie nach einem Administratorbenutzer und -passwort gefragt werden. TextEdit hat diese Funktion nicht, daher müssen Sie die Dateiberechtigungen umgehen, bevor und nachdem Sie die gewünschten Dateien öffnen und schreiben.

Hast du versucht mit sudo open -a texteditdie App zu öffnen?

Haben Sie Vorschläge zu Apps, die diese Funktion haben? Am liebsten kostenlos :)
Das ist nicht ganz richtig. In Terminal.app führe ich sudo su -eine Shell als root aus und kann sie dann open "/Applications/Textedit.app/Contents/MacOS/TextEdit"erfolgreich ausführen. Ich habe weder den Root-Benutzer aktiviert, noch habe ich mich als Root-Benutzer angemeldet.
sudo chmod +w name_of_the_file
sudo open -a TextEdit name_of_the_file
sudo chmod -w name_of_the_file

Sollte arbeiten

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.
Die Dinge haben sich in Lion geändert, ich denke, es ist das Sandboxing
Der Punkt ist, dass die Datei, die Sie zu öffnen versuchen, aufgrund ihrer Berechtigung nicht für Root beschreibbar ist. Es wäre dasselbe für eine Ihrer Dateien (eigentlich ist es dasselbe, außer der Tatsache, dass TextEdit für Benutzerdateien "intelligent" ist, also ändert es die Berechtigung, indem es Sie fragt).
@Gio In der Tat liegt es an Lions Sandboxing: /etc/apache2/httpd.confhas default permissions 0444. Ich habe den ganzen Morgen versucht, diese Datei (mit emacsRemote) zu bearbeiten, aber nie daran gedacht, die (neuen Lion-) Berechtigungen zu überprüfen.
sudo nano /etc/hosts 

arbeitet für Lion

Die Frage bezieht sich auf TextEdit, nicht auf Nano.