Fehler „Operation not permitted“ beim Bearbeiten von resolv.conf. Eine Lösung.
Einige von uns haben sicher schon mal versucht, manuell DNS-Server auf einem Linux-System zu setzen – zum Beispiel in der Datei /etc/resolv.conf
. Das klingt erstmal einfach: reinschreiben, speichern, fertig. Doch manchmal weigert sich das System einfach. Du änderst die Datei – aber du bekommst beim Speichern eine Fehlermeldung.
operation not permitted

Ich hatte kürzlich genau so einen Fall. Und die Lösung war einfacher, als ich zuerst dachte – aber eben nicht offensichtlich.
🧱 Das Problem: resolv.conf lässt sich nicht schreiben
Ich wollte einen eigenen DNS-Server konfigurieren und dafür einfach search
und nameserver
-Einträge in /etc/resolv.conf
setzen. Doch egal, was ich tat:
Die Datei blieb stur – keine Änderung möglich.
Ein Neustart von systemd-resolved
, neue Symlinks, alles ausprobiert. Nichts hat geholfen.
Bis ich mal einen Blick auf die Dateiattribute geworfen habe.
🕵️♂️ Schreibschutz durch chattr
Was viele nicht wissen: Unter Linux kann man Dateien auf eine Art schützen, die selbst Root ausbremst.
Der Befehl chattr
kann Dateien „immutable“ machen – also unveränderlich. Und genau das war hier passiert.
Ein kurzer Blick mit:
lsattr /etc/resolv.conf
hat’s gezeigt:
----i--------e-- /etc/resolv.conf
Das kleine i
steht für „immutable“. Bedeutet: selbst mit Root-Rechten lässt sich die Datei nicht ändern.
🛡️ Warum ist /etc/resolv.conf überhaupt geschützt?
In modernen Linux-Systemen wird die Datei /etc/resolv.conf
oft nicht mehr direkt vom Benutzer, sondern automatisch durch Dienste verwaltet. Typische Beispiele sind systemd-resolved
, NetworkManager oder andere Netzwerkverwaltungstools. Diese Programme sorgen dafür, dass die DNS-Konfiguration dynamisch angepasst wird – etwa wenn sich dein Netzwerk ändert (z. B. bei einem Wechsel ins WLAN oder bei neuen DHCP-Informationen). Damit diese automatischen Mechanismen nicht durch manuelle Änderungen durcheinandergebracht werden, wird /etc/resolv.conf
manchmal zusätzlich über chattr +i
als immutable markiert. So bleibt die Datei vor unbeabsichtigten oder unerwünschten Änderungen geschützt und das System kann sicherstellen, dass DNS-Einstellungen konsistent bleiben.
🔓 Die Lösung: Schreibschutz entfernen
Die Lösung war einfach – aber sie muss einem erstmal einfallen:
sudo chattr -i /etc/resolv.conf
Danach konnte ich die Datei ganz normal bearbeiten, z. B.:
sudo nano /etc/resolv.conf
und z. B. folgende DNS-Server setzen:
search domain.cloud nameserver 192.168.85.1 nameserver 1.1.1.1
Speichern – fertig! Seitdem funktionieren DNS-Anfragen wie gewünscht.
💬 Fazit
Wenn du also das nächste Mal verzweifelst, weil /etc/resolv.conf
sich einfach nicht ändern lässt:
Schau dir die Dateiattribute an. Es könnte sein, dass chattr +i
der stille Verhinderer im Hintergrund ist.
Das ist kein häufiger Stolperstein – aber einer, der viel Zeit kosten kann, wenn man ihn nicht kennt.
👥 Techniverse Community
Matrix, Selfhosting, smarte IT-Lösungen und jede Menge Nerd-Talk – das findest du in der Techniverse Community.
Komm vorbei, tausch dich aus und werde ein Teil von uns.
👉 Unsere Gruppe auf Matrix: #community:techniverse.net
Wir freuen uns auf dich!