続・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 さん自身がファイルをコピーするので何か違うところがあるらしい。
何が違っているのか、教えてくだされ。