Les autorisations d'accès Linux traditionnelles pour les fichiers et les répertoires consistent à définir une combinaison d'autorisations de lecture, d'écriture et d'exécution pour le propriétaire du fichier ou du répertoire, un membre du groupe auquel le fichier ou le répertoire est associé et tous les autres (autres). Les listes de contrôle d'accès (ACL) fournissent un mécanisme de contrôle d'accès plus précis que ces autorisations d'accès Linux traditionnelles.
Installation d'ACL
Avant d'utiliser les ACL pour un fichier ou un répertoire, installez le package acl :
# yum install acl
Configuration d'ACL sur un système de fichiers
Le système de fichiers contenant le fichier ou le répertoire doit également être monté avec le support ACL. Voici la syntaxe pour monter un système de fichiers ext3 local avec prise en charge ACL :
# mount -t ext3 -o acl [device-name] [mount-point]
Par exemple :
# mount -t ext3 -o acl /dev/mapper/VolGroup00-LogVol00 /data
Si la partition est répertoriée dans le fichier /etc/fstab, incluez l'option acl :
# vi /etc/fstab LABEL=/data /data ext3 acl 0 0
Règles ACL
Une ACL consiste en un ensemble de règles qui spécifient comment un utilisateur ou un groupe peut accéder au fichier ou au répertoire auquel l'ACL est associée. Il existe deux types de règles ACL :
- accéder aux LCA :Spécifiez les informations d'accès pour un seul fichier ou répertoire
- ACL par défaut :Appartiennent à un répertoire uniquement. Il spécifie les informations d'accès par défaut pour tout fichier du répertoire qui n'a pas d'ACL d'accès.
Afficher les ACL sur les fichiers
Utilisez le getfacl utilitaire pour afficher l'ACL d'un fichier. Lorsqu'un fichier n'a pas d'ACL, il affiche les mêmes informations que 'ls –l', bien que dans un format différent. Par exemple, le fichier test n'a pas d'ACL :
# ls –l test -rw-rw-r-- 1 oracle oracle 25 Mar 5 10:10 test
Exemple de sortie getfacl du fichier de test :
# getfacl test # file: test # owner: oracle # group: oracle user::rw- group::rw- other::r--
Configuration des ACL sur les fichiers
Utilisez le setfacl utilitaire pour ajouter ou modifier une ou plusieurs règles dans l'ACL d'un fichier. La syntaxe est :
# setfacl -m [rules] [files]
Les règles se présentent sous la forme suivante :
- u:name:permissions :Définit l'ACL d'accès pour un utilisateur (nom d'utilisateur ou UID)
- g:name:permissions :Définit l'ACL d'accès pour le groupe (nom du groupe ou GID)
- m:autorisations :Définit le masque de droits effectif. Il s'agit de l'union de toutes les autorisations du groupe propriétaire et de toutes les entrées d'utilisateur et de groupe.
- o :autorisations :Définit l'ACL d'accès pour tous les autres (autres)
Les autorisations sont les traditionnelles r, w et x pour la lecture, l'écriture et l'exécution, respectivement. L'exemple suivant ajoute une règle à l'ACL pour le fichier de test qui donne à l'utilisateur oracle l'autorisation de lecture et d'écriture sur ce fichier :
# setfacl -m u:oracle:rwx test
La sortie de getfacl inclut la règle ACL :
# getfacl test # file: test # owner: oracle # group: oracle user::rw- user:oracle:rwx group::rw- mask::rwx other::r--
Lorsqu'un fichier a une ACL, 'ls –l' affiche un signe plus (+ ) en suivant les permissions :
# ls –l test -rw-rwxr--+ 1 oracle oracle 25 Mar 5 10:10 test
Suppression des ACL des fichiers
Utilisez le –x option sans spécifier d'autorisations pour supprimer des règles pour un utilisateur ou un groupe.
# setfacl –x u:oracle test
Pour supprimer l'ACL elle-même, utilisez le -b choix :
# setfacl –b test
Définition des ACL par défaut
Pour définir une ACL par défaut, ajoutez d : avant la règle et indiquez un répertoire au lieu d'un nom de fichier :
# setfacl -m d:o:rx /shareUNIX/Linux :Notions de base sur les listes de contrôle d'accès (ACL)