accueil > Gestion des paquets et du système > acl

ACL : Gestion des listes de contrôle d'accès

Les ACL (Access Control Lists) sont une fonctionnalité du système Linux qui permet de définir des autorisations granulaires pour les fichiers et les répertoires. En plus des autorisations traditionnelles pour l'utilisateur, le groupe et les autres, vous pouvez accorder ou révoquer des autorisations de lecture, d'écriture et d'exécution individuelles pour des utilisateurs ou des groupes spécifiques. `acl` n'est pas une commande en soi, mais est principalement géré via les commandes `getfacl` et `setfacl`.

Aperçu

Les ACL offrent une gestion flexible des autorisations qui va au-delà du modèle d'autorisations Unix traditionnel (propriétaire, groupe, autres). Vous pouvez spécifier explicitement les autorisations d'accès à un fichier ou à un répertoire pour un utilisateur ou un groupe spécifique. Ceci est utile pour répondre à des exigences d'autorisations complexes dans des environnements partagés par plusieurs utilisateurs.

Caractéristiques principales

  • Contrôle d'accès granulaire
  • Octroi d'autorisations à des utilisateurs/groupes spécifiques
  • Fonctionne avec les autorisations par défaut (umask)
  • Possibilité de définir des ACL par défaut pour les répertoires

Installation

La fonctionnalité `acl` elle-même est intégrée au noyau Linux, mais le paquet `acl` doit être installé pour utiliser les commandes `getfacl` et `setfacl`. Il se peut qu'il ne soit pas installé par défaut sur la plupart des distributions Linux.

Debian/Ubuntu

sudo apt update && sudo apt install acl

Commande pour installer le paquet `acl` sur les systèmes basés sur Debian ou Ubuntu.

CentOS/RHEL/Fedora

sudo yum install acl

Commande pour installer le paquet `acl` sur les systèmes basés sur CentOS, RHEL ou Fedora.

Exemples d'utilisation

Les ACL sont principalement gérées via les commandes `getfacl` (pour consulter les ACL) et `setfacl` (pour définir les ACL). Voici quelques exemples d'utilisation courants.

Consulter les ACL d'un fichier

getfacl my_file.txt

Utilisez la commande `getfacl` pour vérifier les ACL actuelles d'un fichier ou d'un répertoire spécifique.

Accorder les autorisations de lecture/écriture à un utilisateur spécifique

setfacl -m u:user1:rw my_file.txt

Utilisez l'option `setfacl -m` pour accorder les autorisations de lecture (r) et d'écriture (w) à l'utilisateur 'user1' sur 'my_file.txt'.

Accorder l'autorisation d'exécution à un groupe spécifique

setfacl -m g:dev_group:x my_script.sh

Utilisez l'option `setfacl -m` pour accorder l'autorisation d'exécution (x) au groupe 'dev_group' sur 'my_script.sh'.

Supprimer une entrée ACL

setfacl -x u:user1 my_file.txt

Utilisez l'option `setfacl -x` pour supprimer l'entrée ACL pour 'user1'.

Définir des ACL par défaut pour un répertoire

setfacl -m d:u:user2:rwx my_directory/

Définissez des ACL par défaut pour un répertoire afin que les nouveaux fichiers ou répertoires créés héritent de ces ACL. Utilisez le préfixe `d:`.

Supprimer toutes les ACL

setfacl -b my_file.txt

Utilisez l'option `setfacl -b` pour supprimer toutes les entrées ACL étendues d'un fichier ou d'un répertoire et revenir aux autorisations traditionnelles.

Conseils et précautions

Il est important de comprendre l'interaction avec le système d'autorisations existant lors de l'utilisation des ACL.

ACL et autorisations traditionnelles

  • La sortie de `ls -l` pour un fichier/répertoire avec des ACL configurées affichera un signe `+` à la fin de la chaîne d'autorisations.
  • Les ACL ajoutent des autorisations supplémentaires par-dessus les autorisations traditionnelles (propriétaire, groupe, autres). L'entrée `mask` limite les autorisations effectives maximales des ACL.
  • La configuration d'ACL trop complexes peut rendre la gestion des autorisations difficile, utilisez-les donc avec prudence et uniquement lorsque cela est nécessaire.

Comprendre l'entrée mask

Lors de la configuration des ACL, une entrée `mask` est automatiquement créée ou mise à jour. Ce `mask` définit les autorisations effectives maximales accordées aux entrées utilisateur (u:), groupe (g:), utilisateur nommé (u:name:) et groupe nommé (g:name:). Même si vous essayez d'accorder plus d'autorisations que celles définies dans le `mask`, elles seront limitées par celui-ci. Vous pouvez définir manuellement le `mask` avec `setfacl -m m::rw`.

Support du système de fichiers

Pour utiliser les ACL, le système de fichiers doit les prendre en charge. La plupart des systèmes de fichiers Linux modernes tels que ext2, ext3, ext4, XFS prennent en charge les ACL. Vous devrez peut-être vérifier que l'option `acl` est activée lors du montage du système de fichiers (par exemple, dans `/etc/fstab`).


Commandes de la même catégorie