すべてのプロダクト
Search
ドキュメントセンター

File Storage NAS:機能

最終更新日:Sep 19, 2026

このトピックでは、NFSv4 ACL および POSIX ACL に関連する機能について説明します。

NAS NFSv4 ACL の機能

  • サポートされているアクセス制御エントリ (ACE) のタイプは、許可 (Allow) のみです。拒否 (Deny)、監査 (Audit)、アラーム (Alarm) はサポートされていません。

    拒否 ACE は権限の設定を大幅に複雑化し、ユーザーを混乱させる可能性があるほか、セキュリティ上の問題を引き起こす場合があります。業界では、拒否 ACE は可能な限り避けるべきというコンセンサスが得られています。拒否 ACE をサポートしない理由の詳細については、「FAQ」をご参照ください。

    監査 ACE とアラーム ACE は Alibaba Cloud NAS NFS では有効になりません。監査およびアラームの機能が必要な場合は、Alibaba Cloud コンソールで設定できます。

  • ACL が設定されていないファイルまたはディレクトリには、モードに対応するデフォルト ACL が表示されます。次に例を示します。

    1. touch file コマンドを実行して、ファイルを作成します。

    2. ls -l file コマンドを実行して、ファイルの権限を確認します。

      -rw-r--r--. 1 root root 0 May 6 14:27 file
    3. nfs4_getfacl file コマンドを実行して、ファイルの現在の ACL 権限を確認します。

      # file: file
      A::OWNER@:rwatTnNcCy
      A::GROUP@:rtncy
      A::EVERYONE@:rtncy
  • ACE は特定の順序で並べ替えられ、重複排除されるため、ACL の出力がより明確になり、理解しやすくなります。

    ユーザーが ACE を追加または変更する際に、ACL に完全修飾の継承タイプを持つ ACE がすでに含まれている場合、新しい ACE は既存の ACE の許可ビットとマージされます。次に例を示します。

    • 並べ替え時、所有者、グループ、EVERYONE に対応する ACE は常に先頭に配置されます。

      nfs4_getfacl file コマンドを実行して、ファイルの ACL 権限の並び順を確認できます。

      # file: file
      A::OWNER@:rwaxtTnNcCy
      A::GROUP@:rtncy
      A::EVERYONE@:rtncy
      A::1001:rwaxtTNcCy
    • ユーザー 1009 に実行権限の ACE を追加します。並べ替えに従い、ユーザー 1001 の後に配置されます。

      • 次のコマンドを実行します。

        nfs4_setfacl -a A::1009:X file
        nfs4_getfacl file
      • 出力例

        # file: file
        A::OWNER@:rwaxtTcCy
        A::GROUP@:rwatcy
        A::EVERYONE@:tcy
        A::1001:rwaxtTNcCy
        A::1009:waxtTncCy
    • ユーザー 1009 に書き込み権限の ACE を追加します。システムは、新しい実行権限をユーザー 1009 の既存の ACE に自動的にマージします。

      • 次のコマンドを実行します。

        nfs4_setfacl -a A::1009:W file
        nfs4_getfacl file
      • 出力例

        # file: file
        A::OWNER@:rwaxtTcCy
        A::GROUP@:rwatcy
        A::EVERYONE@:tcy
        A::1001:rwaxtTNcCy
        A::1009:waxtTncCy
    • ユーザー 1009 に fd 継承の ACE を追加します。システムはこれを、継承機能のみを持つ ACE と、現在のファイルにのみ適用される ACE に分割し、その後、両方の ACE を ACL 内の同一継承タイプの ACE とマージします。

      • 次のコマンドを実行します。

        nfs4_setfacl -a A:fd:1009:r file
        nfs4_getfacl file
      • 出力例

        # file: file
        A::OWNER@:rwaxtTcCy
        A::GROUP@:rwatcy
        A::EVERYONE@:tcy
        A::1001:rwaxtTNcCy
        A::1009:rwaxtTNcCy
        A:fdi:1009:r
  • すべての継承機能をサポートしています。

    1. 現在のディレクトリ dir の権限が、所有者は書き込み可能、グループは読み取り可能、EVERYONE はアクセス不可であると仮定します。

      • 次のコマンドを実行します。

        nfs4_getfacl dir
      • 出力例

        # file: dir
        A::OWNER@:rwaDxtTnNcCy
        A::GROUP@:rxtcy
        A::EVERYONE@:tncy
    2. ユーザー 1000 に対して、継承を有効にした読み取り/書き込み権限を追加します。

      • 次のコマンドを実行します。

        nfs4_setfacl -a A:fd:1000:rwx dir
        nfs4_getfacl dir
      • 出力例

        # file: dir
        A::OWNER@:rwaDxtTcCy
        A::GROUP@:rxtcy
        A::EVERYONE@:tcy
        A::1000:rwx
        A:fdi:1000:rwx
    3. ディレクトリ dir 配下に作成されたファイルまたはディレクトリは、ACE を自動的に継承します。

      • ディレクトリ dir 配下にファイルを作成します。

        • 次のコマンドを実行します。

          touch dir/file
          nfs4_getfacl dir/file
        • 出力例

          # file: dir/file
          A::OWNER@:rwatTcCy
          A::GROUP@:rwatcy
          A::EVERYONE@:rwatcy
          A::1000:rwx
      • ディレクトリ dir 配下にディレクトリを作成します。

        • 次のコマンドを実行します。

          mkdir dir/subdir
          nfs4_getfacl dir/subdir
        • 出力例

          # file: dir/subdir
          A::OWNER@:rwaDxtTcCy
          A::GROUP@:rwaDxtcy
          A::EVERYONE@:rwaDxtcy
          A:fdi:1000:rwx
    説明
    • EVERYONE の権限は可能な限り最小限に抑えることを推奨します。関連するコードを実行する前に、まず umask 777 を実行して、ファイルおよびディレクトリ作成時に渡されるモードを 000 にし、デフォルト権限を最小化してください。詳細については、「Why doesn't umask change execute permissions on files?」をご参照ください。

    • Linux のシステムコールは、デフォルトでファイルおよびディレクトリに対してモードをパラメーターとして渡します。RFC 7530 のプロトコル標準によると、継承された ACL が適用された後、モード操作を重ねて適用し、ACL を変更する必要があります。プロトコルでは、グループのモードが変更される場合、すべてのグループ ACE の権限はグループのモード権限以下でなければなりません。これにより、グループ継承が失敗する場合があります。たとえば、子ファイルは本来 Group A:RWX を継承するはずですが、デフォルトで渡されるモードが GROUPS:R の場合、子ファイルの Group A ACE は Group A:R になります。この問題を回避するため、実際の運用では、セマンティクスを簡素化するために、mode は所有者、グループ、および EVERYONE 以外のグループの ACL を変更しません。グループの権限を削除するには、該当する ACE を直接削除してください。

  • 複数のマシン間でのユーザー名と UID/GID のマッピングは、お客様自身で維持する必要があります。

    現在、Alibaba Cloud NAS NFS の認証は IP セキュリティグループを使用し、ユーザー名ベースの認証はサポートしていません。ユーザーが設定した NFSv4 ACL は、バックエンドに UID と GID を持つ ACE として保存されます。NFSv4 ACL クライアントに表示される際、ローカルの /etc/passwd を自動的に読み込み、UID と GID をユーザー名とグループ名に変換します。複数のマシン間でユーザー名と UID/GID のマッピングを管理し、同一のユーザー名またはグループ名が同一の UID/GID にマップされるようにし、誤りを防止する必要があります。

  • 拡張属性を介した NFSv4 ACL の出力をサポートしています。

    • 次のコマンドを実行します。

      getfattr -n system.nfs4_acl file
    • 出力例

      # file: file
      system.nfs4_acl=0sAAAABgAAAAAAAAAAABYBhwAAAAZPV05FUkAAAAAAAAAAAAAAABIAhwAAAAZHUk9VUEAAAAAAAAAAAAAAABIAhwAAAAlFVkVSWU9ORUAAAAAAAAAAAAAAAAAAAAEAAAAEMTAwMAAAAAAAAAALAAAAAwAAAAQxMDAwAAAAAAAAAEAAFgGQAAAABTEwMDAxAAAA
  • cp などのツールを使用した NFSv4 ACL の移行をサポートしています。

    Alibaba Cloud NAS は、「How to preserve NFS v4 ACLs via extended attributes when copying file」で言及されている cp、tar、rsync ツールを使用した NFSv4 ACL の移行をサポートしています。

    次の例では、cp --preserve=xattr file1 file2 は file1 を file2 にコピーする際に ACL もコピーします。cp -ar dir1 dir2 は dir1 を dir2 にコピーする際に ACL もコピーします。

    説明

    rsync ツールは、バージョンが 3.1.2 未満の場合、NFSv4 ACL を移行できない可能性があります。

    • 例1:ファイル ACL の移行。

      1. nfs4_getfacl file1 コマンドを実行して、file1 の ACL 権限を確認します。

        # file: file1
        A::OWNER@:rwatTcCy
        A::GROUP@:rwatcy
        A::EVERYONE@:rwatcy
        A::1000:rtncy
      2. cp --preserve=xattr file1 file2 コマンドを実行して、file1 の ACL を file2 にコピーします。

      3. nfs4_getfacl file2 コマンドを実行して、file2 の ACL 権限を確認します。

        # file: file2
        A::OWNER@:rwatTcCy
        A::GROUP@:rwatcy
        A::EVERYONE@:rwatcy
        A::1000:rtncy
    • 例2:ディレクトリ ACL の移行。

      1. nfs4_getfacl dir1 コマンドを実行して、dir1 ディレクトリの ACL 権限を確認します。

        # file: dir1
        A::OWNER@:rwaDxtTnNcCy
        A::GROUP@:rxtncy
        A::EVERYONE@:rxtncy
        A::1000:rxtncy
      2. cp -ar dir1 dir2 コマンドを実行して、dir1 の ACL を dir2 にコピーします。

      3. nfs4_getfacl dir2 コマンドを実行して、dir2 ディレクトリの ACL 権限を確認します。

        # file: dir2
        A::OWNER@:rwaDxtTnNcCy
        A::GROUP@:rxtncy
        A::EVERYONE@:rxtncy
        A::1000:rxtncy
  • NFSv4 ACL とモードの相互運用性をサポートしています。ACL を変更するとモードが変更される場合があり、その逆も同様です。

    たとえば、file の現在のモードが 0666 の場合、ファイル権限と ACL 権限の例は次のとおりです。

    • ls -l file コマンドを実行して、ファイル権限を確認します。

      -rw-rw-rw-. 1 root root 0 May 3 2019 file
    • nfs4_getfacl file コマンドを実行して、ファイルの ACL 権限を確認します。

      # file: file
      A::OWNER@:rwatTcCy
      A::GROUP@:rwatcy
      A::EVERYONE@:rwatcy

    モードを設定して所有者に実行権限を追加すると、対応する ACE にも実行権限が付与されます。次に例を示します。

    1. chmod u+x file コマンドを実行して、所有者に実行権限を追加します。

    2. ls -l file コマンドを実行して、ファイル権限を確認します。

      -rwxrw-rw-. 1 root root 0 May 3 2019 file
    3. nfs4_getfacl file コマンドを実行して、所有者に実行権限が追加されたことを確認します。

      # file: file
      A::OWNER@:rwaxtTcCy
      A::GROUP@:rwatcy
      A::EVERYONE@:rwatcy

    ACE を設定してグループに実行権限を追加すると、対応するモードにも実行権限が付与されます。

    1. nfs4_setfacl -a A::GROUP@:x file コマンドを実行して、グループに実行権限を追加します。

    2. ls -l file コマンドを実行して、ファイル権限を確認します。

      -rwxrwxrw-. 1 root root 0 May 3 2019 file
    説明
    • 相互運用性において、ACL の EVERYONE は UNIX モードの「その他 (other)」に相当します。モードの「その他」を変更すると ACE の EVERYONE が直接変更されるため、権限セマンティクスにわずかな影響があります。たとえば、現在のモードが rw------- の場合に chmod o+r を実行すると、ACE EVERYONE + r により所有者とグループを含む全員が読み取り権限を得ます。一方、本来の UNIX モードでは、グループは引き続き読み取り権限を持ちません。

    • NFSv4 ACL が設定されていない場合、モードの「その他」は「その他」のセマンティクスを維持します。NFSv4 ACL を設定した後は、モードの「その他」は EVERYONE のセマンティクスに変わります。NFSv4 ACL を使用した後にモードを使用しないことを強く推奨します。

  • モードと NFSv4 ACL 権限の対応関係。

    • chmod コマンドを使用してモードを変更すると、次の表に示すとおり NFSv4 ACL も連動して変更されます。

      その他

      mode の「その他」

      ファイルでの NFSv4 ACL EVERYONE

      ディレクトリでの NFSv4 ACL EVERYONE

      ---

      A::EVERYONE@:tncy

      A::EVERYONE@:tncy

      --x

      A::EVERYONE@:xtncy

      A::EVERYONE@:xtncy

      -w-

      A::EVERYONE@:watncy

      A::EVERYONE@:waDtncy

      -wx

      A::EVERYONE@:waxtncy

      A::EVERYONE@:waDxtncy

      r--

      A::EVERYONE@:rtncy

      A::EVERYONE@:rtncy

      r-x

      A::EVERYONE@:rxtncy

      A::EVERYONE@:rxtncy

      rw-

      A::EVERYONE@:rwatncy

      A::EVERYONE@:rwaDtncy

      rwx

      A::EVERYONE@:rwaxtncy

      A::EVERYONE@:rwaDxtncy

      グループ

      mode の「グループ」

      ファイルでの NFSv4 ACL GROUP

      ディレクトリでの NFSv4 ACL GROUP

      ---

      A::GROUP@:tncy

      A::GROUP@:tncy

      --x

      A::GROUP@:xtncy

      A::GROUP@:xtncy

      -w-

      A::GROUP@:watncy

      A::GROUP@:waDtncy

      -wx

      A::GROUP@:waxtncy

      A::GROUP@:waDxtncy

      r--

      A::GROUP@:rtncy

      A::GROUP@:rtncy

      r-x

      A::GROUP@:rxtncy

      A::GROUP@:rxtncy

      rw-

      A::GROUP@:rwatncy

      A::GROUP@:rwaDtncy

      rwx

      A::GROUP@:rwaxtncy

      A::GROUP@:rwaDxtncy

      所有者

      mode の「所有者」

      ファイルでの NFSv4 ACL OWNER

      ディレクトリでの NFSv4 ACL OWNER

      ---

      A::OWNER@:tTnNcCy

      A::OWNER@:tTnNcCy

      --x

      A::OWNER@:xtTnNcCy

      A::OWNER@:xtTnNcCy

      -w-

      A::OWNER@:watTnNcCy

      A::OWNER@:waDtTnNcCy

      -wx

      A::OWNER@:waxtTnNcCy

      A::OWNER@:waDxtTnNcCy

      r--

      A::OWNER@:rtTnNcCy

      A::OWNER@:rtTnNcCy

      r-x

      A::OWNER@:rxtTnNcCy

      A::OWNER@:rxtTnNcCy

      rw-

      A::OWNER@:rwatTnNcCy

      A::OWNER@:rwaDtTnNcCy

      rwx

      A::OWNER@:rwaxtTnNcCy

      A::OWNER@:rwaDxtTnNcCy

    • nfs4_setfacl コマンドを使用して NFSv4 ACL を変更する際、ファイル権限を変更しており、かつ NFSv4 ACL 属性 wa の両方が存在しない場合、モードには w 属性が表示されません。

    • nfs4_setfacl コマンドを使用して NFSv4 ACL を変更する際、ディレクトリ権限を変更しており、かつ NFSv4 ACL 属性 waD がすべて存在しない場合、モードには w 属性が表示されません。

    • ディレクトリの NFSv4 ACL に Dx 権限がある場合、この場合モードには w 属性が表示されませんが、ディレクトリでは子ファイルおよび子ディレクトリの削除が可能です。これは、モードに wx 属性があるのと同等です。

    • nfs4_setfacl を使用する場合は、大文字の RWX を使用して権限を設定することを推奨します。大文字の RWX はモードの rwx に自動的にマッピングされるため、NFSv4 ACL とモードの互換性の問題を回避できます。

    NFSv4 ACL はモードよりも豊富な権限定義をサポートしており、各権限ビットはそれぞれ異なる機能を持ちます。実際の運用では、一部の権限機能は複数の権限ビットが同時に存在して初めて有効になる場合があり、また一部の権限ビットは他の権限ビットによって表現する必要があります。さらに、ファイルとディレクトリでは、同一の権限ビットでも機能が異なる場合があります。ファイルおよびディレクトリの NFSv4 ACL 権限については、「NFSv4 ACL」をご参照ください。

    説明
    • OWNER のデフォルト最小権限は tTnNcCy です。これ未満の権限は許可されません。

    • GROUP と EVERYONE のデフォルト最小権限は tncy です。これ未満の権限は許可されません。

  • NFSv4 ACL と POSIX ACL の相互運用性をサポートしています。

    NFSv4 ACL を含むファイルシステムを NFSv3 プロトコルでマウントすると、NFSv4 ACL は POSIX ACL に変換されます。また、POSIX ACL を含むファイルシステムを NFSv4 プロトコルでマウントすると、POSIX ACL は NFSv4 ACL に変換されます。

    説明

    POSIX ACL と NFSv4 ACL のセマンティクスは完全には一致しません。たとえば、POSIX ACL の継承はファイルとディレクトリを区別しません。また、POSIX ACL の権限は rwx に制限されますが、NFSv4 ACL はより豊富です。そのため、NFSv4 ACL のみ、または POSIX ACL のみを使用し、可能な限り混在させないことを強く推奨します。

    dir0 に NFSv4 ACL が設定されており、権限が次のとおりであると仮定します。

    • 次のコマンドを実行して、dir0 の権限を取得します。

      sudo nfs4_getfacl dir0
    • 出力例

      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

    dir0 の POSIX ACL の権限は次のとおりです。

    • 次のコマンドを実行します。

      sudo getfacl dir0
    • 出力例

      user::---
      group::---
      group:players:r-x
      group:adminis:rwx
      mask::rwx
      other::---
      default:user::---
      default:group::---
      default:group:players:r-x
      default:group:adminis:rwx
      default:mask::rwx
      default:other::---

    dir0/file に NFSv4 ACL 権限が次のとおり設定されていると仮定します。

    • 次のコマンドを実行します。

      sudo nfs4_getfacl dir0/file
    • 出力例

      A::OWNER@:tTnNcCy
      A::GROUP@:tncy
      A::EVERYONE@:tncy
      A:g:19064:rxtncy
      A:g:19065:rwaxtTnNcCy

    dir0/file の POSIX ACL の権限は次のとおりです。

    • 次のコマンドを実行します。

      sudo getfacl dir0/file
    • 出力例

      user::---
      group::---
      group:players:r-x
      group:adminis:rwx
      mask::rwx
      other::---
  • NFSv4 ACL 数の上限

    デフォルトでは、Alibaba Cloud NAS はファイルシステムごとに最大 100,000 個の非同一 ACL をサポートし、ACL ごとに最大 500 個の ACE をサポートします。

    説明

    権限評価で消費される時間とリソースを削減するため、ACL と ACE の過剰な使用は避けてください。

NAS POSIX ACL の機能

  • 「その他 (other)」の権限は全員に適用されます。

    これには、ユーザー、グループ、および ACE に出現するすべてのユーザーが含まれます。これは NFSv4 ACL の EVERYONE に相当します。

    説明

    いかなる場合でも、「その他」には最小限の権限のみを付与することを強く推奨します。

    たとえば、myfile ファイルに次の ACL があるとします。alice を含む ACE に書き込み権限がなくても、「その他」に書き込み権限があるため、ユーザー alice は書き込み権限を持ちます。次に例を示します。

    • 次のコマンドを実行します。

      getfacl myfile
    • 出力例

      # file: myfile
      # owner: root
      # group: root
      user::rw-
      user:alice:r--
      group::r--
      mask::r--
      other::rw-
  • chmod コマンドを実行しても、モードに基づかない ACE は変更されません。

    説明

    POSIX ACL が設定されたファイルでは、可能な限りモードの変更を避けてください。代わりに ACL を変更して権限を設定してください。

    たとえば、myfile ファイルに、グループ players に読み取り/書き込み権限を付与する ACE があるとします。次に例を示します。

    • 次のコマンドを実行します。

      getfacl myfile
    • 出力例

      # file: myfile
      # owner: root
      # group: root
      user::rw-
      user:player:rw-
      group::rw-
      group:players:rw-
      mask::rw-
      other::---

    chmod g-w myfile または chmod u-w myfile を実行しても、ユーザー player とグループ players の権限は変更されません。これは POSIX ACL specification とは異なりますが、POSIX ACL により設定された特定のユーザー/グループの権限が、モードの変更によって影響を受けないことが保証されます。次に例を示します。

    • 次のコマンドを実行します。

      getfacl myfile
    • 出力例

      # file: myfile
      # owner: root
      # group: root
      user::r--
      user:player:rw-
      group::r--
      group:players:rw-
      mask::rw-
      other::---
  • ファイルに対して、グループと「その他」のいずれにも実行権限 (x) がない場合、ACE の実行権限も有効になりません。

    これはお使いの Linux システムによって決まります。NAS サーバーが実行を許可しても、NAS クライアントは、実際に実行を許可する条件として、グループまたは「その他」に実行権限があることを要求します。

    たとえば、myfile ファイルに対して、グループと「その他」のいずれにも実行権限がない場合、ユーザー player もファイルを実行できません。次に例を示します。

    • 次のコマンドを実行します。

      getfacl myfile
    • 出力例

      # file: myfile
      # owner: root
      # group: root
      user::rw-
      user:player:r-x
      group::r--
      mask::r-x
      other::r--

    グループに実行権限がある場合、ユーザー player にも実行権限があります。次に例を示します。

    • 次のコマンドを実行します。

      getfacl myfile
    • 出力例

      # file: myfile
      # owner: root
      # group: root
      user::rw-
      user:player:r-x
      group::r-x
      mask::r-x
      other::r--
  • 継承可能な NFSv4 ACL がディレクトリに設定されている場合、NFSv3 ではこの動作が POSIX ACL 標準に準拠しない可能性があります。

    これは、NFSv4 ACL の継承はファイル継承とディレクトリ継承に分けられる一方、POSIX ACL はファイルとディレクトリの両方で継承されるためです。

    説明

    NFSv4 ACL と POSIX ACL の混在は避け、ファイルシステムのマウントには 1 つの NFS バージョンのみを使用することを推奨します。

  • マスク値の変更はサポートされません。

    NAS POSIX ACL のマスク値は、すべてのユーザーおよびグループの権限の和集合によって生成されます。実用的な意味はなく、変更もできません。

  • 複数のマシン間でのユーザー名と UID/GID のマッピングは、お客様自身で維持する必要があります。

    現在、Alibaba Cloud NAS NFS の認証は IP セキュリティグループを使用し、ユーザー名ベースの認証はサポートしていません。お客様が設定した POSIX ACL は、バックエンドにユーザー UID と GID を持つ ACE として保存されます。POSIX ACL クライアントに表示される際、ローカルの /etc/passwd を自動的に読み込み、UID と GID をユーザー名とグループ名に変換します。複数のマシン間でユーザー名と UID/GID のマッピングを管理し、同一のユーザー名またはグループ名が同一の UID/GID にマップされるようにし、誤りを防止する必要があります。

  • 拡張属性を介した POSIX ACL の出力をサポートしています。

    • 次のコマンドを実行します。

      getfattr -n system.posix_acl_access file
    • 出力例

      # file: file
      system.posix_acl_access=0sAgAAAAEAAAD/////AgAFACAEAAAEAAAA/////xAABQD/////IAABAP////8=
  • cp などのツールを使用した POSIX ACL の移行をサポートしています。

    Alibaba Cloud NAS は、「How to preserve NFS v4 ACLs via extended attributes when copying file」で言及されている cp、tar、rsync ツールを使用した POSIX ACL の移行をサポートしています。

    次の例では、cp --preserve=xattr file1 file2 は file1 を file2 にコピーする際に ACL もコピーします。cp -ar dir1 dir2 は dir1 を dir2 にコピーする際に ACL もコピーします。

    説明

    rsync ツールは、バージョンが 3.1.2 未満の場合、POSIX ACL を移行できない可能性があります。

    • 例1:ファイル ACL 権限の移行。

      1. getfacl file1 コマンドを実行して、file1 の ACL 権限を確認します。

        # file: file1
        # owner: root
        # group: root
        user::rw-
        user:player:r--
        group::r--
        mask::r--
        other::r--
      2. cp --preserve=xattr file1 file2 コマンドを実行して、file1 の ACL を file2 にコピーします。

      3. getfacl file2 コマンドを実行して、file2 の ACL 権限を確認します。

        # file: file2
        # owner: root
        # group: root
        user::rw-
        user:player:r--
        group::r--
        mask::r--
        other::r--
    • 例2:ディレクトリ ACL の移行。

      1. getfacl dir1 コマンドを実行して、dir1 の ACL 権限を確認します。

        # file: dir1
        # owner: root
        # group: root
        user::rwx
        user:player:r-x
        group::r-x
        mask::r-x
        other::r-x
      2. cp -ar dir1 dir2 コマンドを実行して、dir1 の ACL を dir2 にコピーします。

      3. getfacl dir2 コマンドを実行して、dir2 の ACL 権限を確認します。

        # file: dir2
        # owner: root
        # group: root
        user::rwx
        user:player:r-x
        group::r-x
        mask::r-x
        other::r-x
  • POSIX ACL 数の上限

    デフォルトでは、Alibaba Cloud NAS はファイルシステムごとに最大 100,000 個の非同一 ACL をサポートし、ACL ごとに最大 500 個の ACE をサポートします。

    説明

    権限評価で消費される時間とリソースを削減するため、ACL と ACE の過剰な使用は避けてください。

よくある質問

拒否 ACE タイプがサポートされないのはなぜですか?

  • ACL 内における ACE の位置が決定的な意味を持ちます。

    NFSv4 ACL は ACE の順序を強制せず、拒否 ACE は任意の位置に配置できます。ACL に 2 つの ACE (A::Alice:r と D::Alice:r) があるとすると、2 つの ACE の順序によって Alice が読み取り権限を持つかどうかが直接決まります。

    説明

    ACL を設定する際は、各 ACE の位置に十分注意してください。

  • ACL 内の ACE 数が急速に増加します。

    ACE の順序が強制されないため、ACL リスト内の ACE はマージや重複排除が困難です。時間の経過とともに ACL に ACE を追加していくと、数十、あるいは数百の ACE にまで増加する可能性があります。この場合、権限を評価する際にすべての ACE をフルスキャンする必要があり、時間とリソースを多く消費します。

  • モードには拒否機能がないため、拒否を使用すると ACL とモードの相互運用性がより複雑になります。

    • 拒否が存在する場合、モードが変更されると、複数の ACE を ACL に追加する必要が生じる可能性があります。たとえば、モードを -rw-rw-rw に変更するには、ACL の先頭に次の内容を順序どおり追加する必要があります。

      A::OWNER@:rw
      D::OWNER@:x
      A::GROUP@:rw
      D::GROUP@:x
      A::EVERYONE@:rw
      D::EVERYONE@:x
    • 拒否がない場合、EVERYONE と「その他」を区別せずに ACE を並べ替え、重複排除できます。モードが変更されても、ACL の変更は非常に容易です。所有者、グループ、EVERYONE の ACE を見つけ、次の内容に変更するだけです。

      A::OWNER@:rw
      A::GROUP@:rw
      A::EVERYONE@:rw
  • NFSv4 ACL と POSIX ACL を相互に変換できません。

    POSIX ACL は拒否をサポートしません。NFSv4 ACL に拒否が含まれている場合、POSIX ACL に変換できません。