2008年7月19日土曜日

OS X LeopardでSambaを使うとアクセス権限不具合が多い場合の対処法

Update:Windowsクライアントでサーバ上に保存されているファイルが読み取り専用で開けなくなってしまうトラブルに付いては、こちらの記事の方が参考になるかと。



Mac OS X Leopardには標準でWindowsとのファイル共有サービスとしてSambaが入っている。これはすごく便利な反面、Windowsクライアントから頻繁にファイルサーバとして利用しているとイライラするトラブルの原因にもなる。

例えば、Excelファイルを開いて作業をし保存した後、暫く経ってそのファイルを開こうとすると自分が開いているので開けませんといったエラーメッセージが出る。WordやPDFのようなファイルでも同様のアクセス権限がおかしいといったエラーが出る。

原因を探ってみると、Leopardにて標準で使用されるようになったACL(アクセス権限リスト)が悪さをしているようで、このACLをSambaで共有しているボリューム上で使用していると、何かと開くファイルにアクセスしてきたクライアントの独自のACLが作成され、それが本人が所有者にも関わらずファイルを読み取り専用でしか開けないといったエラーに繋がるようだ。

このACL、OS X Leopard ServerのカタログではWindowsからも設定できるみたいなことを書いてあるのだが、実際には出来ない。嘘偽りありのふざけた話だ。この辺をもっと柔軟にしてくれると、もっとサーバ分野にUnixベースのMacが普及できるんじゃないか?と思うのだが、それはおいといて。

話を戻すとACLが原因で起きている不具合なので、Sambaで共有を行うHDDボリュームでは、このACL機能をOFFにしておくことをお勧めする。やり方は次の通り

sudo /usr/sbin/fsaclctl -p パス -d

例えば、/Volumes/Windows
というボリュームを準備していた場合は、

sudo /usr/sbin/fsaclctl -p /Volumes/Windows -d

とやると /Volumes/WindowsでACLが使われなくなる。

sudo /usr/sbin/fsaclctl -p /Volumes/Windows

と実行すると、Access control lists are not supported or currently disabled on /Volumes/Windows

といった表示が出てくるだろう。disabled on ボリューム名 となっているので、実際にACLが停止されているのが分かる。

sudo /usr/sbin/fsaclctl -a

と実行すれば、ボリューム全体でどのようなACL設定になっているかが表示される。なお、Leopardのシステムが入っているボリュームでACLを使わない設定にすると、Mac上でFinderからのアクセス権限の変更が出来なくなったりする不具合が出るので注意が必要です。言い換えれば、Macで使う部分だけは標準でACLがONになっているのだから、触らずにいなさいということでしょう。いじるほど深みに嵌るのはMac特有です。おそろしや。

0 件のコメント: