UNIX 系 OS 使ってて、Windows とファイル・ディレクトリ共有をするときに使うソフトっていったら Samba しかないでせう(笑)
軽く概念的なコト(?)を触れておけば、Windows のファイル共有って SMB Protocol (Server Message Block) ってプロトコルで通信されてるのね。
で、Windows にくっついてる Microsoft ネットワーククライアントってゆーのは、いわば SMB クライアントなワケ。
それで Samba はと言えば SMB サーバーであり SMB クライアントみたい。
だから、Windows に限らず SMB プロトコルを使ったファイル共有システムを使ってる OS はなんでも(って一筋縄にはいかない気はするけど)共有出来るんぢゃないかと思うけど、UNIX 系 OS では NFS が一般的っぽいし、Mac OS は AFP (Apple Talk) だし、他に SMB を使ったファイル共有を採用してる OS があるのかどーかは知らない(^_^;)
適当なトコからアーカイブファイルをげっとしてくるのです。例えば、このへんとか。
げっとしてこなくても、もしかしたらディストリビュージョンの contrib の方に入ってるかも・・・とか(爆)
そーゆーワケで、バイナリパッケージをげっとしたヒトは必要ないけど、ソースコードでげっとしたヒトはコンパイルしませう。
configure
make
make install
おしまい(笑)
必要な設定ファイルは smb.conf だけといえばだけなんだけど、アカウント管理するならアカウント情報が記録されるファイルも必要なの。そーゆーワケで、アカウントの方は後述。
それで、まづ smb.conf を置く場所なんだけど、コンパイルする際に設定ファイルを置くパスを自分で指定してればそこなんだけど、そーでない場合は大抵 samba がインストールされたディレクトリの下の lib って中なの。フツーに入れれば、/usr/local/samba/lib でせう。
ちなみに、最初から Samba の入ってるディストリビュージョンだと設定ファイルを置く場所は、/etc が指定されてたりするみたい。
# Vine がそーだった。
で、肝心の smb.conf は、日本の本家に行くと秀逸な解説(ってゆーかマニュアルそのまんまだけど(爆))が載ってるから、わざわざこんなトコで中途半端は解説をする必要はない(と思う)から、とりあえずうちのを記述例として載せておくってコトで適当に書いてもらうコトとして、次(ぉぃ
アカウントの作成は、/Samba をインストールしたディレクトリ/bin の中の smbpasswd を使うと良いかと。
アカウントを作るときには、既にあるなら良いんだけど、ない場合にはアカウントを作る前に private ってゆーディレクトリを Samba のインストールディレクトリ (/usr/local/samba/) に作っておかないとダメかもです。
それで、例えば mettice ってアカウントを作るとしたら、smbpasswd -a mettice とかすれば良いワケ。
もっと詳細なオプションが知りたいってヒトは man smbpasswd とか見て(爆)
「同じディレクトリにファイルがあるのに、ファイルがないって言われるぅ。」
なんてコトは よもやないとわ思うけど、./smbpasswd って明示的にカレントディレクトリであるコトを指定しないとダメだよ?(^_^;)
まぁ、他にも /etc/passwd ファイルのアカウントをそのまま Samba のアカウントとして使うコンバートスクリプト (mksmbpasswd) もあるみたいだから、それを使っても良いかも。
確か、展開したソースファイルのディレクトリの中の scripts なんて中にあったと・・・。
それを使うなら、
cat /etc/passwd | mksmbpasswd.sh > /usr/local/samba/private/smbpasswd
なんてするとコンバートされるの。
# もちろん、やる前にそのスクリプトに実行属性は付けといてね☆
さすがに、ファイル共有をインターネットを挟んでまでやろーなんて強者は居ないと思うんだけど、そーゆーヒトは /etc/rc.d/rc.inet2 あたりに書けば良いんぢゃないかと(爆)
(・・・とは言え、IP Masquerade の方で適切に拒否設定がされてるなら、その可能性もあるだろーから、一概にはそーは言えないといえば言えないけど(^_^;))
でも、やっぱしセキュリティ的なコトを考慮すれば、お手軽なトコでは TCP Wrapper でくるむのが一番っぽいと思うから、/etc/services で netbios-云々ってゆー定義が 3行ほど書かれてるのを確認した上で、/etc/inetd.conf あたりに
netbios-ssn stream tcp nowait root /usr/sbin/tcpd /usr/local/samba/bin/smbd netbios-ns dgram udp wait root /usr/sbin/tcpd /usr/local/samba/bin/nmbd
なんて書いておけば良いんぢゃないかと。
できあがり〜♪(ぱちぱち)