Définir les permissions par défaut pour les nouveaux fichiers et sous-répertoires

By Flavien ROUX

Dans ce tutoriel, nous allons voir comment définir les permissions par défaut pour les fichiers et sous-répertoires nouvellement créés dans un répertoire ou un système de fichiers. Tout d’abord, nous allons commencer par une brève introduction à l’ACL et à la façon dont nous pouvons l’activer sur notre système de fichiers. Ensuite, nous passerons à la configuration des permissions pour les fichiers nouvellement créés dans un répertoire personnel.

Définition de la permission par défaut

Les autorisations de fichiers sont des privilèges permettant d’effectuer des opérations spécifiques sur les fichiers. Nous pouvons accorder ces permissions à un certain utilisateur ou à un groupe d’utilisateurs. Les opérations qu’un utilisateur peut effectuer sur des fichiers peuvent être soit la lecture, l’écriture, l’exécution ou une combinaison de ces opérations.

Sous Linux, par défaut, lorsque nous créons de nouveaux fichiers, ils reçoivent des permissions rw-rw-r-. Les lettres r, w et x désignent respectivement les autorisations de lecture, d’écriture et d’exécution.

Décomposons l’autorisation rw-rw-r- pour les fichiers :

Le premier rw- signifie des autorisations de lecture-écriture pour l'utilisateur ou le propriétaire du fichier.
Le deuxième rw- indique les autorisations de lecture-écriture pour le groupe auquel le fichier appartient
Le dernier r- indique l'autorisation de lecture pour tous les autres utilisateurs.

De même, pour les répertoires nouvellement créés, l’autorisation par défaut est rwxrwxr-x.

A lire également :  Qu'est-ce que Last.fm et devez-vous l'utiliser ?

Qu’est-ce qu’une ACL ?

La liste de contrôle d’accès (ACL) est un mécanisme qui nous permet de définir des permissions complexes pour un système de fichiers. De plus, nous pouvons également utiliser l’ACL pour appliquer des permissions à un fichier ou à un répertoire spécifique. Avec ACL, nous pouvons modifier les permissions par défaut pour les fichiers et les répertoires nouvellement créés.

Sur ext4, le support ACL est déjà activé. Cependant, nous pouvons également l’activer sur d’autres types de systèmes de fichiers, ce que nous allons aborder dans la section suivante.

Activer ACL sur le système de fichiers

Nous pouvons facilement activer le support ACL sur d’autres types de systèmes de fichiers, tels que ext3 et fat, en ajoutant l’option acl à l’entrée de la partition dans le fichier fstab. Le fichier fstab est situé dans le répertoire /etc et contient la configuration de nos partitions.

Ouvrons le fichier fstab et ajoutons l’option acl pour les entrées des partitions requises :

.

/dev/sda4 /home ext3 rw,relatime,acl 0 1
.
.
.

Dans ce cas, nous avons ajouté l’option acl à notre partition /dev/sda, qui est montée sur le répertoire /home. Une fois que nous avons ajouté l’option, nous pouvons simplement remonter la partition avec mount pour que nos changements prennent effet :

$ mount -oremount /dev/sda4

Maintenant, le support ACL devrait être activé, et nous pouvons appliquer les permissions souhaitées pour les fichiers et répertoires nouvellement créés sur la partition /dev/sda4.

Définir les permissions avec setfacl

Sous Linux, l’utilitaire setfacl est utilisé pour gérer les ACL des répertoires et des fichiers. Cet utilitaire est fourni avec le paquetage acl, qui devrait déjà être installé sur notre machine par défaut. Cependant, nous pouvons l’installer à partir du dépôt officiel de notre distribution si, pour une raison quelconque, il n’est pas installé sur notre machine.

A lire également :  Code Postal Bourgogne-Franche-Comté

Nous pouvons appliquer des permissions par défaut pour les fichiers et les répertoires avec setfacl en utilisant la syntaxe de la commande suivante :

$ setfacl [OPTIONS] [PERMISSIONS] [FICHIER|DIRECTOIRE]

Maintenant, appliquons les permissions par défaut pour les fichiers et les répertoires sous la partition /dev/sda4, qui se trouve être montée sur /home :

$ setfacl -PRdm u::rwx,g::rw,o::r /home

Décomposons :
freestar

-d définit la permission par défaut pour le répertoire /home
-m signifie que nous voulons apporter des modifications à l'ACL
-R appliquera la permission à tous les fichiers et sous-répertoires du répertoire /home de manière récursive
-P empêchera l'opération de suivre les liens symboliques - pour éviter le risque de compromettre la sécurité.
Le modèle suivant spécifie les permissions par défaut pour le répertoire /home

Les permissions pour chaque classe d’utilisateurs sont séparées par des virgules. Par exemple, le motif u::rwx spécifie les permissions par défaut pour l’utilisateur ou le propriétaire du répertoire /home. Dans ce cas, le propriétaire peut lire, écrire et exécuter les fichiers et répertoires nouvellement créés dans le répertoire /home. De même, le groupe propriétaire reçoit des autorisations de lecture-écriture, tandis que les autres ne reçoivent que l’autorisation de lecture.

Maintenant, créons un fichier sous le répertoire /home pour tester nos nouvelles permissions :

$ touch /home/hey/test
$ ls -l /home/hey/test
.rwxrw-r– hey hey 0 B Fri Jan 21 22:42:01 2022 test

Puisque nous avons utilisé l’option -R, tous les nouveaux fichiers et dossiers sous la hiérarchie /home recevront les permissions par défaut appropriées.

Définition des autorisations par défaut pour un utilisateur ou un groupe différent

Nous pouvons également mettre un uid (ID d’utilisateur) ou un gid (ID de groupe) entre les deux points. Nous devrions donc utiliser cette approche si nous voulons attribuer des permissions à un utilisateur qui n’est pas le propriétaire du fichier ou du répertoire. Par exemple, si nous voulons définir des permissions pour l’utilisateur doe, avec l’uid 1001, nous pouvons simplement spécifier les permissions de la manière suivante :

A lire également :  Pourquoi le symbole de Linux est un manchots ?

$ setfacl -PRdm u:1001:rw /home

Outils qui préservent les permissions

Il existe des outils comme cp, tar, unzip et rsync qui essaient de préserver les permissions des fichiers sources lors de la création de nouveaux fichiers et répertoires. En d’autres termes, ces outils masqueront les autorisations de notre ACL par défaut. Par conséquent, lorsque nous utilisons ces outils, nous devons appliquer les permissions requises aux nouveaux fichiers et répertoires résultants manuellement avec chmod.

Conclusion

Dans cet article, nous avons vu comment nous pouvions définir la permission par défaut pour les fichiers et répertoires nouvellement créés sur une partition Linux ou un répertoire. Nous avons vu ce qu’est une ACL et comment utiliser l’utilitaire setfacl pour définir les permissions par défaut pour les fichiers et répertoires nouvellement créés.