Ubuntu 10.04でACLを有効にする
ACLの設定方法を調べました。簡単に有効化できる様です。
次の記事を参考にさせていただきました。ありがとうございます。Thank you.
次の手順です。
- ACLパッケージインストール
- /etc/fstab編集
- remountまたはreboot
工程1です。ACLパッケージをインストールします。
$ sudo apt-get install acl
工程2です。/etc/fstabを編集します。
$ sudo vi /etc/fstab
/homeパーティションに、ACLを設定する物とします。
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /home ext4 defaults,user_xattr,acl 0 2
user_xattrは、拡張属性です。次の記事をご覧下さい。
工程3です。remountかrebootをして、設定を有効にします。
$ sudo mount -o remount /home
正しくmountできているか、オプションなしで、mountを実行します。
$ mount (省略) /dev/hda16 on /home type ext4 (rw,user_xattr,acl) (省略)
次に、ACLを設定してみます。setfaclで-m(modify)オプションを使います。次に示すのは、ファイルに対してですが、ディレクトリに対してもできます。
$ setfacl -m u:john:rwx hello.sh
ls -lで見ると、パーミッションの後ろに、"+"が付いている事がわかります。
$ ls -l hello.sh
-rwxrwx---+ 1 user group 31 2010-12-13 20:46 hello.sh
設定内容を確認するには、getfaclを使います。
$ getfacl hello.sh # file: hello.sh # owner: user # group: group user::rwx user:john:rwx group::r-x mask::rwx other::---
johnに与えた許可を消すには、-xオプションを使います。
$ setfacl -x u:john hello.sh
ACL属性をすべて消すには、-bオプションを使います。
$ setfacl -b hello.sh
他にもオプションがあるので、man setfaclで見て下さい。
重要な情報があります。Ubuntuだと、tarでバックアップするとき、ACL属性をバックアップできません。元の情報(Ubuntu Access Control Lists)は、8.10でしたが、10.04でも同様でした(試してみました)。
Ubuntu Access Control Listsによると、Redhat/Cent OSは、ACL情報をバックアップできるそうです。
ディスカッション
starコマンドはどうですか。
オプションが面倒なんで、私は使ってませんが。
HATさんへ、コメントありがとうございます。
starと言うコマンドがあるのですね。知りませんでした。
今度、時間を作って、試してみたいと思います。