汎用的に使える自宅Linuxサーバを安価で手軽に構築(5)

はじめに

前回はNTPの導入を行いました。今回はSambaを導入します。

インストール

sambaパッケージをインストールします。

# yum install samba

基本設定

/etc/samba/smb.confを編集します。

[global]セクション

globalセクションはSamba全体の設定です。ここではWindowsワークグループ名の設定と、アクセス制御の設定を行います。ここでNetBIOS名を設定しておくと、DNSサーバを立てたりhostsファイルを書いたりしなくても、Windowsから名前でサーバにアクセスできるようになって便利です。

外部からのアクセスを拒否するために、hosts allow設定で自分自身とLAN内コンピュータのみを許可するように設定しています。

[global]
workgroup = YOURGROUP
server string = 家庭内ファイルサーバ
hosts allow = 127. 192.168.1.
netbios name = SABA

初期状態ではログ設定がコメントアウトされて無効になっていますので、アンコメントして有効にしましょう。

log file = /var/log/samba/%m.log
max log size = 50

その他、システムの言語設定がEUC-JPな頃は、キャラクタセット関係の設定項目であるdos charsetとunix charset、display charsetの追記は必須でしたが、UTF-8の場合は特に必要ないようです。Windowsからおもむろに「①㈱.txt」とか作っても問題ありません。

[homes]セクション

各ユーザのホームディレクトリの共有に関する設定です。browseableをnoにしておけば、ほかのユーザのフォルダが共有フォルダ一覧に表示されてしまうことを防げます。

[homes]
        comment = Home Directories
        browseable = no
        writable = yes
        valid users = %S
;       valid users = MYDOMAIN\%S
共有フォルダの追加

共有フォルダごとにセクションを作成します。ここでは「shared」という名前の共有フォルダを追加します。pathには実際のディレクトリの位置を指定してください。

sharedフォルダは家族みんなが読み書きできる共有フォルダにしたいので、directory maskとcreate mask設定を追加しました。これによってSamba経由で作成されたファイルやフォルダには、グループによる書き込みが許可されたパーミッションが常に設定されます。ただし、一般ユーザのプライマリグループを統一するのを忘れないようにしましょう。私の場合はusersグループに統一しています。

[shared]
  comment = 家庭内共有
  path = /storage/shared
  browseable = yes
  writable = yes
  directory mask = 0775
  create mask = 0664

pathに指定したディレクトリがない場合は作成します。chownで所有グループをusersにし、chmodでグループの書き込み権限を有効にします。

# mkdir -p /storage/shared
# chown root:users /storage/shared
# chmod g+w /storage/shared/

共有フォルダを作成する方法はこのほかにもnet localshareコマンドを使うものがあります。Sambaサーバ構築、5つのべからず:2008年版によれば、今後はnetコマンドによる手法が使われていくようになるかもしれませんね。

今回はdirectory maskやcreate maskの設定が必要だったため、従来通りsmb.confファイルを編集する手法をとりました。

Sambaユーザの作成

Samba用のユーザを作成します。従来はsmbpasswdを使う手法が一般的だったように思いますが、最近はpdbeditを使うようです。

Windowsのユーザと同じ名前とパスワードにしておくと何かと便利です。

# pdbedit -a ymkn

ファイアウォールとサービス起動の設定

setupを使って、smbサービスを自動で起動するように設定し、ファイアウォールでsambaを通すように設定します。

# setup

サービスの開始

smbサービスとnmbサービスを起動します。起動スクリプトは/etc/init.d/smbにまとめられています。

# /etc/init.d/smb start

アクセス確認

Windowsから共有フォルダへのアクセスを確認します。エクスプローラを起動し、アドレスバーに「\\saba\」と入力します。ここでSambaユーザの名前とパスワードを要求されますが、Windowsのユーザと同じ名前とパスワードをSambaユーザに設定していれば、何も入力することなく認証が完了します。

Windowsのユーザ名がymknの場合、「ymkn」フォルダと「shared」フォルダが見えるはずです。両方のフォルダに対してファイルを作成したり編集したり削除したりして、設定がうまくいっていることを確認しましょう。

おわりに

これでSambaの設定は終わりです。家族で使えるファイルサーバができあがりました。ただし、現状ではディスク容量の許す限りファイルを置くことが出来るので、システムの領域を圧迫してしまう可能性があります。将来的にはクォータの仕組みを導入してこの問題に対処したいところです。

次回はプリントサーバ(CUPS)の導入を行います。