「GMOクラウドPublic」を検証している際に、”POSIX ACL”機能が使えるか確認したところ、setfaclコマンドを打つと下記のようにサポートされていない的なエラーが表示されました。最初、「GMOクラウドPublic」では使えない?と思ってしまいましたが、そんなことはあり得ません。
# setfacl -m user:hogehoge:r setfacl: :Operation not supported
意識してLinuxに”POSIX ACL”を設定をしたことがなかったので、調べた内容を皆様にご案内します。
通常、”POSIX ACL”を利用する場合は、マウントオプションに「acl」を指定しなければ”POSIX ACL”は利用できません。しかし、Redhat Enterprise linux 5, Redhat Enterprise linux 6, CentOS5, CentOS6ともに、fstabの標準の「defaults」で、”POSIX ACL”が利用できます。なぜ??
タネあかしは、ファイルシステムそのものににマウントオプションが指定でき、そこで指定してあったのです。下記のコマンドでそれを確認できます。Redhat Enterprise linux 5, Redhat Enterprise linux 6, CentOS5, CentOS6のインストール時にで生成されるファイルシステムには下記のように、ちゃんとマウントオプション「acl」が指定してあり「defaults」でも”POSIX ACL”機能が使えていたのです。
CentOS5, CentOS6などで生成のファイルシステム
# tune2fs -l /dev/******** | grep "Default mount options:" Default mount options: user_xattr acl
ところが、「GMOクラウドPublic」のプロビジョニングで生成されるファイルシステムでは、下記のように何らマウントオプションには指定がありません。なので、”POSIX ACL”機能が使えなかったのです。
GMOクラウドPublicのプロビジョニングで生成されるファイルシステム
# tune2fs -l /dev/******** | grep "Default mount options:" Default mount options: (none)
では、ってことで、下記のようにfstabでマウントオプション「acl」を指定してあげると問題なく、”POSIX ACL”機能が使え、setfaclコマンドでもエラーなく使えるようになりました。
# cat /etc/fstab # # /etc/fstab # Created by anaconda on Tue Jul 12 03:55:42 2011 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # (省略) /dev/***** /***** ext3 defaults,acl 0 0 (省略)
もしくは、筆者は試していませんが、下記のようにファイルシステムのパラメータを設定してもOKと思われます。
# tune2fs -o acl /dev/*********
原因がわかれば、なんでもない話ですが、同様にハマった方がいらっしゃいましたら参考になりましたら幸いです。