La commande chattr est utilisée pour modifier les attributs d'un fichier ou d'un répertoire. Le tableau suivant décrit certaines des options de la commande chattr.
Option | Description |
---|---|
-R | Modifier récursivement les attributs des répertoires et leur contenu. |
-v {version} | Définir le numéro de version d'un fichier. |
+i | Marquer le fichier en lecture seule ou immuable. Nécessite des privilèges de superutilisateur. |
-i | Supprimez l'attribut en lecture seule ou immuable du fichier. Nécessite des privilèges de superutilisateur. |
La syntaxe de la commande chattr est :
# chattr [-R] [-v {version}] [+-{attributes}] {file/directory names}
Si vous rencontrez l'erreur ci-dessous lors de l'exécution de la commande chattr :
chattr: command not found
vous pouvez installer le package ci-dessous selon votre choix de distribution :
Répartition | Commande |
---|---|
OS X | brew install e2fsprogs |
Debian | apt-get install e2fsprogs |
Ubuntu | apt-get install e2fsprogs |
Alpin | apk ajouter e2fsprogs |
Arch Linux | pacman -S e2fsprogs |
Kali Linux | apt-get install e2fsprogs |
CentOS | yum installez e2fsprogs |
Fédora | dnf installer e2fsprogs |
Raspbian | apt-get install e2fsprogs |
Suppression de l'attribut -i (immuable) des fichiers
Pour supprimer l'attribut "i", utilisez la commande ci-dessous.
# chattr -i geek.txt # Unset "i" attribute
Après avoir supprimé l'attribut, vous verrez que la section d'autorisation deviendra vide.
# lsattr geek.txt --------------- geek.txt
Rendre un répertoire immuable à l'aide de chattr
Essayons maintenant de sécuriser un répertoire en modifiant son attribut de manière récursive à l'aide de la commande chattr. Ici, j'ai un répertoire nommé data et tout le monde a un accès complet à ce répertoire de manière récursive. Reportez-vous à l'exemple de sortie ci-dessous.
# mkdir data # chmod -R 777 data/ # ls -l total 4 drwxrwxrwx. 2 root root 4096 Apr 24 04:25 data
Définissez maintenant l'attribut sur ce répertoire.
# chattr +i data/ # lsattr ----i--------e- ./data
Vous pouvez également définir l'attribut de manière récursive en utilisant l'option -R avec chattr.
# chattr -R +i data/
Après avoir défini l'attribut sur le répertoire, essayez maintenant de supprimer, déplacer ou créer un fichier, je suis sûr que vous ne serez pas autorisé à faire quoi que ce soit de cela. Reportez-vous à l'exemple de sortie ci-dessous.
# 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