Der Befehl chattr wird verwendet, um die Attribute einer Datei oder eines Verzeichnisses zu ändern. Die folgende Tabelle beschreibt einige der Optionen des Befehls chattr.
Option | Beschreibung |
---|---|
-R | Ändern Sie rekursiv die Attribute von Verzeichnissen und deren Inhalt. |
-v {Version} | Stellen Sie die Versionsnummer einer Datei ein. |
+i | Markieren Sie die Datei als schreibgeschützt oder unveränderlich. Erfordert Superuser-Rechte. |
-i | Entfernen Sie das schreibgeschützte oder unveränderliche Attribut der Datei. Erfordert Superuser-Rechte. |
Die Syntax des chattr-Befehls lautet:
# chattr [-R] [-v {version}] [+-{attributes}] {file/directory names}
Wenn beim Ausführen des Chattr-Befehls der folgende Fehler auftritt:
chattr: command not found
Sie können das folgende Paket gemäß Ihrer Wahl der Distribution installieren:
Verteilung | Befehl |
---|---|
OS X | brew install e2fsprogs |
Debian | apt-get install e2fsprogs |
Ubuntu | apt-get install e2fsprogs |
Alpin | apk fügt e2fsprogs hinzu |
Arch Linux | pacman -S e2fsprogs |
Kali-Linux | apt-get install e2fsprogs |
CentOS | yum installiere e2fsprogs |
Fedora | dnf installiere e2fsprogs |
Raspbian | apt-get install e2fsprogs |
Entfernen des Attributs -i (unveränderlich) aus den Dateien
Verwenden Sie den folgenden Befehl, um das „i“-Attribut zu entfernen.
# chattr -i geek.txt # Unset "i" attribute
Nach dem Entfernen des Attributs sehen Sie, dass der Berechtigungsabschnitt leer wird.
# lsattr geek.txt --------------- geek.txt
Ein Verzeichnis mit chattr unveränderlich machen
Versuchen wir nun, ein Verzeichnis zu sichern, indem wir sein Attribut rekursiv mit dem Befehl chattr ändern. Hier habe ich ein Verzeichnis namens data und jeder hat rekursiv vollen Zugriff auf dieses Verzeichnis. Sehen Sie sich die Beispielausgabe unten an.
# mkdir data # chmod -R 777 data/ # ls -l total 4 drwxrwxrwx. 2 root root 4096 Apr 24 04:25 data
Setzen Sie nun das Attribut auf dieses Verzeichnis.
# chattr +i data/ # lsattr ----i--------e- ./data
Sie können das Attribut auch rekursiv setzen, indem Sie die Option -R mit chattr.
verwenden# chattr -R +i data/
Nachdem Sie das Attribut auf das Verzeichnis gesetzt haben, versuchen Sie nun, eine Datei zu löschen, zu verschieben oder zu erstellen. Ich bin sicher, dass Sie dies nicht tun dürfen. Sehen Sie sich die Beispielausgabe unten an.
# rmdir data/ # Deleting the Directory rmdir: failed to remove `data/': Operation not permitted
# rm -rf data/ # Deletiing the Directory Forcefully rm: cannot remove `data': Operation not permitted
# mv data/ mydata # Moving the Directory mv: cannot move `data/' to `mydata': Operation not permitted
# cd data/ # cat > test.txt # Creating a File in the directory bash: test.txt: Permission denied