Ubuntu 10.04でACLを有効にする

2012年6月6日パソコン・インターネット

ACLの設定方法を調べました。簡単に有効化できる様です。

次の記事を参考にさせていただきました。ありがとうございます。Thank you.

次の手順です。

  1. ACLパッケージインストール
  2. /etc/fstab編集
  3. 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情報をバックアップできるそうです。

Posted by お市のかた