Sambaの基本設定
「Samba」を使うとWindowsからアクセスできるファイルサーバーを構築できる。アクセスするのは簡単で、Windowsの「マイネットワーク」を開くとサーバーのアイコンがあらわれ、さらにアイコンをダブルクリックすると共有フォルダの一覧が出てくる。
この共有フォルダは自分のパソコンのハードディスクと同じ感覚で扱うことができ、ファイルのアイコンをドラッグすればコピーできるし、ダブルクリックすればファイルを開くことができる。ファイルサーバーを設置したいが「FTPってなに?」というユーザーがいるときは、Sambaを使ってファイルサーバーを構築するといい。
Sambaをインストールする
Vine Linuxの標準インストールではSambaが入らないので、apt-getコマンドでインストールする。次のコマンドを打ち込むと簡単にインストールできる。
# apt-get install samba
Sambaの起動スクリプトは/etc/rc.d/init.d/smbだ。コマンドプロンプトから次のように入力すれば、Sambaが起動する。
# /etc/rc.d/init.d/smb start SMBサービスを起動中: [ OK ] NMBサービスを起動中: [ OK ] #
システムが起動したときにSambaも自動起動するように設定しておこう。chkconfigコマンドを使う。標準では自動起動しない設定になっているのだ。設定を行ったらリストを表示して、Sambaの行を見て、「3:on 4:on 5:on」となっているかを確認する。これはランレベルの3、4、5ではSambaを自動起動するという意味だ。
# chkconfig smb on # chkconfig --list syslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off httpd 0:off 1:off 2:off 3:on 4:off 5:on 6:off keytable 0:off 1:off 2:on 3:on 4:on 5:on 6:off postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off proftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off autofs 0:off 1:off 2:off 3:on 4:on 5:on 6:off named 0:off 1:off 2:off 3:off 4:off 5:off 6:off netfs 0:off 1:off 2:off 3:on 4:on 5:on 6:off network 0:off 1:off 2:on 3:on 4:on 5:on 6:off random 0:off 1:off 2:on 3:on 4:on 5:on 6:off courier-authlib 0:off 1:off 2:on 3:on 4:on 5:on 6:off sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off winbind 0:off 1:off 2:off 3:off 4:off 5:off 6:off smb 0:off 1:off 2:off 3:on 4:on 5:on 6:off courier-imap 0:off 1:off 2:on 3:on 4:on 5:on 6:off #
Sambaの基本設定を行う
Sambaを起動したらWindowsのパソコンで「マイネットワーク」を開いてみる。すると右の写真のようにサーバーのアイコンがあらわれる。だが、このアイコンをダブルクリックしても「××にアクセスできません。このネットワークリソースを使用するアクセス許可がない可能性があります」と表示される。
Sambaの共有フォルダを使えるようにするには、サーバーの側でSambaのユーザーを作成しておき、Windowsからアクセスするときにユーザー名とパスワードを入力しなければならない。このユーザー名というのは、Linuxにログインするときのアカウントと別に管理されているため、新たに作成する必要があるのだ。これはLinuxのログインとWindowsのファイル共有とは認証の方式が異なり、それぞれ別のやり方でパスワードを暗号化しているため。
Sambaのユーザーを追加し、パスワードを設定するには、smbpasswdコマンドを使う。追加するユーザー名はLinuxのユーザーアカウントとそろえておく。また、パスワードも同じものが指定できるので、同じにしておくと混乱しなくてすむ。
なお、Sambaによるファイルサーバーを使うために新しいユーザーを追加する場合、そのユーザーがLinuxにログインする必要がないなら、「useradd -s /sbin/nologin ユーザー名」のようにして、ログインができないように設定しておくと安全性が高まる。
# smbpasswd -a ×× ××という名前のユーザーを追加する New SMB password: パスワードを設定する Retype new SMB password: Added user ××. #
つぎにSambaの設定ファイルである/etc/samba/smb.confを編集する。設定のポイントを見ていこう。行頭のセミコロンはコメントをあらわすので、必要に応じて削除する。
workgroup = WORKGROUP ワークグループ名を指定する。 Windowsの標準は「WORKGROUP」になっているはず。 netbios name = FILESERVER 標準ではホスト名が共有サーバー名になるが、 ほかの名前に変更することもできる。 hosts allow = 192.168.0. 127. Sambaへの接続を許可するIPアドレスを指定する。 この例では192.168.0.と127.で始まるアドレスのみ接続できる load printers = no プリンタを共有しないときはnoに変更 security = user ユーザー名とパスワードを使ってアクセス制御する。 このほか、Windows95/98の共有レベルの制御などもある。 encrypt passwords = yes 暗号化したパスワードを使うか。 現在のWindowsはすべて暗号化パスワードに対応している。 unix password sync = yes SambaとLinuxのパスワードを同期させるか。 yesにするとSambaのパスワードを変更したときに、 Linuxのログインパスワードも同時に変更される。
「security」の項目はユーザー認証の方法を指定するものだ。もっとも一般的な「user」はユーザー名とパスワードを使って認証を行う。「share」ではWindows98/Meのファイル共有で使用されるのと同じような共有レベルでの制御を行う。これはフォルダごとにパスワードを設定しておき、ユーザー名を使わず、パスワードだけで許可を与えるものである。Sambaのユーザーパスワードを設定しなくても使えるが、細かなアクセス制御ができない。
ほかに「server」「domain」という設定値もあるが、これはWindowsドメインを運用しているときの設定であり、小規模な自宅サーバーで利用することはないだろう。自分も設定をしたことがないので詳しいことは分からない。
もうひとつのポイントとして「unix password sync」という設定項目がある。これが標準では有効(yes)になっていて、smbpasswdコマンドでSambaのユーザーパスワードを変更すると、同時にLinuxのログインパスワードも変更される。つまり、2つのパスワードを同期させることができるわけだ。同期させずに別のパスワードを追加したいときはnoに設定を変更する。
設定を終えたらファイルを保存し、testparmコマンドで設定を確認する。なにも問題点が表示されなければ、Sambaを再起動させよう。
# testparm /etc/samba/smb.conf # /etc/rc.d/init.d/smb restart
共有フォルダの追加と設定
Windowsからふたたび接続してみよう。ユーザー名とパスワードを入力すれば、右の写真のように共有フォルダのアイコンが表示される。
なお、アクセスに使われるサーバー名はLinuxのホスト名である。ホスト名を設定していないと「localhost」になってしまうので、必要に応じてホスト名を変更しよう。ホスト名を変更するには/etc/sysconfig/networkのHostnameの行を編集し、/etc/rc.d/init.d/network restartと実行してネットワークを再起動させる。もしくは/etc/samba/smb.confの中に「netbios name =」という形でサーバー名を記述するという方法もある。
Windowsから接続するときはマイネットワークからたどっていくだけでなく、スタートメニューの「ファイル名を指定して実行」を開き、「\\サーバー名」と入力してアクセスすることもできる。
さて、サーバーにアクセスすると標準の設定では3つの共有フォルダが見える。「public」とは誰もが中身を見ることができる共有フォルダ、「sambadoc」はSambaのドキュメントが収められたフォルダ、3つ目が自分のホームフォルダである。
この中でホームフォルダではファイルのコピーや削除ができるけれども、共有フォルダのpublicはファイルを書き込むことはできず、中にあるファイルを見るだけだ。もし自由に書き込みもできる共有フォルダを作りたいなら、/etc/samba/smb.confを編集する必要がある。
[public] カッコで囲まれた部分が共有名になる comment = Public Space for Everyone コメント path = /var/samba/public 共有フォルダのパス名 writable = Yes 書き込みを許可する
もとの設定では「read only = yes」となっていたが、その行をコメントアウトして、かわりに「writable = yes」と記述する。ファイルを保存して、Sambaを再起動してみよう。public共有フォルダへの書き込みができるようになっている。
もし書き込みができないときは、lsコマンドで共有設定したディレクトリのパーミッションを確認してみよう。ディレクトリの属性が書き込み禁止になっていると、Sambaを使ったときも書き込みはできない。書き込みができる共有フォルダの属性は777(読み取り、書き込み、実行のすべてを許可)にしておこう。反対に読み出し専用のフォルダとして公開したいときは、属性を755(読み取りと実行を許可)にしておけば安全性が高まる。
設定方法はファイルを見ればおそらく分かるだろう。カッコで囲んだ共有名とデータを保存するディレクトリ名を指定し、「writable = yes」の一行を加えるだけで、共有フォルダを新しく追加することも可能だ。もちろん設定ファイルを書き換えたときは、testparmコマンドを実行して設定を確認してから、Sambaを再起動する必要がある。