ACL
Linux/Unix

ACL sous Linux (Access Control Lists )

ACL (Access Control Lists ) fournit un mécanisme d’autorisation supplémentaire et plus flexible pour les systèmes de fichier, il a été  conçu pour renforcer les autorisations de fichiers standard de linux en affectant des permissions pour un utilisateur particulier ou groupe.

Nous allons découvrir dans ce guide comment utiliser les ACL pour sécuriser les fichiers et répertoires du système de fichier.

Pourquoi utiliser les ACL ?

Avec un exemple, ça sera sûrement plus clair , imaginer le scénario suivant,  vous avez créé un groupe « Grp » ayant un accès total sur le fichier « file1 » (rwx) et aucun accès sur le fichier pour les autres utilisateurs n’appartenant pas au groupe « Grp », les droits standard du fichier est donc comme ci-dessous :

[root@srv ~]# ls -lhrt file1
-rwxrwx---. 1 root Grp 0 26 mai   12:37 file1.sh

Pour des raisons particulières vous souhaitez qu’un utilisateur « User1 » aie uniquement le droit de lire ,avec les droits de linux standards c’est impossible. Si vous ajouter le droit de lire à partie « autre » (rwxrwx) alors tous les autres utilisateurs n’appartenant pas au groupe prouverons lire le fichier et si vous ajoutez l’utilisateur au groupe « Grp » il aura également le droit de modifier et d’exécuter le fichier et c’est contrairement à ce que vous souhaitez. C’est ici qu’ interviennent les Access Control Lists.

Grace aux Access Control Lists vous pouvez donner tous simplement le droits de lire uniquement à l’utilisateur « User » sans affecter les droit des « autres » ou l’ajouter au groupe « Grp ». Assez discuté, maintenant place à l’action 🙂 .

Setfacl & getfacl :

setfacl permet d’ajouter les ACL à un utilisateur ou groupe et getfacl permet de voir les ACL d’un fichier ou répertoire:

Voici la liste des commandes setfacl pour donner des ACL à un utilisateur:

  • Pour ajouter les permission à un utilisateur :
[root@srv ~]# setfacl -m u:user:permissions /Chemin/vers/fichier_ou_répertoire
  • Pour ajouter les permission à un groupe :
[root@srv ~]# setfacl -m g:group:permissions /Chemin/vers/fichier_ou_répertoire
  • Ajouter les permissions à un utilisateur ou groupe pour un répertoire et ses fichiers existants mais pas aux nouveau fichier :
[root@srv ~]# setfacl -R -m u:user:rw Répertoire/
  • Mettre une ACL par défaut à un répertoire pour que ses nouveau fichiers et sous répertoires l’héritent les contenu existant déja ne les héritent pas :
[root@srv ~]# setfacl -m d:u:user:r Répertoire/
  • Supprimer une partie de l’ACL :
[root@srv ~]# setfacl -x u:user1,g:Grp file1
  • Supprimer toute l’ACL :
[root@srv ~]# setfacl -b Répertoire/

Supprimer une partie d’ACL par défaut :

[root@srv ~]# setfacl -x d:u:user1 Répertoire/:
  • Supprimer toute l’ACL par défaut
[root@srv ~]# setfacl -k Répertoire/

Pour afficher les ACL d’un fichier ou répertoire utiliser la commande getfacl :

[root@srv ~]# getfacl file1
# file: file1
# owner: root
# group: Grp
user::rw-
group::r--
other::r--

2 Replies to ACL sous Linux (Access Control Lists )

  1. Petite erreur sur ton premier exemple, tu as mis rww au lieu de rwx ?
    -rwwrwx—. 1 root Grp 0 26 mai 12:37 file1.sh

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *