Samba共通ディレクトリのアクセス権限

Linux側でrootがファイルを作ると、root.root権限になる。
Windows側でファイルを作ると、nobody.nobody権限になる。
Windows側から、root.root権限のファイルを編集できない。
うーん、解決方法はどうしたもんでしょ。
※調査結果
原因はWindows側ではnobody権限でアクセスしているのに、Linux側ではroot権限でファイルを作っているから。
解決方法はWindowsからroot権限でアクセスさせるか、Linux側でnobody権限で書き込ませるようにするか。
どっちかかな。

ユーザ名とパスワード認証についてのノート
ユーザがサービスに接続するための方法は幾つかある。 サーバは、以下のステップを踏んでサービスに対して接続を許可するかどうかを確認する。 すべてのステップが失敗した場合、接続要求は拒否される。 いずれかのステップで成功した場合、それ以降のステップは行なわれない。
サービスが「guest only = yes」となっており、 サーバが共有レベルのセキュリティ(「security = share」)で構成されている場合、 ステップ 1 から 5 は省かれる。
1.
クライアントからユーザ名とパスワードが提供されており、それが UNIX システムのパスワード機構によって認証された場合、 そのユーザ名を使った接続が行なわれる。 このステップは \serverservice%username 形式で ユーザ名が提供された場合にも行なわれることに注意。
2.
クライアントからシステムに登録されているユーザ名が提供された場合、 そのユーザ名に対する適切なパスワードが提供されれば、 接続が許可される。
3.
クライアントの NetBIOS 名および以前に使われたユーザ名について 提供されたパスワードとの確認が行なわれ、 合致すれば、接続は、対応するユーザ名を使った接続が許可される。
4.
クライアントが既にユーザ名とパスワードを提供してサーバに認証されており、 その際の認証トークンが提示された場合、 そのユーザ名が使われる。
5.
「user =」フィールドが smb.conf ファイルの該当サービスに対して設定されており、 クライアントから提供されたパスワードが (UNIX システムのパスワード認証により) 「user =」行に記述されたユーザ名のいずれかのものと合致した場合、 接続は、「user =」行で設定されたユーザ名で行なわれる。 「user =」リスト中のユーザ名の中に「@」ではじまるものがあった場合、 それは、その名前のグループに所属するユーザ名のリストに展開される。
6.
サービスがゲストサービスの場合、 提供されたパスワードがなんであっても、 そのサービスの「guest account = 」で指定されたユーザ名で接続が行なわれる。

http://www.samba.gr.jp/project/translation/2.2.5/manpages/smb.conf.5.htmlより
なので、/etc/samba/smb.confにて、

[global]
guest account = root
[public]
guest only = yes

を追加することでWindows側からroot権限で書き込めるようにした。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です