Samba(今回はyumで入れた3.0.28-0.el4.9)を利用して、
各Unixアカウントのファイルサーバを作ろうと思ったわけですが、
かるくはまったので、メモしとく。
作りたい要件としては、
・Unixユーザ(/etc/passwd)のデータを利用する。
・IPでアクセス制限を行う。(自分のPCからのみ自分の領域に入れる)
・接続したら、自分のUnixユーザでファイル作成等ができる。
というあたりを考えてました。
で、最初にためして、ダメだったのが、以下のような書き方。
[test]
path = /home/test
guest account = test
writeable = Yes
guest ok = Yes
hosts allow = 192.168.0.200
hosts deny = ALL
security = SHARE
192.168.0.200からのみアクセスできて、
ゲストアカウントで入らせるけど、
ゲストアカウントは、testユーザですよ。
みたいにしたかったわけですが、
これでは、書き込みができませんでした。
なぜかというとglobal側で設定している(もしくはdefaultのnobody)で
処理を行おうとしてしまう為。
そこで、以下のような方法に切り替えました。
[test]
path = /home/test
force user = test
writeable = Yes
read only = No
guest ok = Yes
hosts allow = 192.168.0.200
hosts deny = ALL
security = SHARE
これでうまく成功したわけです。
簡単に説明しておくと、
[test]
これはWindowsのExplorerとかでアクセスしたときに表示される
TOPのフォルダ名になります。
path = /home/test
これは、SambaでアクセスできるTopディレクトリの指定になります。
force user = test
これは、この設定の領域にアクセスする際には、絶対testユーザでアクセスされる
という指定になります。
writeable = Yes
read only = No
この辺は、書き込み権限についてです。
書き込みを許可して、読み込みのみではない。と指定してます。
guest ok = Yes
hosts allow = 192.168.0.200
hosts deny = ALL
security = SHARE
あとは、接続元の制限・アカウントの制限になります。
ゲストユーザで接続でき、パスワードなしでいけます。
かつ、IP制限がかかってます。
という感じで、やりたいことを実装できたのでした。
おしまい。