6.5. POSIX アクセス制御リスト

基本的な Linux ファイルシステムのパーミッションは、所有ユーザー、所有しているグループのメンバー、その他のすべてのユーザーの 3 つのユーザータイプに基づいて割り当てられます。POSIX アクセス制御リスト (ACL) は、管理者が、自分のユーザーおよびグループだけでなく、任意のユーザーおよびグループに基づいてファイルおよびディレクトリーのアクセス権限も設定できるようにすることで、このシステムの制限を回避します。
本セクションでは、アクセス制御リストを表示して設定する方法、およびこの機能を Red Hat Gluster Storage ボリュームで有効にする方法を説明します。ACL の仕組みの詳細については、『Red Hat Enterprise Linux 7 システム管理者のガイド』を参照してください。https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/ch-Access_Control_Lists.html

6.5.1. setfacl で ACL の設定

setfacl コマンドを使用すると、指定したファイルまたはディレクトリーの ACL を変更できます。-m サブコマンドでファイルのアクセスルールを追加するか、-x サブコマンドでファイルのアクセスルールを削除できます。基本的な構文は以下のとおりです。
# setfacl subcommand access_rule file_path
アクセスルールの構文は、ルールに従う必要があるロールによって異なります。
u: で始まるユーザーのルール
# setfacl -m u:user:perms file_path
たとえば、setfacl -m u:fred:rw /mnt/data は、ユーザー fred に、/mnt/data ディレクトリーへの read および write アクセスを付与します。
setfacl -x u::w /works_in_progress/my_presentation.txt は、すべてのユーザーが /works_in_progress/my_presentation.txt ファイルに書き込むのを防ぎます(これらは POSIX が制御されるためです)。
グループのルールは g で始まります。
# setfacl -m g:group:perms file_path
たとえば、setfacl -m g:admins:rwx /etc/fstab は、admins グループのユーザーに、/etc/fstab ファイルへの読み取り、書き込み、実行の権限を付与します。
setfacl -x g:newbies:x /mnt/harmful_script.sh が、newbies グループのユーザーが /mnt/harmful_script.sh の実行を阻止します。
o: で始まるその他のユーザーのルール
# setfacl -m o:perms file_path
たとえば、setfacl -m o:r /mnt/data/public は、/mnt/data/public directory 内のファイルを読み込むユーザー名またはグループパーミッションに関する特定のルールがないユーザーを許可します。
実効権限マスクを使用して最大アクセスレベルを設定するルールでは、m から始まります。
# setfacl -m m:mask file_path
たとえば、setfacl -m m:r-x /mount/harmless_script.sh は、すべてのユーザーが /mount/harmless_script.sh ファイルへの読み取りおよび実行アクセスを許可します。
d: をルールの先頭に追加するか、-R オプションでルールを再帰的にして、ディレクトリーのデフォルト ACL を設定できます。たとえば、setfacl -Rm d:g:admins:rwx /etcadminが 、setfacl が実行される際に /etc ディレクトリーで作成されたファイルへのアクセス権限を付与します。