Guide chattr sous Linux : protéger ses fichiers contre root

Vue d’ensemble

Au sein d’un écosystème Linux, le compte superutilisateur dispose traditionnellement de tous les droits, mais il reste possible de neutraliser toute suppression ou modification accidentelle grâce aux attributs étendus du système de fichiers. Ce guide explore le fonctionnement de l’utilitaire chattr et de son compagnon lsattr. À travers plusieurs scénarios pratiques, nous verrons comment mettre en place l’immutabilité stricte (+i) ainsi que le mode d’ajout exclusif (+a) afin de sanctuariser vos fichiers critiques.

Inspection des attributs existants avec lsattr

Afin d’isoler nos manipulations sans impacter le reste du système, préparons un espace de travail dédié puis positionnons-nous à l’intérieur en lançant mkdir -p ~/chattr_demo && cd ~/chattr_demo.

mkdir -p ~/chattr_demo && cd ~/chattr_demo

Initialisons ensuite un fichier de test qui servira de cible pour nos expérimentations d’attributs via touch secure_config.conf.

touch secure_config.conf

La commande lsattr interroge le système de fichiers pour révéler les drapeaux spécifiques associés à chaque entrée.
La présence du flag e par défaut indique simplement que le stockage physique du fichier exploite le mécanisme d’extents, standard sur les partitions ext4.
⚙️ [Options de diagnostic courantes]

-a : Inclut l’intégralité des éléments du répertoire, fichiers masqués (débutant par un point) compris.
-d : Restreint l’analyse au dossier lui-même plutôt que d’énumérer les éléments qu’il contient.
-R : Déploie une exploration récursive sur toute la profondeur de l’arborescence.
-v : Révèle le numéro de génération ou version interne assigné au fichier.

lsattr secure_config.conf

Rendre un fichier immuable et inviolable (+i)

Pour interdire formellement toute altération ou suppression, appliquez le drapeau d’immutabilité à l’aide de l’instruction sudo chattr +i ~/chattr_demo/secure_config.conf.
Dès l’instant où l’attribut +i est positionné, même le compte root se retrouve dans l’incapacité d’écraser, renommer ou effacer le fichier cible.

sudo chattr +i ~/chattr_demo/secure_config.conf

Validons l’état du fichier en sollicitant lsattr ~/chattr_demo/secure_config.conf.
L’apparition du caractère i parmi les drapeaux confirme que le verrouillage en lecture seule absolue est parfaitement opérationnel.

lsattr ~/chattr_demo/secure_config.conf

Constatons l’efficacité de cette barrière en déclenchant une tentative de suppression immédiate avec rm -f ~/chattr_demo/secure_config.conf.
Malgré l’emploi de l’option de force (-f), le noyau rejette l’opération : les données demeurent intactes et préservées.

rm -f ~/chattr_demo/secure_config.conf

Révocation du verrou d’immutabilité et édition (-i)

Lorsqu’une maintenance légitime nécessite d’actualiser le fichier, désactivez la protection en exécutant sudo chattr -i ~/chattr_demo/secure_config.conf.
L’indicateur -i lève la restriction d’immutabilité et réactive le comportement standard du système de fichiers.

sudo chattr -i ~/chattr_demo/secure_config.conf

Un nouveau contrôle à l’aide de lsattr ~/chattr_demo/secure_config.conf permet de s’assurer de la disparition de la marque i, confirmant la levée définitive du verrou.

lsattr ~/chattr_demo/secure_config.conf

Afin de vérifier que le fichier accepte de nouveau les écritures, ajoutons une directive réseau au moyen de echo 'server_port=8080' >> ~/chattr_demo/secure_config.conf.

echo ‘server_port=8080’ » ~/chattr_demo/secure_config.conf

Visualisons le résultat en affichant le fichier avec cat ~/chattr_demo/secure_config.conf.
La ligne de paramétrage apparaît bien dans le document, prouvant que la modification a abouti sans encombre.

cat ~/chattr_demo/secure_config.conf

Journalisation inviolable grâce au mode append-only (+a)

Pour simuler la sécurisation d’un historique d’audit, créons un journal applicatif vierge via touch ~/chattr_demo/app_audit.log.

touch ~/chattr_demo/app_audit.log

Afin d’empêcher toute troncature ou falsification du passé tout en laissant le service consigner de nouveaux événements, activez le mode ajout exclusif avec sudo chattr +a ~/chattr_demo/app_audit.log.
L’option +a interdit l’écrasement ou la suppression tout en tolérant l’adjonction de données à la fin du flux.

sudo chattr +a ~/chattr_demo/app_audit.log

Inspectons les propriétés du fichier avec lsattr ~/chattr_demo/app_audit.log.
Le drapeau a est désormais clairement visible, attestant de l’activation du mode append-only sur ce journal.

lsattr ~/chattr_demo/app_audit.log

Vérifions que l’ajout incrémental fonctionne toujours parfaitement en injectant un message d’audit via echo 'Audit Event: System initialized' >> ~/chattr_demo/app_audit.log.
L’utilisation de la redirection double >> s’exécute sans friction malgré la restriction active.

echo ‘Audit Event: System initialized’ » ~/chattr_demo/app_audit.log

Vérifions la présence de cette nouvelle ligne dans le fichier en exécutant cat ~/chattr_demo/app_audit.log.
L’enregistrement figure bien en queue de fichier, validant le bon compromis entre disponibilité d’écriture et protection contre la falsification.

cat ~/chattr_demo/app_audit.log

Sécurisation récursive d’une arborescence complète (-R)

Pour expérimenter la protection simultanée de plusieurs éléments, construisons une structure comprenant un sous-dossier et des fichiers cibles via mkdir -p ~/chattr_demo/protected_dir && touch ~/chattr_demo/protected_dir/config1.txt ~/chattr_demo/protected_dir/config2.txt.

mkdir -p ~/chattr_demo/protected_dir && touch ~/chattr_demo/protected_dir/config1.txt ~/chattr_demo/protected_dir/config2.txt

Verrouillez en une seule passe le conteneur et l’intégralité de ses composants internes en utilisant sudo chattr -R +i ~/chattr_demo/protected_dir.
Le modificateur -R propage le drapeau immuable sur tous les niveaux d’imbrication de manière transparente.

sudo chattr -R +i ~/chattr_demo/protected_dir

Assurez-vous de l’homogénéité du paramétrage en consultant le contenu du dossier avec lsattr ~/chattr_demo/protected_dir.
Tous les fichiers hébergés arborent systématiquement le marqueur i, garantissant une couverture de sécurité complète.

lsattr ~/chattr_demo/protected_dir

Pour rétablir les droits de modification et autoriser le nettoyage de l’arborescence, retirez globalement l’attribut à l’aide de sudo chattr -R -i ~/chattr_demo/protected_dir.
Cette commande lève immédiatement les verrous sur l’ensemble des éléments enfants, redonnant toute liberté d’administration au système.

sudo chattr -R -i ~/chattr_demo/protected_dir

Maîtriser les attributs de fichiers avancés sous Linux constitue un atout précieux dans votre stratégie de durcissement système. En appliquant judicieusement chattr sur vos configurations maîtresses ou vos journaux d’événements, vous neutralisez efficacement tant les erreurs humaines de frappe que les attaques visant à détruire les preuves système.