Warum kann ich meine `hosts`-Datei nicht bearbeiten?

Ich versuche, meine Hosts-Datei zu bearbeiten, da dies ssh <some host in hosts>nicht in IP übersetzt werden kann.

laut Finder UI ist es zu finden unter:

Geben Sie hier die Bildbeschreibung eincat hostsBeim Versuch, vom Terminal aus zu starten, erhalte ich jedoch eine Fehlermeldung:

➜  /etc  cat hosts
cat: hosts: No such file or directory

Ich habe versucht, eine neue Hosts-Datei zu erstellen, aber dann sehe ich, dass neben der ersten eine weitere erstellt wird

Geben Sie hier die Bildbeschreibung ein

aber wenn ich versuche, die zweite zu bearbeiten, hostsmuss ich sie an ein anderes Ziel duplizieren. Ich kopiere es nach /etcund wieder tritt das erste Problem auf.

Ich habe versucht, die Berechtigungen so zu ändern, dass jeder lesen und schreiben kann. Aber es half trotzdem nichts.

Antworten (5)

Es sollte keine Möglichkeit geben, zwei identisch benannte Dateien im Ordner /etc zu haben. Können Sie eine Get-Info für das Original durchführen und den Namen und die Erweiterung überprüfen (und dass die Erweiterung nicht ausgeblendet ist und dass am Ende des Namens keine Leerzeichen stehen)?

jemand warhosts.txt
Das kann passieren, wenn Sie die Datei in TextEdit (oder einer ähnlichen App) von Grund auf neu erstellen und sie einfach im Ordner / etc / speichern und nicht besonders auf die Erweiterung sowie die Option "Erweiterung ausblenden" achten.

Normalerweise darf nur der Root-Benutzer die Datei ändern hosts.

Führen Sie dazu die folgenden Schritte aus, um Ihre Hosts-Datei oder Ihren /etc-Ordner zu reparieren (je nachdem, wo Sie Ihre Lese-/Schreibberechtigungen angewendet haben):

  1. Werfen Sie Ihre neu erstellte hostsDatei weg (aber nicht die alte!)
  2. Reparieren Sie Ihre Berechtigungen mit Disk Utility.Geben Sie hier die Bildbeschreibung ein
  3. Terminal öffnen und eingeben sudo nano /etc/hostsund drücken
  4. Geben Sie Ihr Passwort ein (es wird nicht angezeigt!) und klicken Sie auf
    Die Standard-Hosts-Datei in Yosemite sieht so aus:nano
  5. Bearbeiten Sie Ihre hostsDatei.
    Das Format für jede Zeile ist die IP-Adresse, dann ein Tabulator oder ein einzelnes Leerzeichen und der/die Hostname(n). Schließen Sie die Datei mit einer leeren abschließenden Zeile ab.
  6. schreiben Sie die Änderungen mit ctrlOgefolgt von auf die Festplatte und beenden Sie nano mitctrlx
  7. Geben Sie ein exit, drücken Sie und beenden SieTerminal.app

Alternativ zu den Schritten 3-7 können Sie hosts.prefpane herunterladen und installieren und dort Ihre zusätzlichen Hosts eintragen.

Ändern Sie einfach, was Sie am Duplikat ändern möchten, und ersetzen Sie dann die alte hostsDatei.

Der beste Weg, den ich gefunden habe, um die Host-Einstellungen zu ändern, ist:

1) Erstellen Sie ein Duplikat (was Sie bereits getan haben)

2) Verschieben Sie das Duplikat an einen neuen Ort, z. B. den Desktop

3) Erstellen Sie ein weiteres Duplikat auf dem Desktop und benennen Sie es in "hosts ORIGINAL" um, damit Sie wissen, dass es sich um die ursprüngliche Hosts-Datei handelt, falls Sie zurückkehren müssen.

4) Nehmen Sie die Änderungen an "Hosts" auf dem Desktop vor und speichern Sie sie.

5) Löschen Sie die Datei „hosts“ in /etc oder benennen Sie sie in „hosts OLD“ um.

6) Ziehen Sie "hosts" vom Desktop nach /etc. (Sie werden möglicherweise nach Admin-Anmeldeinformationen gefragt)

Ich bin auf dieses Problem in Yosemite 10.10.3 gestoßen. Ich konnte die Lösung nicht finden, bis ich anfing, um die Ecke zu denken.

Die meisten Leute wissen es nicht, aber standardmäßig sind die Berechtigungen für den Ordner „/private/etc“ und die Datei „/private/etc/hosts“ auf „schreibgeschützt“ gesetzt. Wenn Sie also nur die Zugriffsrechte der „hosts“-Datei auf „lesen und schreiben“ ändern, können Sie sie immer noch nicht in TextEdit bearbeiten. Die Datei „hosts“ ist aufgrund des Ordners „/private/etc“ gesperrt. Der Trick besteht darin, dass Sie sowohl die Berechtigungen des Ordners „/private/etc“ als auch der Datei „/private/etc/hosts“ ändern müssen.

sudo chmod 777 /private/etc;chmod 777 /private/etc/hosts;open -t /private/etc/hosts

Ob Bug oder nicht, ist mir egal!

Sie benötigen keine Schreibberechtigungen für den enthaltenden Ordner, um den Inhalt einer Datei zu ändern. So funktioniert das Unix-Berechtigungssystem nicht.
@JensErat Sie benötigen keine Schreibberechtigungen, um eine Datei an Ort und Stelle zu bearbeiten. Aber einige GUI-Editoren schreiben in eine temporäre Datei im selben Ordner, und wenn das funktioniert, löschen sie die alte Datei und benennen neu in alt um. Dieser Prozess erfordert einen Write-to-Parent-Ordner.