Linux chattr Command Tutorial für Anfänger (5 Beispiele)

Oftmals wird ein Linux-Rechner von verschiedenen Benutzern verwendet. Es besteht also die Möglichkeit, dass diese Benutzer auf einen gemeinsamen Satz von Dateien zugreifen. Dies öffnet die Tür für Probleme wie das versehentliche Löschen oder Bearbeiten wichtiger Dateien, was Sie als Administrator definitiv nicht wünschen würden.

Glücklicherweise gibt es einen Befehl – Chattr genannt -, der entwickelt wurde, um dir in genau diesen Szenarien zu helfen. In diesem Tutorial werden wir dieses Tool anhand einiger leicht verständlicher Beispiele diskutieren. Aber bevor wir das tun, ist es erwähnenswert, dass alle Beispiele hier auf Ubuntu 16.04 LTS getestet wurden.

Linux chattr Befehl

Grundsätzlich wird der Befehl chattr verwendet, um Dateiattribute auf einem Linux-Dateisystem zu ändern. Folgendes ist seine Syntax:

chattr [ -RVf ] [ -v version ] [ mode ] files...

Und hier ist, was die Manualseite darüber sagt:

       chattr changes the file attributes on a Linux file system.

The format of a symbolic mode is +-=[aAcCdDeijsStTu].

The  operator  ‚+‘  causes  the  selected attributes to be added to the
existing attributes of the files; ‚-‚ causes them to  be  removed;  and
‚=‘ causes them to be the only attributes that the files have.

The  letters  ‚aAcCdDeijsStTu‘ select the new attributes for the files:
append only (a), no atime updates (A), compressed (c), no copy on write
(C), no dump (d), synchronous directory updates (D), extent format (e),
immutable (i), data journalling (j), secure deletion  (s),  synchronous
updates  (S),  no tail-merging (t), top of directory hierarchy (T), and
undeletable (u).

The following attributes are read-only, and may be listed by  lsattr(1)
but  not  modified  by  chattr:  compression  error (E), huge file (h),
indexed directory (I), inline data (N), compression raw access (X), and
compressed dirty file (Z).

Not  all  flags  are supported or utilized by all filesystems; refer to
filesystem-specific man pages such as btrfs(5), ext4(5), and xfs(5) for
more filesystem-specific details.

Nachfolgend finden Sie einige Beispiele im Q&A-Stil, die Ihnen eine gute Vorstellung davon vermitteln sollen, wie der Befehl chattr funktioniert.

Q1. Wie kann man den Befehl chattr verwenden?

Angenommen, Sie möchten eine Datei schreibgeschützt machen. Alles, was Sie also tun müssen, ist, den Befehl chattr mit der Option +i und dem Namen der Datei als Eingabe auszuführen.

Zum Beispiel:

chattr +i test.txt

Der folgende Screenshot zeigt, dass kein anderer Vorgang in der Datei erfolgreich war, nachdem sie mit chattr schreibgeschützt wurde.

Wie man den Befehl chattr verwendet

Hinweis: Wie du bereits bemerkt hast, benötigst du root-Rechte, um den Befehl chattr zu verwenden.

Q2. Wie kann man die von chattr auferlegte Lesebeschränkung aufheben?

Das ist einfach – alles, was Sie tun müssen, ist, die Option -i anstelle von +i zu verwenden. Zum Beispiel:

chattr -i test.txt

So entfernen Sie die von chattr auferlegte Lesebeschränkung

Sie können also sehen, dass der schreibgeschützte Faktor mit der Option -i entfernt wurde.

Q3. Wie kann man einer Datei die Berechtigung nur für Anhänge erteilen?

Manchmal möchten Sie vielleicht keine vollständige Einschränkung für eine Datei. Was ich meine, ist, dass Sie den Benutzern möglicherweise nur den zusätzlichen Zugriff auf eine Datei ermöglichen möchten, so dass neue Informationen hinzugefügt werden können, bestehende Informationen jedoch nicht gelöscht oder bearbeitet werden können. Dies ist auch mit chattr über die Option +a möglich.

chattr +a test.txt

Wie man einer Datei die Berechtigung nur mit Anhängen erteilt.

So können Sie sehen, dass wir jetzt an die Datei anhängen konnten, aber nicht bestehende Informationen in der Datei bearbeiten und die Datei löschen konnten. Um dieses Verhalten umzukehren, verwenden Sie einfach die Option -a.

chattr -a test.txt

Q4. Wie kann man eine Einschränkung mit chattr auf alle Dateien in einem Verzeichnis anwenden?

Dies kann mit dem Flag -R geschehen, mit dem Sie die Attribute von Verzeichnissen und deren Inhalt rekursiv ändern können. Wenn Sie beispielsweise alle Dateien im Verzeichnis test-dir schreibgeschützt anlegen möchten, verwenden Sie den Befehl chattr wie folgt:

chattr -R +i ./test-dir/

Der folgende Screenshot zeigt, dass die schreibgeschützte Einschränkung auf alle Dateien im Verzeichnis erfolgreich angewendet wurde.

Wie man eine Einschränkung mit chattr auf alle Dateien in einem Verzeichnis anwendet

Q5. Wie kann man die Chattr-Attribute überprüfen, die auf Dateien angewendet werden?

Um zu überprüfen, ob ein chattr-Attribut erfolgreich angewendet wurde, haben wir bisher versucht, Operationen wie das Bearbeiten oder Löschen der Datei durchzuführen. Es gibt jedoch einen separaten Befehl, mit dem Sie leicht erkennen können, ob die Attribute angewendet wurden oder nicht. Der betreffende Befehl lautet lsattr.

lsattr [FILENAME]

Der folgende Screenshot zeigt beispielsweise die Ausgabe von lsattr, was deutlich darauf hindeutet, dass das Attribut’i‘ auf alle Dateien im Verzeichnis angewendet wurde.

Wie man Chattr-Attribute überprüft, die auf Dateien angewendet werden

Nur zur Bestätigung, hier ist die Ausgabe nach der Verwendung der Option -i.

Ausgabe nach Verwendung der Option -i

Wie Sie im obigen Screenshot sehen können, wurde das schreibgeschützte Attribut aus allen Dateien entfernt.

Fazit

Sie werden wahrscheinlich zustimmen, dass chattr ein unverzichtbares Kommandozeilenwerkzeug ist, wenn Sie ein Systemadministrator sind oder Benutzer auf einem Linux-Rechner im Allgemeinen verwalten. Die effektive Verwendung des Befehls kann Ihnen eine Menge Ärger ersparen. Dieser Artikel sollte ausreichen, um Sie mit dem Befehl zu beginnen. Sobald du die Beispiele geübt hast, die wir hier besprochen haben, gehe auf die Man Page des Tools, um mehr darüber zu erfahren.

Das könnte dich auch interessieren …