UNIX/拡張ACL

概要

ls -l や stat などで表示されるユーザーやグループの他に特定ユーザーのみアクセス権を与えたい場合に使用する。
拡張ACLが設定されてる場合、パーミッションの一番右に + が付与される。

コマンド説明
getfacl拡張ACLを表示する
setfacl拡張ACLを設定する
chacl拡張ACLの表示や設定をする

getfacl

getfacl [オプション] ファイル名
オプション説明
-aファイルACLだけ表示
-dデフォルトACLだけ表示
-cヘッダーを非表示
-eACLと実効権が同じでも実行権(#effective)を表示する(通常は表示しない)
-s基本ACLしか持たないファイルをスキップ
ls -l test.txt
-rw-rw---+ 1 kita kita 〜〜 test.txt

getfacl test.txt
# file: test.txt
# owner: kita
# group: kita
user::rw-
user:user01:r          ★ その他ユーザーは---で読み取りもできないが、user01には読み取り権限を与えている
user:user02:rwx # effective:rw- ※ ACLの設定(rwx)と、実効権(rw-)が異なる場合に表示される
group::rw-
mask::rw-
other::---

※ effectiveが付与されてるユーザーは、そのファイル(ディレクトリ)に対して許可される最大の権限(maskの箇所)と
  異なる権限であることを示す。(maskはrwだが、user02に与えてる権限は rwx である。実際はrw-の権限で制御される)
  ファイルやディレクトリの所有者は基本ACLでACLが決まるため、maskの影響を受けない

setfacl

setfacl オプション {ファイル | ディレクトリ}
オプション説明
-m 設定拡張ACLを設定する
-x 設定指定した拡張ACLを削除する
-b全ての拡張ACLを削除する
-kデフォルトACLを削除する
-d全ての操作をデフォルトACLに適用する(親ディレクトリのACLが継承されディレクトリ内のファイル全てに同じACLが設定される)
設定説明
u:ユーザー:権限ユーザーに対する権限
g:グループ:権限グループに対する権限
o:権限その他ユーザーに対する県下
m:権限マスクの設定
d:{ u g o m }:権限デフォルトACLの設定
-- user02にrwxの権限を付与(maskがr-xの場合は、#effective:r-x となり実際は、wの権限が有効にならない)
setfacl -m -u:user02:rwx test.txt
-- /tmp/dirのmaskをrwxにする(拡張ACLで追加されたユーザーの実効権がrwxまで有効になる)
setfacl -m -m:rwx /tmp/dir

トップ   編集 凍結解除 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-02-21 (木) 14:16:26 (618d)