前回までで遠隔操作でサーバーを扱えるようになったので、今回はsambaを導入してファイルサーバーの機能をもたせます。これでようやくサーバーらしくなります。
Samba
SambaはWindowsマシンとファイル共有を行うためのソフトウェアです。非常に多機能でプリンタサーバーの機能もあったりするようですが、今回使うのはあくまでWindowsマシンとのファイル共有を目的とします。指定のIPアドレスから、パスワードなどを入力することで閲覧・編集できるような共有フォルダを目指します。
インストールとユーザー設定
とりあえずsambaをさくっとインストールします。
$ sudo apt-get install samba
Sambaの実行、停止は、
$ sudo service smbd start
$ sudo service smbd stop
です。
さて、インストールしたらSambaのユーザーを作成します。Sambaのユーザーは、まず大元のLinuxマシン自体のユーザーである必要があります。
$ sudo pdbedit -a user
userの部分にユーザーの名前を代入します。パスワードは、通常Linuxシステムでユーザーに紐付けしてるパスワードと一緒にします。sambaのユーザーのパスワードを変えるとLinuxのほうも変わっちまいます。パスワードはLinuxシステムのものと同じで。デフォルトでシステムのユーザーのアカウントと紐付けされているらしく、ユーザーが一人の場合は特にあれこれする必要はない、ということが下記の参考サイトでは記述されていましたが、一応私はやっています。というかやらないとログインできなかったのですが…。うーん…(参考:「Ubuntu Magazine Japan vol.07記事を公開にある、MicroServerとSambaで作るオリジナルNAS」)
設定ファイル
次に設定ファイルをいじります。設定ファイルは/etc/samba/smb.confです。けっこういじいじするところがあります。なお行頭の ; は コメントアウトですので、必要な部分は適宜外していきましょう。まず以下のようになものをGlobal Settingsの下に追記します。
[global]dos charset = CP932
unix charset = UTF-8
display charset = UTF-8
server string = %h server (Samba, Ubuntu)
local master = yes
security = user
主に文字コード絡みの設定です。以下の項目を次のように変更します。
workgroup = WORKGRUOP
map to geust = Bad User
interfaces = 127.0.0.0/8 eth0 192.168.1.0/24
WORKGROUPの部分は任意のネットワーク名で。Windows 7のデフォルトがWORKGROUPなので、たいていはこのままでいいはず。map to geust = Bad UserはLinuxに存在しないユーザーでのアクセスはゲストとして扱う…とのこと(参考:「Samba でファイルサーバー構築 | 自宅サーバー Debian/Ubuntu」)。interfaces = 127.0.0.0/8 eth0 192.168.1.0/24はアクセスを許可するアドレスの指定です。security = userは自分とeth0、および192.168.1.0-255からsambaへのアクセスを許可する設定です。ユーザー名とパスワードを利用した、ユーザー認証を用いたやり方でアクセスする、ということです。
最後に、以下を追記します。
[share]
comment = user share
path = /home/user/data
guest ok = no
valid users = user
browseable = yes
writable = yes
dos filetimes = yes
force create mode = 0774
force directory mode = 0775
force group = user
share modes = yes
[share], path, valid users, force group の部分は適宜環境に合うように変えます。ユーザー名はuserと仮定しています。うちの場合は~/dataをSambaで共有したいので、こうなりました。
これで、~/dataが、Windowsなどからはネットワークより「share」フォルダとして見えます。またユーザーやらグループの設定を設定をしないと、たしか作ったファイルがnobodyとかnogruopになってしまいます。作成するファイルの権限も設定しておきます。774や775はひょっとするとちょっとゆるゆるなのかもしれませんが、まぁ基本的には自分が一人で使う用の設定なので…。
とまぁ、設定が終わったら反映させます。
$ sudo service smbd reload
$ sudo service smbd restart
reloadで設定ファイルを読み込みます。restartで再起動です。まだ起動してなかったらstartですが。で、Winodwsマシンのネットワークに表示されるようになったらOKです。自分の場合はうまくいかなくて、結局smbpasswd -a user コマンドを実行したのですが。pdbeditと同じです。samba2.x系ではこっちが使われていて、3.x系以降ではpdbeditが使われるようになったそうです。うーん、pdbedit使えば必要ないはずなんですけど…入力失敗したの気づいてなかったのだろうか。それでもうまくいかなかったらマシンの再起動とか設定ファイルの見直しとかいろいろ頑張ります。設定ファイル的にはこれで問題ないと思うのですが…。
というわけで、ファイルサーバーができました。これでぐっと実用度があがりました。次はDLNAクライアントからアクセスできるように、DLNAサーバーの機能をもたせます。けっこう本格的に家庭内メディアサーバーとして使えるようになります。
コメント