Linux/FS

acl(Access Control List)
Kernel 2.6 から導入

pkg name

fs に依存するがツールが別パッケージで存在する

% dpkg -l acl
要望=(U)不明/(I)インストール/(R)削除/(P)完全削除/(H)維持
| 状態=(N)無/(I)インストール済/(C)設定/(U)展開/(F)設定失敗/(H)半インストール/(W)トリガ待ち/(T)トリガ保留
|/ エラー?=(空欄)無/(R)要再インストール (状態,エラーの大文字=異常)
||/ 名前                         バージョン                説明
+++-==============================-==============================-============================================================================
ii  acl                            2.2.49-4                       Access control list utilities

利用方法

xfs/ext4

標準でacl 対応

ext3

mount option にacl が必要

/dev/sda4 on /var type ext3 (rw,acl)

既に稼働中のシステムであればremount で対応可能

$ sudo mount -o remount,acl /dev/sda4

※acl オプションを複数回指定すると複数設定されてしまう。 恐らくバグ

acl 確認、変更

  • 確認方法
    ls -l でパーミッションの後に + がある場合acl が設定されている。
    getfacl コマンドで確認可能
  • 設定変更 setfacl コマンドで設定可能

acl 設定(acltest というファイルにgdm ユーザに読み込み権を付与)

$ sudo setfacl -m u:gdm:r-- acltest                       

確認ls で+ が付いているのが判る。

$ ls -l acltest
-rw-rw-r--+ 1 mk mk 0  7月 17 23:59 acltest

getfacl で確認できる

$ getfacl acltest
# file: acltest
# owner: mk
# group: mk
user::rw-
user:gdm:r--
group::rw-
mask::rw-
other::r--

アーカイバ

GNU tar はacl 非対応なので情報を保持できない。 star を利用する。 ftp://ftp.berlios.de/pub/star/ GNU tar に比較してオプションは少ない.

$ star H=exustar -acl -c backup_dir > backup.tar
$ star -acl -x f=backup.tar

※Red Hat系のtar には独自パッチが当たっていて--xattrsオプションまたは--aclsオプションが利用できるそうだが未検証.

データコピー時にacl を保持する

rsync であれば-A(acl) option が必要。
※古いrsync だと対応していないので注意.3.x ならokだが利用前に確認すること(未対応->acl対応->拡張属性対応)

acl 情報の記録、反映

getfacl でacl リストを取得して,setfacl でセットすることも可能. でも2度手間なのであまりやりたくない. ※GNU tar でアーカイブを作成、getfacl でacl 情報を取得。 移行先でtar ball を展開、setfacl でacl 情報を付与。

  • acl 情報を acl.list というファイルにバックアップ
    # getfacl -R * > acl.list
  • acl 情報を acl.list というファイルから復元
    # setfacl --restore=acl.list
    ※Solaris UFS で以前やったことがあるがext3 では未だやったことはない.


spam 避けですcheck を付けて下さい

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-07-18 (水) 00:09:58 (2223d)