SEEDS Creator's Blog

MACクライアントがSambaサーバーのcreate mask等を無視

表題どうり。

結構前から問題として認識はあったのですが、社内にもMACユーザーが半数近くになっていて問題が大きくなってきましたので対応。

問題点のおさらい

Linuxで作ったsambaサーバーへMACをクライアントとして接続した時。 新規ファイル/ディレクトリの作成を行うと、 ・所有者がsambaへの接続ユーザー ・パーミッションが700とか600とかになる という問題。

当然他のユーザーから見れず、この問題が起こる度にサーバーにログインしてchmod やchownしてました。

sambaの設定としては

create mask = 0777
directory mask = 0777

といった設定を入れているのにMacからのみどうやら無視されている様子。 ちなみにWindowsではこんな事はありませんでした。

解決策

ぐぐると同様の原因で困っている人がたくさんいました。 解決策は以下の通り。samba設定の[global]内に以下を記述

vi /etc/samba/smb.conf

unix extensions = no

続いて再起動を行うと問題は解決しました。

unix extensions?

sambaのmanには以下の記述 http://www.samba.gr.jp/project/translation/3.5/htmldocs/manpages-3/smb.conf.5.html

この真偽値パラメーターは、Samba が HP 社によって定義された CIFS の UNIX拡張を利用するかどうかを制御する。 これらの拡張は、UNIX クライアントから UNIX サーバーに対して接続する際に有用な CIFS を有効にし、 シンボリックリンクやハードリンクなどを利用可能にする。 これらの拡張により、SambaUNIX の CIFS クライアントに対して、 シンボリックリンクやハードリンクといった機能を提供することが可能となる。

既定値: unix extensions = yes 

つまりクライアントがUNIX系のクライアントの場合は拡張機能が使えるようになる、というオプションみたいです。 ただ同時にバグか仕様かはわかりませんが、create maskとかが無視される様子です。 (Windowsの場合はこの項目は無視されていたのだと思います。) 特にシンボリックリンクなどの使用は考えてませんし、現状maskが無視される方が問題なのでnoに設定しました。