アクセス制御リスト (ACL) は、オブジェクトに関連付けられた権限のリストです。 ACL は、従来のファイル許可の概念では不十分な場合に使用できます。 ACL を使用すると、オブジェクトの所有者またはグループに対応していない場合でも、個々のユーザーまたはグループにアクセス許可を割り当てることができます。
たとえば、2 つの部門グループのメンバーが、同じリソースに対して異なるレベルのアクセスを必要とする場合があります。グループ 1 はディレクトリへの r/w/x を必要とする場合がありますが、グループ 2 は r/x アクセスのみを必要とします。 ACL を使用すると、さまざまなユーザー、グループ、さらにはプロセスにさまざまなレベルのアクセスを許可できます。 ACL により、より詳細なレベルの制御が可能になります。
getfacl コマンドは、ファイルとディレクトリの ACL を取得するために使用されます。 getfacl コマンドの基本的な出力形式は、所有者、グループ、SUID/SGID/スティッキー ビット フラグ セット、オブジェクトに関連付けられた標準アクセス許可、およびユーザーとグループの個々のアクセス許可エントリを含む、オブジェクトに関するメタデータを示します。
ファイルに関連付けられている ACL を確認したい場合は、getfacl コマンドを使用できます。構文は非常に単純です:
# getfacl filename
出力は次のようになります:
# file: filename # owner: geek # group: geek user::rw- user:andy:r-- user:bob:r-- user:james:rwx group::r-- mask::rwx other::r--
getfacl コマンドの実行中に以下のエラーが発生した場合:
getfacl: command not found
選択したディストリビューションに従って、以下のパッケージをインストールしてみてください:
分布 | コマンド |
---|---|
Debian | apt-get インストール acl |
Ubuntu | apt-get インストール acl |
アルパイン | apk add acl |
Arch Linux | pacman -S acl |
カリ Linux | apt-get インストール acl |
CentOS | yum install acl |
Fedora | dnf install acl |
Raspbian | apt-get インストール acl |
getfacl コマンドの例
1. ファイルの ACL を取得するには:
# getfacl /tmp/file.txt
2. ファイル アクセス制御リストを表示するには:
# getfacl -a /tmp/file.txt # getfacl --access /tmp/file.txt
3. デフォルトのアクセス制御リストを表示するには:
# getfacl -d /tmp/file.txt # getfacl --default /tmp/file.txt
4. コメント ヘッダーを表示しないようにするには:
# getfacl -c /tmp/file.txt # getfacl --omit-header /tmp/file.txt
5. すべての有効な権利のコメントを印刷するには:
# getfacl -e /tmp/file.txt # getfacl --all-effective /tmp/file.txt
6. 有効な権利の印刷を避けるには:
# getfacl -E /tmp/file.txt # getfacl --no-effective /tmp/file.txt
7. 基本 ACL エントリのみを持つファイルをスキップするには:
# getfacl -s /tmp/file.txt # getfacl --skip-base /tmp/file.txt
8. ACL を再帰的に一覧表示するには:
# getfacl -R /tmp # getfacl --recursive /tmp
9. シンボリック リンクをたどるには:
# getfacl -L /tmp/file.txt # getfacl --logical /tmp/file.txt
10. シンボリック リンクをたどらないようにするには:
# getfacl -P /tmp/file.txt # getfacl --physical /tmp/file.txt
11. 表形式の出力形式を取得するには:
# getfacl -t /tmp/file.txt # getfacl --tabular /tmp/file.txt
12. 先頭のスラッシュ文字を削除しない:
# getfacl -p /tmp/file.txt # getfacl --absolute-names /tmp/file.txt
13. 数値のユーザー ID とグループ ID を一覧表示するには:
# getfacl -n /tmp/file.txt # getfacl --numeric /tmp/file.txt
14. getfacl のバージョンを取得するには:
# getfacl -v # getfacl -version
15. getfacl のヘルプを表示するには:
# getfacl -h # getfacl --help