今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

続・samba の設定に悩まされ中

原因は分からないままだけど、原因を除去するのとは別の方法で書き込みができない問題は解決できた。
前に書いた smp.conf の設定の、path の部分だけを入れ替えて試してみた。

[public]
#   path = /usr/public
   path = /tmp
   public = yes
   only guest = yes
   writable = yes
   printable = no
   read only = no
   create mode = 0777
   directory mode = 0777

[tmp]
#   path = /tmp
   path = /usr/public
   public = yes
   only guest = yes
   writable = yes
   printable = no
   read only = no
   create mode = 0777
   directory mode = 0777

この設定では、public には書き込みができて、tmp には書き込みができなかった。このことから、設定の問題ではなく、path に指定したディレクトリ側に問題があることが分かる。両方のディレクトリ共に permission は 777 だし、owner は root:root になっているのに、他の何かの違いで書き込みの可否に差が出ているらしい。
そこで、新しいディレクトリを作ってみた。

# mkdir /hoge

smb.conf でその新しいディレクトリを指定して samba を再起動してみる。

[public]
   path = /hoge
   public = yes
   only guest = yes
   writable = yes
   printable = no
   read only = no
   create mode = 0777
   directory mode = 0777

すると、書き込みができた!
そこで、もともと /usr/public にあったファイルをすべて /hoge にコピーした。

# cp -pR /usr/public /hoge

そうすると、samba 経由で /hoge 直下にはファイルを書けるんだけど、後からコピーしたディレクトリの中には書き込めない。ただ、samba 経由で書き込んだファイルの owner:group が guest:guest さんになっているのに気付いた。(そのように設定しているから)
そこで、全部のファイルの owner:group を変更してみた。

# chown -R guest:guest /hoge

で、samba 経由で書き込もうとしたけど、やっぱり書き込めない。だけど、samba 経由で作成したディレクトリの下には問題なく書き込める。
そこで、コピーしたファイル/ディレクトリをすべて削除して、guest さんにコピーさせてみた。

# su guest
$ cp -pR /usr/public /hoge

すると、どこにでも問題なく書き込めるようになったとさ。
root さんがファイルをコピーして chown guest:guest するのと、guest さん自身がファイルをコピーするので何か違うところがあるらしい。
何が違っているのか、教えてくだされ。