Protéger vos fichiers sur Linux : méthodes et astuces de pro

Dans ce tutoriel, nous allons voir comment protéger certains fichiers contre les suppressions et les modifications, sur une machine Linux.
Utilisation des commandes chattr et lsattr
Une des méthodes les plus efficaces pour empêcher la modification ou la suppression d’un fichier consiste à utiliser les commandes chattr et lsattr. L’idée étant de considérer que le fichier “/home/flo/key.txt” doit être verrouillé.
Verrouiller un fichier avec chattr
La commande chattr permet de modifier les attributs d’un fichier sous Linux. Pour rendre un fichier immuable, ce qui empêche toute modification ou suppression, utilisez la commande suivante :
sudo chattr +i /home/flo/key.txt
Il est impératif de disposer des permissions root (ou sudo) pour modifier cet attribut sur un fichier. L’option “+i” utilisée ici sert justement à rendre ce fichier immuable. Une fois cet attribut appliqué, ni l’utilisateur ni même le super-utilisateur (root) ne pourra modifier ou supprimer le fichier, sauf en retirant explicitement cet attribut.
L’image ci-dessous illustre parfaitement le fait qu’il ne soit pas possible de supprimer ce fichier :
Vérifier l’attribut avec lsattr
Pour vérifier si un fichier est immuable, utilisez la commande lsattr pour afficher la liste des attributs étendus. Vous l’aurez surement compris, la commande chattr sert à modifier les attributs, tandis que la commande lsattr sert à lister les attributs étendus d’un fichier.
lsattr /home/flo/key.txt
Dans notre cas, nous obtenons le résultat suivant :
—-i———e——- /home/flo/key.txt
L’attribut “i” indique que le fichier est immuable et fait référence à l’option “-i” utilisée précédemment.
Retirer l’attribut immuable sur un fichier
Si un jour ou l’autre, vous souhaitez modifier ou supprimer le fichier protégé, vous devez d’abord retirer l’attribut immuable. Sinon, comme nous avons pu le voir, il ne sera pas possible de le supprimer. Dans ce cas, l’option “+i” sera tout simplement remplacée par “-i”, de cette façon :
sudo chattr -i /home/flo/key.txt
Une fois cette commande est exécutée, vous êtes en mesure de supprimer le fichier, à condition de disposer de permissions suffisantes.
Empêcher la suppression grâce aux permissions
Une autre méthode consiste à utiliser la gestion des permissions de Linux pour limiter les droits d’accès sur un fichier. En réglant les permissions correctement, vous pouvez empêcher un utilisateur non autorisé de modifier ou supprimer un fichier. Néanmoins, cette méthode à ses limites puisqu’elle n’empêchera pas un compte avec les droits root (ou le compte root lui-même) de supprimer le fichier.
Vous pouvez rendre un fichier en lecture seule pour tous les utilisateurs (y compris le propriétaire) avec la commande suivante :
chmod 444 /home/flo/key.txt
Personne ne pourra modifier le fichier, à moins de venir modifier les permissions au préalable. Cela est possible avec le compte root ou un compte utilisateur via la délégation sudo.
Une autre approche consiste à changer le propriétaire du fichier, afin de définir le compte root ou un autre utilisateur spécifique. Ainsi, les permissions seront limitées et un utilisateur standard pourra seulement lire ce fichier (si ses permissions le permettent).
sudo chown root:root /home/flo/key.txt
Cette approche basée sur les permissions est une alternative à l’utilisation de l’attribut étendu permettant de rendre un fichier immuable.
Conclusion
Comme nous venons de le voir, empêcher la suppression, la modification ou le renommage d’un fichier sous Linux peut se faire de plusieurs manières. L’utilisation de chattr permet de rendre un fichier immuable, tandis que la gestion des permissions via chmod et chown s’appuie sur les permissions du système de fichiers. Vous pouvez bien entendu coupler ces 2 méthodes, la gestion des permissions étant essentielle.
Si vous souhaitez en savoir plus sur l’utilisation des commandes chmod et chown, vous pouvez lire nos articles :
Source : www.it-connect.fr