Schreibschutz einer Datei unter Linux
Wer kennt es nicht? System config, application config oder was auch immer. Das ändern oder gar Löschen dieser Datei soll nicht möglich sein! Daher die Frage: Wie kann ich eine Datei unter Linux mit einem Schreibschutz versehen?
Unter Linux fallen mir da zwei einfache Möglichkeiten wie man eine Datei vor änderungen schützen kann.
Variante 1: Man kann eine Datei schreibgeschützt machen, indem Sie den Benutzern die Schreibberechtigung für diese Datei entziehen. Unter Linux und UNIX kann ein Benutzer eine Datei nur dann ändern, wenn er Schreibberechtigung hat. Zu diesem Zweck können Sie den normalen chmod-Befehl verwenden.
Variante 2: Mit chattr
die Dateiattribute der zu schützenden Datei mit i versehen. Dies funktioniert jedoch nur auf ext2-, ext3- und ext4-Dateisystemen. Die Bedeutung vom Attribut i
lautet:
Dateien mit diesem Attribut können nicht verändert werden. Sie können nicht gelöscht oder modifiziert werden und man kann keinen harten Link (Hardlink) auf die Datei erstellen. Symbolische Links (Softlinks) sind weiterhin möglich. Dieses Attribut kann nur mit Root-Rechten gesetzt und entfernt werden.
Nehmen wir an, Sie möchten die Datei application.properties
mit einem Schreibschutz versehen, so dass kein Benutzer (incl root) sie ändern kann. Dafür führen wir folgendes Kommando als root aus.
chattr +i application.properties
Um den Schreibschutz wieder zu entfernen
chattr -i application.properties
Wenn wir uns nun die aktuellen Attribute ansehen möchten:
lsattr application.properties