ACLをサポートしているか確認するにはtune2fsを使う
[root@smb ~]# tune2fs -l /dev/sda3|grep "mount options"
Default mount options: user_xattr acl
[root@smb ~]#
な感じで。
とあるフォルダ(root,root所有権)に、crystal グループの所属の方がフォルダを作れるようにするには
[root@smb ~]# ls -ld /export/share
drwxr-xr-x 2 root root 4096 10月 17 13:41 2014 /export/share
[root@smb ~]#
[root@smb ~]# setfacl -m group:crystal:rwx /export/share
[root@smb ~]# ls -ld /export/share
drwxrwxr-x+ 2 root root 4096 10月 17 13:41 2014 /export/share
[root@smb ~]#
[root@smb ~]# getfacl /export/share
getfacl: Removing leading '/' from absolute path names
# file: export/share
# owner: root
# group: root
user::rwx
group::r-x
group:crystal:rwx
mask::rwx
other::r-x
[root@smb ~]#
とします。これで crystal グループに所属しているユーザは、/export/share に書込みができます。
その配下のフォルダにも同じACLを渡すなら
[root@smb ~]# setfacl -Rm group:crystal:rwx /export/share
とします。
ですが、これは現在存在するフォルダに対して有効であって、今後新規に作られるフォルダにはこのACLは引き継がれない。
そのようにさせるには
[root@smb ~]# setfacl -Rdm group:crystal:rwx /export/share
とします。
セキュリティーには十分に気をつけないといけないが、/data領域にwebアプリがアクセスしてその結果を返すなら
setfacl -Rm group:apache:rx /data <-- 既存フォルダへのACL対応
setfacl -Rdm group:apache:rx /data <-- 今後の既定としてのACL対応
とするべきかと
プライマリなグループではなく、サブグループをあてても同様の効果はでます。
[illya@c ~]$ id
uid=1002(illya) gid=2000(fate) groups=2000(fate),2002(supervisors),3000(domain users)
[illya@c ~]$
として、/data(root:root所有)に GID:3000の「domain users」グループを割り当ててみる
[root@c ~]# setfacl -m g:domain\ users:rwx /data
[root@c ~]# cd /
[root@c /]# getfacl data
# file: data
# owner: root
# group: root
user::rwx
group::rwx
group:domain\040users:rwx <-- 「domain users」を割り当てる
mask::rwx
other::r-x
[root@c /]#
その後、ユーザがフォルダを作ってみると
[illya@c ~]$ mkdir /data/sample
[illya@c ~]$ ls -ld /data/sample
drwxr-xr-x 2 illya fate 6 5月 13 04:27 /data/sample
[illya@c ~]$
となる。フォルダを作ったら、その配下のフォルダにも上位と同じ権限を付与したい場合にはsetfaclに「-m」を加える
留意
自分が持っているgroupは、「id」コマンドで確認できる。
定義したのに、掲示されない場合は、一度ログアウトして再ログインする。
*「id <user>」で表示されてもaclでは見えないみたい。「id」で表示されないとだめみたい
[illya@c ~]$ id
uid=1002(illya) gid=2000(fate) groups=2000(fate),2002(supervisors),3000(domain users)
[illya@c ~]$
samba ADでユーザを管理しているのなら、「ADUC」からプライマリ、サブグループの定義が可能で、
「所属するグループ」にて行う。