Tous les produits
Search
Centre de documentation

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

Dernière mise à jour :Aug 18, 2026

Cette rubrique explique comment configurer les listes de contrôle d'accès (ACL) NFSv4 et les utiliser pour gérer l'accès aux fichiers et aux répertoires dans un système de fichiers NFSv4.

Prérequis

  • Le système de fichiers NFSv4 est monté. Pour plus d'informations, consultez la section Monter un système de fichiers NFS sur une instance ECS Linux.

  • La fonctionnalité NFS ACL est activée pour le système de fichiers. Pour l'activer, accédez à la page des détails du système de fichiers dans la console NAS, cliquez sur Access Control dans le volet de navigation de gauche, puis activez l'option NFS ACL.

Contexte

Montez un système de fichiers NFSv4 sur une instance Elastic Compute Service (ECS) Linux et installez l'outil spécifique à Linux nfs4-acl-tools sur cette instance. Une fois l'outil installé, utilisez les outils standard nfs4_getfacl et nfs4_setfacl pour configurer les listes ACL NFSv4.

Description des commandes

Avant de configurer les listes ACL NFSv4, familiarisez-vous avec les commandes spécifiques. Le tableau suivant les décrit.

Commande

Description

nfs4_getfacl <filename>

Interroge la liste ACL qui s'applique à un fichier spécifié.

nfs4_setfacl -a A::GROUP@:W <filename>

Accorde l'autorisation d'écriture au groupe.

nfs4_setfacl -a A::1000:W <filename>

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

nfs4_setfacl -a A:g:10001:W <filename>

Accorde l'autorisation d'écriture au groupe d'utilisateurs 10001.

nfs4_setfacl -e <filename>

Modifie une liste ACL en mode interactif.

nfs4_getfacl <filename> > saved_acl.txt

Enregistre la liste des autorisations d'un fichier spécifié dans un fichier TXT.

nfs4_setfacl -S saved_acl.txt <filename>

Restaure les autorisations ACL à partir d'un fichier texte.

nfs4_setfacl -m A::1001:rwaxTNcCy A::1001:rxtcy file1

Modifie l'autorisation d'une entrée ACE qui s'applique au fichier file1.

`nfs4_getfacl file1

nfs4_setfacl -S - file2`

Copie la liste ACL du fichier file1 vers le fichier file2.

`nfs4_getfacl file1

grep @

nfs4_setfacl -S - file1`

Supprime les entrées ACE non conservées du fichier file1.

nfs4_setfacl -R -a A:g:10001:rW dir

Ajoute une entrée ACE qui accorde les autorisations de lecture et d'écriture sur les fichiers et sous-répertoires du répertoire dir à un principal de groupe nommé 10001.

`find dir -type f -exec sh -c 'for ace in $(nfs4_getfacl \{}

grep "^A.*\:1005\:"); do nfs4_setfacl -x $ace \{}; done' \;`

Supprime toutes les entrées ACE contenant 1005 de tous les fichiers de l'arborescence du répertoire dir.

nfs4_setfacl -a A:fdg:10001:rW dir1

Ajoute une entrée ACE qui accorde les autorisations de lecture et d'écriture sur les nouveaux fichiers et sous-répertoires du répertoire dir1 à un principal de groupe nommé 10001.

nfs4_setfacl -a A:fg:10001:rx dir1

Accorde au groupe d'utilisateurs 10001 les autorisations de lecture et d'exécution sur les nouveaux fichiers créés dans le répertoire dir1.

Procédure

Pour contrôler l'accès aux fichiers et aux répertoires en configurant des listes ACL NFSv4, suivez les étapes ci-dessous.

  1. Créez des utilisateurs et des groupes.

    Dans cet exemple, créez les utilisateurs suivants : player, admini et anonym. Créez les groupes suivants : players et adminis. Ajoutez l'utilisateur player au groupe players et l'utilisateur 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. Installez les outils requis pour configurer les listes ACL NFSv4.

    Si ces outils sont déjà installés, ignorez cette étape.

    # CentOS/RHEL/Alibaba Cloud Linux
    sudo yum -y install nfs4-acl-tools
    
    # Ubuntu/Debian
    sudo apt-get -y install nfs4-acl-tools
  3. Obtenez les ID des groupes players et adminis.

    Ouvrez le fichier /etc/group. Les ID des groupes players et adminis s'affichent.

    players:x:19064:player
    adminis:x:19065:admini
  4. Configurez les listes ACL NFSv4 pour contrôler l'accès aux fichiers et aux répertoires.

    Exécutez les commandes suivantes : créez un répertoire nommé dir0. Ajoutez des entrées ACE qui accordent les autorisations en lecture seule sur tous les fichiers du répertoire dir0 au groupe players, accordent les autorisations de lecture, d'écriture et d'exécution au groupe adminis, et n'accordent aucune autorisation aux autres utilisateurs.

    sudo umask 777
    sudo mkdir dir0
    sudo nfs4_setfacl -a A:fdg:19064:RX dir0
    sudo nfs4_setfacl -a A:fdg:19065:RWX dir0
    sudo nfs4_setfacl -a A:fdg:OWNER@: dir0
    sudo nfs4_setfacl -a A:fdg:GROUP@: dir0
    sudo nfs4_setfacl -a A:fdg:EVERYONE@: dir0

    Une fois la configuration terminée, exécutez sudo nfs4_getfacl dir0 pour consulter les résultats.

    A::OWNER@:tTnNcCy
    A::GROUP@:tncy
    A::EVERYONE@:tncy
    A:fdi:EVERYONE@:tncy
    A:fdi:OWNER@:tTnNcCy
    A:fdi:GROUP@:tncy
    A:g:19064:rxtncy
    A:g:19065:rwaDxtTnNcCy
    A:fdig:19064:rxtncy
    A:fdig:19065:rwaDxtTnNcCy
  5. Vérifiez la configuration de la liste ACL.

    1. Vérifiez que l'utilisateur admin 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 dispose des autorisations en lecture seule.

      1. Vérifiez que vous disposez de l'autorisation de créer des fichiers (par exemple, en créant dir0/file).

        • Exécutez la commande suivante :

          sudo su player -c 'touch dir0/file'
        • Si la sortie ressemble aux informations suivantes, l'utilisateur player ne dispose pas des autorisations nécessaires pour créer un fichier :

          touch: cannot touch ‘dir0/file’: Permission denied
      2. Vérifiez que vous disposez de l'autorisation d'écriture (par exemple, en écrivant dans le dir0/file).

        • Exécutez la commande suivante :

          sudo su player -c 'echo 456 >> dir0/file'
        • Si la sortie ressemble aux informations suivantes, l'utilisateur player ne dispose pas des autorisations d'écriture :

          bash: dir0/file: Permission denied
      3. Assurez-vous que vous disposez de l'autorisation de lecture.

        • Exécutez la commande suivante :

          sudo su player -c 'cat dir0/file'
        • Si la sortie ressemble aux informations suivantes, l'utilisateur player dispose des autorisations de lecture :

          123

        Vous pouvez également exécuter la sudo su player -c 'nfs4_getfacl dir0/file' commande pour afficher l'autorisation de l'utilisateur player sur le fichier dir0/file.

        A::OWNER@:tTnNcCy
        A::GROUP@:tncy
        A::EVERYONE@:tncy
        A:g:19064:rxtncy
        A:g:19065:rwaxtTnNcCy
    3. Vérifiez que l'utilisateur anonym ne dispose d'aucune autorisation.

      1. Vérifiez que l'utilisateur anonym ne dispose pas des autorisations nécessaires pour afficher les fichiers du répertoire dir0.

        • Exécutez la commande suivante :

          sudo su anonym -c 'ls dir0'
        • Si le message suivant est renvoyé, cela indique que l'utilisateur anonyme ne dispose pas d'autorisation d'accès.

          ls: cannot open directory dir0: Permission denied
      2. Vérifiez que vous ne pouvez pas afficher le contenu du fichier.

        • Exécutez la commande suivante :

          sudo su anonym -c 'cat dir0/file'
        • Si la sortie ressemble aux informations suivantes, l'utilisateur anonym ne dispose pas des autorisations nécessaires pour accéder au fichier dans le répertoire dir0. NFSv4 renvoie cette erreur lorsque l'autorisation de recherche de répertoire (exécution) est refusée :

          cat: dir0/file: No such file or directory
      3. Vérifiez que vous ne disposez pas de l'autorisation d'accéder au fichier « file ».

        • Exécutez la commande suivante :

          sudo su anonym -c 'nfs4_getfacl dir0/file'
        • Si la sortie ressemble aux informations suivantes, l'utilisateur anonym ne dispose pas des autorisations nécessaires pour accéder au fichier.

          Invalid filename: dir0/file

Opérations connexes

Utilisez la méthode suivante pour révoquer les autorisations d'un utilisateur.

Si vous souhaitez utiliser les listes ACL NFSv4, nous vous recommandons d'ajouter chaque utilisateur à un groupe. Cela vous permet de configurer les autorisations pour des groupes d'utilisateurs plutôt que pour des utilisateurs individuels. Pour révoquer les autorisations sur un objet d'un utilisateur, supprimez l'utilisateur du groupe auquel les autorisations sur l'objet ont été accordées. Par exemple, exécutez les commandes suivantes pour supprimer l'utilisateur admini du groupe adminis et ajouter l'utilisateur au groupe adminis2.

  1. Créez le groupe adminis2.

    sudo groupadd adminis2
  2. Déplacez l'utilisateur admin du groupe admins vers le groupe admins2.

    sudo usermod -g adminis2 admini
  3. Interrogez les autorisations d'un ID utilisateur.

    • Exécutez la commande suivante :

      id admini
    • Les informations suivantes sont renvoyées :

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

    1. Vérifiez que vous ne pouvez pas accéder au répertoire dir0.

      • Exécutez la commande suivante :

        sudo su admini -c 'ls dir0'
      • Si la sortie ressemble aux informations suivantes, l'utilisateur admini ne dispose pas des autorisations nécessaires pour accéder au répertoire dir0 :

        ls: cannot open directory dir0: Permission denied
    2. Vérifiez que l'utilisateur admini ne dispose pas des autorisations nécessaires pour afficher le contenu du fichier dir0/file.

      • Exécutez la commande suivante :

        sudo su admini -c 'cat dir0/file'
      • Si la sortie ressemble aux informations suivantes, l'utilisateur admini ne dispose pas des autorisations nécessaires pour accéder au fichier dans le répertoire dir0. NFSv4 renvoie cette erreur lorsque l'autorisation de recherche de répertoire (exécution) est refusée :

        cat: dir0/file: No such file or directory
    3. Vérifiez que l'utilisateur admini ne dispose pas des autorisations nécessaires pour accéder au fichier dir0/file.

      • Exécutez la commande suivante :

        sudo su admini -c 'nfs4_getfacl dir0/file'
      • Si la sortie ressemble aux informations suivantes, l'utilisateur admini ne dispose pas des autorisations nécessaires pour accéder au fichier dans le répertoire dir0. NFSv4 renvoie cette erreur lorsque l'autorisation de recherche de répertoire (exécution) est refusée :

        Invalid filename: dir0/file