ノート:
- このチュートリアルは、Oracle提供の無料ラボ環境で提供されています。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了するときは、これらの値をクラウド環境に固有の値に置き換えます。
Oracle LinuxでのACLの使用および有効化
イントロダクション
アクセス制御リスト(ACL)は、ディレクトリおよびファイルに対するアクセス制御を提供します。ACLは、所有者、グループ、およびその他のすべてのシステムユーザーの読み取り、書き込み、および実行権限を設定できます。
ACLは、特定のユーザーまたはグループがACL対応のファイルやディレクトリにアクセスする方法を指定する一連のルールで構成されます。通常のACLエントリは、1つのファイルまたはディレクトリへのアクセス情報を指定します。デフォルトのACLエントリはディレクトリに対してのみ設定され、アクセスACLがないディレクトリ内のファイルに対してデフォルトのアクセス情報を指定します。
ディレクトリでデフォルトのACLを設定すると、そのサブディレクトリは同じ権利を自動的に継承します。ACLは、btrfs
、ext3
、ext4
、OCFS2
およびXFS
の各ファイル・システムと、マウントされたNFSファイル・システムで使用できます。
目的
- ファイル・システムACLのサポートの確認
- ACLルールを追加および表示するには、
setfacl
およびgetfacl
コマンドを使用します。
要件
使用可能なディスクと Oracle Linuxのフルパッチインストールを備えたシステム。
演習環境の設定
ノート: 無料ラボ環境を使用する場合、接続およびその他の使用手順については、Oracle Linux Labの基本を参照してください。
-
まだ接続していない場合は、端末を開き、ssh経由でol-node01インスタンスに接続します。
ssh oracle@<ip_address_of_instance>
-
ブロック・ボリュームが存在することを確認します。
sudo lsblk -f
フリー・ラボ環境の出力には、ベースOSを含む
sda
と、この演習で使用するsdb
の2つのブロック・デバイスが表示されます。-f
オプションを使用すると、ファイルシステムタイプ(FSTYPE)およびブロック(汎用一意識別子(UUID)が表示されます。
ACLサポートによるファイル・システムのマウント
-
マウント・ポイント・ディレクトリを作成します。
sudo mkdir /test
-
ACLサポートが存在することを確認します。
ext4
、btrfs
、xfs
などの 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
-
ACLをサポートしてディスクをマウントします。
ファイルシステムで aclマウントオプションがデフォルトで有効になっていない場合は、
mount
コマンドの使用時に-o acl
を渡します。/dev/sdb1
はext4
を使用するため、このオプションはデフォルトでオンになっています。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
-
ファイル・システムのマウントが存在することを確認してください。
df -T | grep sdb1
出力は、ext4ファイル・システム
/dev/sdb1
がマウント・ポイント/test
に存在することを示しています。
ACL機能の使用
-
新しいマウントポイントの下にファイルを作成してみてください。
touch /test/file1
出力例:
touch: cannot touch '/test/file1': Permission denied
oracle
ユーザーには/test
ディレクトリにファイルを作成する権限がないため、コマンドは失敗します。 -
ディレクトリの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
-
ACLルールをディレクトリに追加します。
sudo setfacl -m u:oracle:rwx /test
このルールは、
oracle
ユーザーに読取り、書込みおよび実行権限を付与します。 -
ディレクトリの更新された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
行が表示されます。 -
ディレクトリのみの長いリスト形式を表示します。
ls -ld /test
出力例:
drwxrwxr-x+ 3 root root 4096 Jul 13 20:48 /test
出力に表示されるアクセス権には、ACLの包含を示すプラス記号(
+
)が含まれます。 -
ファイルの作成を再試行してください。
touch /test/file1
コマンドはこの時点で成功します。
-
ファイルの作成を確認します。
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を参照してください。
Use and Enable ACLs on Oracle Linux
F60357-01
July 2022
Copyright © 2022, Oracle and/or its affiliates.