RHEL 7 – RHCSA ノート (チート シート)
ファイル アクセス制御リスト (FACL) または単に ACL は、追加のユーザー/グループとそのファイルへのアクセス許可のリストです。デフォルトのファイル許可はその役割を完全に果たしますが、同じファイルに対して複数のユーザーまたはグループに許可を与えることはできません。
ファイルに ACL が添付されているかどうかを知る方法
ls -l コマンドは、以下に示すような出力を生成します。 + に注意してください 許可の最後に署名します。これにより、ファイルに ACL が添付されていることが確認されます。
# ls -l -rw-r--r-+ 1 root root 0 Sep 19 14:41 file
ACL の表示
ファイルの詳細 ACL 情報を表示するには、getfacl コマンドを使用します。よく見ると、ユーザー sam と john には追加の権限がいくつかあります (強調表示されている部分)。デフォルトのユーザー/グループ権限は、「user::permission」と「group::」を使用して指定されます
# getfacl /tmp/test # file: test # owner: root # group: root user::rw- user:john:rw- user:sam:rwx group::r-- mask::rwx other:---
対照的に、「ACL なし」のファイルの ACL をチェックすると、追加の「user:」行と「mask」行は表示されず、標準のファイル許可が表示されます。 :
# getfacl test # file: test # owner: root # group: root user::rw- group::r-- other::r--
FACL の作成と管理
setfacl コマンドは、特定のファイルに ACL を設定するために使用されます。ファイル /tmp/test でユーザー john に rw アクセス権を付与するには:
# setfacl -m u:john:rw /tmp/test
-m オプションは、コマンド ラインで指定されたファイルの ACL を変更するように setfacl に指示します。ユーザー john の代わりに、ファイルに対する特定の権限を持つグループを持つことができます:
# setfacl -m g:accounts:rw /tmp/test
複数のユーザーとグループの FACL も 1 つのコマンドで設定できます:
# setfacl -m u:john:rw,g:accounts:rwx /tmp/test
デフォルト ACL
デフォルトの ACL を設定することで、ディレクトリに作成されるすべての新しいアイテムに設定されるアクセス許可を決定します。ただし、既存のファイルとサブディレクトリのアクセス許可は変わりません。
ディレクトリにデフォルトの FACL を作成するには:
# setfacl -m default:u:john:rw /accounts
getfacl コマンドのデフォルトのパーミッションに注意してください:
# getfacl accounts/ # file: accounts/ # owner: root # group: root user::rwx group::r-x other::r-x default:user::rwx default:user:john:rw- default:group::r-x default:mask::rwx default:other::r-x
FACL の削除
ACL を削除するには、-x オプションを指定して setfacl コマンドを使用します:
# setfacl -x u:john /tmp/test
上記のコマンドは、ファイル /tmp/test のユーザー john の ACL を削除します。他のユーザー/グループの ACL (影響を受けない場合)。ファイルに関連付けられたすべての ACL を削除するには、setfacl で -b オプションを使用します。
# setfacl -b /tmp/testまた、getfacl を使用して ACL のバックアップを作成し、setfacl コマンドを使用して ACL を復元することもできます。バックアップを作成するには、getfacl -R /dir> file.acls を使用します。バックアップ ファイルから設定を復元するには、setfacl –restore=file.acl を使用します