Heim > Artikel > Betrieb und Instandhaltung > Was ist der chattr-Befehl unter Linux? Verwendung (Codebeispiel)
Wir wissen, dass Linux ein Mehrbenutzer-Betriebssystem ist und Benutzer Dateien löschen können, die einem anderen Benutzer sehr am Herzen liegen, beispielsweise dem Administrator. Um diese Situation zu vermeiden, bietet Linux den Befehl „chattr“. Als nächstes stellen wir den Befehl chattr im Detail vor, damit jeder kurz verstehen kann, wie der Befehl chattr verwendet wird.
Was ist der chattr-Befehl unter Linux?
Der Befehl chattr unter Linux ist ein Dateisystembefehl, der zum Ändern der Attribute von Dateien in einem Verzeichnis verwendet wird. Der Hauptzweck dieses Befehls besteht darin, dafür zu sorgen, dass mehrere Dateien nicht von anderen Benutzern als dem Superuser geändert werden können.
Um es einfach auszudrücken: Der Befehl „chattr“ kann die Datei unveränderlich, nicht löschbar, nur anhängbar usw. machen!
Die Syntax von chattr
#chattr [operator] [flags] [filename]
Am Anfang der Flags-Zeichenfolge des Chattr-Befehls muss einer der folgenden Operatoren stehen erscheint:
1. ' + ': Füge die ausgewählten Attribute zu den vorhandenen Attributen der Datei hinzu.
2. ' - ': Das ausgewählte Attribut löschen.
3. ' = ': Das ausgewählte Attribut zum einzigen Attribut der Datei machen.
Das Folgende ist eine Liste allgemeiner Eigenschaften und zugehöriger Flags (Flag-Strings), die mit dem Befehl chattr gesetzt oder deaktiviert werden können:
A: atime-Datensätze sind nicht vorhanden aktualisiert.
S: Änderungen werden synchron auf der Festplatte aktualisiert.
a: Dateien können nur zum Schreiben im Anhängemodus geöffnet werden.
i: Datei kann nicht geändert werden (unveränderlich), nur Superuser kann Attribute zurücksetzen.
j: Alle Dateiinformationen werden im ext3-Protokoll aktualisiert, bevor sie in der Datei selbst aktualisiert werden.
t: Tail Mering ist nicht erlaubt.
d: Beim Ausführen des Dump-Prozesses sind keine Backup-Kandidaten mehr vorhanden.
u: Beim Löschen einer solchen Datei werden deren Daten gespeichert, sodass der Benutzer sie auffordern kann, den Löschvorgang abzubrechen.
Alle oben genannten Befehle gelten jedoch nicht für Dateien und können für Verzeichnisse (Ordner) verwendet werden, um die Verzeichnisse vor dem Löschen oder anderen ähnlichen Pannen zu schützen. Beim Schutz von Verzeichnissen wird jedoch empfohlen, das Flag -R' zu verwenden, um alles im angegebenen Verzeichnis rekursiv zu schützen.
Im Folgenden sind die verschiedenen Optionen für den Befehl chattr aufgeführt:
-R: Eigenschaften zum rekursiven Anzeigen von Verzeichnissen und deren Inhalten auflisten.
-V: Es wird die Version des Programms angezeigt.
-a: Wird verwendet, um alle Dateien in einem Verzeichnis aufzulisten, einschließlich Verzeichnissen, deren Namen mit einem Punkt ('.') beginnen.
-d: Diese Option listet das Verzeichnis als reguläre Datei auf, anstatt seinen Inhalt aufzulisten.
-v: Wird verwendet, um die Versions-/Generationsnummer der Datei usw. anzuzeigen.
Wie verwende ich den Chattr-Befehl?
1. Fügen Sie der Datei Attribute hinzu
Erstellen Sie eine neue Datei, um sie zu testen. Beispielsweise wurde mit dem Touch-Befehl eine neue Datei tecadmin.txt erstellt und der Datei wurden 777 Berechtigungen zugewiesen.
# touch tecadmin.txt # chmod 777 tecadmin.txt # ls -l tecadmin.txt -rwxrwxrwx 1 root root 0 Apr 10 13:10 tecadmin.txt
Aktivieren Sie jetzt das Dateiattribut „i“
# chattr +i tecadmin.txt
Da wir das Dateiattribut „i“ aktiviert haben, versuchen wir, diese Datei zu löschen. Wir erhalten den folgenden RM-Eingabeaufforderungsfehler, obwohl die Datei 777 hat Berechtigungen.
# rm -f tecadmin.txt rm: cannot remove `tecadmin.txt': Operation not permitted
2. Dateiattribute löschen
Um Dateiattribute zu löschen, verwenden Sie einfach das (-)-Zeichen der angehängten Attribute. Zum Beispiel in tecadmin.txt.
# chattr -i tecadmin.txt # lsattr tecadmin.txt ------------- tecadmin.txt
3. Schützen Sie das Verzeichnis
Das Flag + i' kann für das Verzeichnis verwendet werden (wie unten gezeigt), um das Verzeichnis unveränderlich zu machen; ' wird verwendet, um den Aufruf rekursiv durchzuführen, sodass auch alle Unterdateien und Verzeichnisse unveränderlich sind. Dies schützt das gesamte Verzeichnis und seine Dateien. Beispiel: Ordner Ordner
#chattr -R + i folder/
Löschen/löschen Sie nun den Ordner und seine Dateien. Sie erhalten den folgenden RM-Eingabeaufforderungsfehler
#rm -rf folder / rm: cannot remove ‘ folder/’ : Operation not permitted
Verwenden Sie erneut den Schalter „-R“ und das Flag „-i“. und den vollständigen Pfad zum Ordner, um Berechtigungen aufzuheben.
# chattr -R -i folder/ # rm -rf folder/
Das Ordnerverzeichnis wurde erfolgreich gelöscht.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein.
Das obige ist der detaillierte Inhalt vonWas ist der chattr-Befehl unter Linux? Verwendung (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!