Tous les produits
Search
Centre de documentation

File Storage NAS:Utiliser les ACL POSIX pour contrôler l'accès

Dernière mise à jour :Aug 09, 2026

Configurez des listes de contrôle d'accès (ACL) POSIX afin de définir des autorisations granulaires sur les fichiers et les répertoires d'un système de fichiers NFSv3.

Prérequis

Le système de fichiers NFSv3 est monté. Pour plus d'informations, consultez la rubrique Monter un système de fichiers NFS.

Commandes

Le tableau suivant présente les commandes POSIX ACL courantes.

Commande

Description

getfacl <filename>

Affiche l'ACL d'un fichier.

setfacl -m g::w <filename>

Accorde l'autorisation d'écriture (w) au groupe propriétaire du fichier.

setfacl -m u:player:w <filename>

Accorde l'autorisation d'écriture à l'utilisateur player.

setfacl -m g:players:rwx <filename>

Accorde les autorisations de lecture, d'écriture et d'exécution au groupe players.

setfacl -x g:players <filename>

Révoque les autorisations du groupe players.

getfacl file1

setfacl --set-file=- file2

Copie l'ACL de file1 vers file2.

setfacl -b file1

Supprime toutes les ACE étendues de file1. Les ACE de base pour le propriétaire, le groupe et les autres utilisateurs sont conservées.

setfacl -k file1

Supprime toutes les ACE par défaut de file1.

setfacl -R -m g:players:rw dir

Accorde les autorisations de lecture et d'écriture sur tous les fichiers et sous-répertoires contenus dans dir au groupe players.

setfacl -d -m g:players:rw dir1

Accorde les autorisations par défaut de lecture et d'écriture sur les nouveaux fichiers et sous-répertoires créés dans dir1 au groupe players.

Configurer les ACL POSIX

Pour configurer les ACL POSIX afin de contrôler l'accès :

  1. Créez des utilisateurs et des groupes.

    Cet exemple crée trois utilisateurs (player, admini, anonym) et deux groupes (players, adminis), puis assigne player au groupe players et admini au groupe adminis.

    sudo useradd player
    sudo groupadd players
    sudo usermod -g players player
    sudo useradd admini
    sudo groupadd adminis
    sudo usermod -g adminis admini
    sudo useradd anonym
  2. Configurez les ACL POSIX pour contrôler l'accès aux fichiers et aux répertoires.

    Les commandes suivantes créent un répertoire dir0 et définissent ses ACL :

    • Le groupe players obtient les autorisations de lecture et d'exécution (r-x).

    • Le groupe adminis obtient les autorisations de lecture, d'écriture et d'exécution (rwx).

    • L'utilisateur propriétaire et les « autres » n'ont aucune autorisation (---).

    sudo umask 777
    sudo mkdir dir0
    sudo setfacl -m g:players:r-x dir0
    sudo setfacl -m g:adminis:rwx dir0
    sudo setfacl -m u::--- dir0
    sudo setfacl -m g::--x dir0
    sudo setfacl -m o::--- dir0
    sudo setfacl -d -m g:players:r-x dir0
    sudo setfacl -d -m g:adminis:rwx dir0
    sudo setfacl -d -m u::--- dir0
    sudo setfacl -d -m g::--x dir0
    sudo setfacl -d -m o::--- dir0

    Exécutez sudo getfacl dir0 pour vérifier la configuration.

    # file: dir0
    # owner: root
    # group: root
    user::---
    group::--x
    group:players:r-x
    group:adminis:rwx
    mask::rwx
    other::---
    default:user::---
    default:group::--x
    default:group:players:r-x
    default:group:adminis:rwx
    default:mask::rwx
    default:other::---
  3. Vérifiez les autorisations.

    1. Vérifiez que l'utilisateur admini dispose des autorisations de lecture et d'écriture :

      sudo su admini -c 'touch dir0/file'
      sudo su admini -c 'echo 123 > dir0/file'
    2. Vérifiez que l'utilisateur player ne dispose que de l'autorisation de lecture.

      1. Vérifiez que l'utilisateur player ne peut pas créer le fichier file.

        Tentez de créer un fichier nommé file dans dir0 en tant qu'utilisateur player.

        • Exécutez la commande suivante :

          sudo su player -c 'touch dir0/file'
        • Résultat attendu si l'autorisation est refusée :

          touch: cannot touch 'dir0/file': Permission denied
      2. Vérifiez que l'utilisateur player peut lire dir0/file.

        • Exécutez la commande suivante :

          sudo su player -c 'cat dir0/file'
        • Résultat attendu si l'autorisation de lecture est accordée :

          123
      3. Vérifiez que l'utilisateur player ne peut pas écrire dans le fichier.

        • Exécutez la commande suivante :

          sudo su player -c 'echo 456 >> dir0/file'
        • Résultat attendu si l'autorisation d'écriture est refusée :

          bash: dir0/file: Permission denied

        Exécutez sudo su player -c 'getfacl dir0/file' pour consulter les autorisations de l'utilisateur player sur dir0/file.

        # file: dir0/file
        # owner: admini
        # group: adminis
        user::---
        group::---
        group:players:r-x
        group:adminis:rwx
        mask::rwx
        other::---
    3. Vérifiez que l'utilisateur anonym ne dispose d'aucune autorisation sur dir0.

      1. Vérifiez que l'utilisateur anonym ne peut pas lister les fichiers dans dir0.

        • Exécutez la commande suivante :

          sudo su anonym -c 'ls dir0'
        • Résultat attendu si l'autorisation est refusée :

          ls: cannot open directory dir0: Permission denied
      2. Vérifiez que l'utilisateur anonym ne peut pas lire le fichier.

        • Exécutez la commande suivante :

          sudo su anonym -c 'cat dir0/file'
        • Résultat attendu si l'autorisation de lecture est refusée :

          cat: dir0/file: Permission denied
      3. Vérifiez que l'utilisateur anonym ne peut pas accéder à l'ACL du fichier.

        • Exécutez la commande suivante :

          sudo su anonym -c 'getfacl dir0/file'
        • Résultat attendu si l'accès est refusé :

          getfacl: dir0/file: Permission denied

Révoquer les autorisations d'un utilisateur

L'exemple suivant révoque les autorisations d'un utilisateur en le réassignant à un autre groupe.

Bonne pratique : accordez les autorisations aux groupes plutôt qu'aux utilisateurs individuels. Pour révoquer l'accès, déplacez l'utilisateur vers un autre groupe. Les étapes suivantes déplacent l'utilisateur admini du groupe adminis vers adminis2.

  1. Créez le groupe adminis2 :

    sudo groupadd adminis2
  2. Déplacez l'utilisateur admini du groupe adminis vers adminis2 :

    sudo usermod -g adminis2 admini
  3. Vérifiez l'appartenance de l'utilisateur au groupe.

    • Exécutez la commande suivante :

      id admini
    • Le système renvoie les informations suivantes :

      uid=1057(admini) gid=1057(admini) groups=1061(adminis2)
  4. Vérifiez les autorisations de l'utilisateur admini.

    1. Vérifiez que l'utilisateur admini ne peut pas accéder à dir0.

      • Exécutez la commande suivante :

        sudo su admini -c 'ls dir0'
      • Résultat attendu si l'utilisateur admini ne peut pas accéder à dir0 :

        ls: cannot open directory dir0: Permission denied
    2. Vérifiez que l'utilisateur admini ne peut pas lire dir0/file.

      • Exécutez la commande suivante :

        sudo su admini -c 'cat dir0/file'
      • Résultat attendu si l'utilisateur admini ne peut pas lire dir0/file :

        cat: dir0/file: Permission denied
    3. Vérifiez que l'utilisateur admini ne peut pas accéder à dir0/file.

      • Exécutez la commande suivante :

        sudo su admini -c 'getfacl dir0/file'
      • Résultat attendu si l'utilisateur admini ne peut pas accéder à dir0/file :

        getfacl: dir0/file: Permission denied