これまで, Debian 5.0 の apache2 で, local な home directory に置いた public_html を UserDir として運用してきた. これを, Mac OS X Server 10.6 が NFS で提供する home directory を automount または static mount して同じことをやろうとするとうまくいかない. apache2 の error.log ではすべてのfile, directoryに対して (13)permission denied となっている.
もちろん file/directory のpermissionは, /からfileまで644,755であることを確認した. Web検索によれば SELinux 関係で似た症状が起きることが多く報告されているが, これはその場合ではないだろう.
問題は, MacとDebianのuidが一致していないこと. Mac の NFS Server は, 知らない uid のprocess がaccessすると拒否する機構があるのか. あるとすれば,
- 案1 mac:/etc/exports や debian:/etc/fstab の option で uid をmappingする
- 案2 debian の www-data のuid=33 をmacに登録する(MacのWeb serverは _www,uid=70)
太古のPanther Server,
http://x.nest.jp/mac/050822_1034.htm
案1
mac:/etc/exports で, このdebian向けだけに -mapall=_www option を与えるというのが考えられる.
太古のPanther Serverだが勉強になる情報:
http://x.nest.jp/mac/050822_1034.htm
NFSプロトコルの設定は, Snow Leopard Serverでは, ワークグループマネージャからサーバ管理に分離されている. mac:exports(5)と比較すると, サーバ管理ユーティリティからは, exports(5)で許される設定のうちシンプルなものだけが可能であるよう. しかし, これをやってしまうと, debian 上で mysql を調整しながら html もちょっと書き直す, などはできなくなってしまう.のでこの案は却下した.
案2
最初, 1000未満のuidをMac OS X Serverにどうやって登録するのかわからなかった. mac:/etc/passwd はあるが single user mode でしか読まれないと書いてある.
少し前のLeopard Serverだが関係する情報
http://www.netmojo.ca/2008/04/24/integrating-leopard-server-with-unix-ldap-part-3/
を見てわかったが, ワークグループマネージャのメニューの小さな地球儀の小さな三角形をクリックし, メニューの表示から調整すると, 500未満のuidも表示, 変更できる. 将来他のプロセスで使うuidと衝突する危険はあるが, www-data, uid=33 を登録した.
結果
案2で成功.