ノート:

Oracle LinuxでのACLの使用および有効化

イントロダクション

アクセス制御リスト(ACL)は、ディレクトリおよびファイルに対するアクセス制御を提供します。ACLは、所有者、グループ、およびその他のすべてのシステムユーザーの読み取り、書き込み、および実行権限を設定できます。

ACLは、特定のユーザーまたはグループがACL対応のファイルやディレクトリにアクセスする方法を指定する一連のルールで構成されます。通常のACLエントリは、1つのファイルまたはディレクトリへのアクセス情報を指定します。デフォルトのACLエントリはディレクトリに対してのみ設定され、アクセスACLがないディレクトリ内のファイルに対してデフォルトのアクセス情報を指定します。

ディレクトリでデフォルトのACLを設定すると、そのサブディレクトリは同じ権利を自動的に継承します。ACLは、btrfsext3ext4OCFS2およびXFSの各ファイル・システムと、マウントされたNFSファイル・システムで使用できます。

目的

要件

使用可能なディスクと Oracle Linuxのフルパッチインストールを備えたシステム。

演習環境の設定

ノート: 無料ラボ環境を使用する場合、接続およびその他の使用手順については、Oracle Linux Labの基本を参照してください。

  1. まだ接続していない場合は、端末を開き、ssh経由でol-node01インスタンスに接続します。

    ssh oracle@<ip_address_of_instance>
    
  2. ブロック・ボリュームが存在することを確認します。

    sudo lsblk -f
    

    フリー・ラボ環境の出力には、ベースOSを含むsdaと、この演習で使用するsdbの2つのブロック・デバイスが表示されます。-fオプションを使用すると、ファイルシステムタイプ(FSTYPE)およびブロック(汎用一意識別子(UUID)が表示されます。

ACLサポートによるファイル・システムのマウント

  1. マウント・ポイント・ディレクトリを作成します。

    sudo mkdir /test
    
  2. ACLサポートが存在することを確認します。

    ext4btrfsxfsなどの Oracle Linuxファイルシステムは、aclマウントオプションをデフォルトとして有効にします。/dev/sdb1などのext4ファイル・システムで、tune2fsを使用してこれを確認します。

    sudo tune2fs -l /dev/sdb1 | grep -i acl
    

    出力例:

    [oracle@ol-node01 ~]$ sudo tune2fs -l /dev/sdb1 | grep -i acl
    Default mount options:    user_xattr acl
    
  3. ACLをサポートしてディスクをマウントします。

    ファイルシステムで aclマウントオプションがデフォルトで有効になっていない場合は、mountコマンドの使用時に -o aclを渡します。/dev/sdb1ext4を使用するため、このオプションはデフォルトでオンになっています。

    sudo mount -t ext4 /dev/sdb1 /test
    

    リブート後もこのマウントポイントを永続させるには、それをfstabファイルに追加します。

    MYUUID=$(sudo blkid | grep UUID= | grep sdb1 | awk '{ print $2 }')
    echo "$MYUUID /test ext4 defaults 0 0" | sudo tee -a /etc/fstab > /dev/null
    
  4. ファイル・システムのマウントが存在することを確認してください。

    df -T | grep sdb1
    

    出力は、ext4ファイル・システム/dev/sdb1がマウント・ポイント/testに存在することを示しています。

ACL機能の使用

  1. 新しいマウントポイントの下にファイルを作成してみてください。

    touch /test/file1
    

    出力例:

    touch: cannot touch '/test/file1': Permission denied
    

    oracleユーザーには/testディレクトリにファイルを作成する権限がないため、コマンドは失敗します。

  2. ディレクトリのACL情報を取得します。

    sudo getfacl /test
    

    出力例:

    [oracle@ol-node01 ~]$ sudo getfacl /test
    getfacl: Removing leading '/' from absolute path names
    # file: test
    # owner: root
    # group: root
    user::rwx
    group::r-x
    other::r-x
    
  3. ACLルールをディレクトリに追加します。

    sudo setfacl -m u:oracle:rwx /test
    

    このルールは、oracleユーザーに読取り書込みおよび実行権限を付与します。

  4. ディレクトリの更新されたACL情報を確認します。

    sudo getfacl /test
    

    出力例:

    getfacl: Removing leading '/' from absolute path names
    # file: test
    # owner: root
    # group: root
    user::rwx
    user:oracle:rwx
    group::r-x
    mask::rwx
    other::r-x
    

    出力には、新しく追加されたuser:oracle:rwx行が表示されます。

  5. ディレクトリのみの長いリスト形式を表示します。

    ls -ld /test
    

    出力例:

    drwxrwxr-x+ 3 root root 4096 Jul 13 20:48 /test
    

    出力に表示されるアクセス権には、ACLの包含を示すプラス記号(+)が含まれます。

  6. ファイルの作成を再試行してください。

    touch /test/file1
    

    コマンドはこの時点で成功します。

  7. ファイルの作成を確認します。

    ls -l /test
    

その他のオプションおよび例については、man getfaclまたはman setfaclページを確認してください。

詳細情報

他の関連リソースを参照してください。

その他の学習リソース

他のラボをdocs.oracle.com/learnで探すか、Oracle Learning YouTubeチャネルでより無料の学習コンテンツにアクセスします。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。

製品のドキュメントは、Oracle Help Centerを参照してください。