Yamamoto's Laboratory
Samba
コンピューター 自宅サーバー 二代目 WEB server の Samba

Ubuntu server 14.04Samba

自宅サーバーに Samba(version 3.5.11)をインストール・設定を行ったときメモです.内容は設定から運用まで,全般に渡ります.初心者向けの内容です.

目次


インストール

ubuntu server をインストールするときに,「インストールするソフトウェアーの選択」の画面で,Samba file serverをチェックすれば,インストールされます.後からインストールする場合は,コマンド「# apt-get install samba」を使います.

サーバー側の設定

公開ディレクトリーの構成

今のところ,サーバーで公開するディレクトリーは,以下の通りです.ユーザーが増えたら,その都度,公開ディレクトリーを追加します.

/home/user ユーザーのホームディレクトリー
/mnt/backup/share 共有ディレクトリー

設定ファイルの編集

Samba をインストールすると,設定ファイル 「/etc/samba/smb.conf」 がつくられます.このファイルの内容が,サーバー側の設定となります.デフォルトの設定では使うことができませんので,これを編集する必要があります.とはいえ,元ファイルにはかなりコメント文が書かれており,それを読むだけでも大変参考になります(参考:日本語訳).また,日本 Samba ユーザー会 Web サイトsam.conf—Samba の設定ファイルも目を通すと良いでしょう.

ファイル「smb.conf」には,角括弧で囲まれたセクション(例:[global])とパラメーター,コメント文(先頭が # or ;)が書かれています.セクションは,次のセクションが始まるまで続き,その間にパラメーターを記述します.以下,私の設定を簡単に説明します.

セクションの中で,[global]と[homes]、[printers]は特別です.セクション名から,その設定内容は想像がつくと思います.

セクション[global]の設定

このセクションのパラメーターは,Sanba全体に影響を与えます.

  • windows のワークグループを設定します.windows のワークグループは,コンピューターの右クリックで確認できます.
    # Change this to the workgroup/NT-domain name your Samba server will part of    
    workgroup = YAMAMOTO
  • 文字コードを設定します.いろいろと流儀があるようですが,私は,以下のようにしました.
    # setting character set                                                         
             dos charset = CP932
             unix charset = UTF-8

セクション[homes]の設定

このセクションのパラメーターは,接続したユーザーのホームディレクトリーの動作に影響を与えます.私の設定は,以下の通りです.

[homes]
   comment = Home Directories for %S
   path = /home/%S
   browseable = no
   read only = no
   writeable = yes
   create mask = 0700
   directory mask = 0700
   valid users = %S
   force user = %S
   force grout = %g

共有ディレクトリー([share])の設定

LAN内であれば,誰でも使えるディレクトリー(/mnt/backup/share)を用意しました.

[share]
   browseable = yes
   writeable  = yes
   path = /mnt/backup/share
   force create mode = 766
   force directory mode = 777
   force group = sambashare
   guest ok = yes
   guest only = yes
    

サーバーの起動

サーバーの起動は,コマンドラインで確認した後,「sysv-rc-conf」などでサービス(デーモン)

コマンドライン

以下のようなコマンドで,Samba をコントロールすることができます.これらを使って,サーバーを起動,場合によっては再起動してください.

service smbd start 起動
service smbd stop 停止
service smbd restart 再起動
service smbd reload 設定ファイルの再読込
service smbd status ステータス表示

サービス (デーモン) の設定

PC を再起動したときに,自動的にサービス (デーモン) を起動させます.「sysv-rc-conf による設定」を参考に,smbd を設定しました.

クライアント側の設定

Windows

コマンド「net view」を使って,サーバー側の共有情報を確認しましょう.コマンドプロンプトが以下のようになれば,OKです.

C:\Users\yamamoto>net view 192.168.1.81
192.168.1.81 の共有リソース

www2 server (Samba, Ubuntu)

共有名    タイプ  使用  コメント

-------------------------------------------------------------------------------
share     Disk
yamamoto  Disk          Home Directories for yamamoto
コマンドは正常に終了しました。

この後は簡単です.Windows のコンピューターを開き,「ネットワークドライブの割り当て」をフォルダーのボタン [参照] をクリックします.そして,フォルダーを選択します.

Linux

設定

Samba がインストールされていない場合,インストールする必要があります.クライアントのみで使うならば,以下のコマンドで必要なものだけインストール可能です.

# apt-get  install  smbfs

そして,マウントポイントつくります.サーバーのホームディレクトリー(/home/yamamoto)のマウントポイントは「/mnt/ubuntu_server_yamamoto」,共有ディレクトリー(/mnt/backup/share)のマウントポイントは「/mnt/ubuntu_server_share」とします.

以下のコマンドによりマウントポイントをつくります.普通は,一般ユーザーのままでコマンド「sudo」を使うのですが,面倒なのでルートになり,作業を進めます.共有ディレクトリーの所有者とグループ,アクセス権は,場合によっては変更した方が良いかもしれません.私の場合,Linux は個人使用なので,ユーザー「yamamoto」に特化しています.

# cd /mnt
# mkdir ubuntu_server_yamamoto   ホームディレクトリーのマウントポイント
# chmod 700 ubuntu_server_yamamoto/
# chown yamamoto ubuntu_server_yamamoto/
# chgrp yamamoto ubuntu_server_yamamoto/
# mkdir ubuntu_server_share      共有ディレクトリーのマウントポイント
# chmod 700 ubuntu_server_share/
# chown yamamoto ubuntu_server_share/
# chgrp yamamoto ubuntu_server_share/
ubuntu 14.04 以降

ubuntu 14.04 では,cifs-utils をインストールします.

# apt-get  install  cifs-utils

そして,先に示したようにマウントポイントを作ります.その後,以下のようにして,サーバーのホームディレクトリーをマウントします.共有ディレクトリーのマウントも同様です.

# cd /mnt
# mount -t cifs -o user=yamamoto //192.168.1.81/yamamoto ubuntu_server_yamamoto/
Password: パスワードを入れる

これで,サーバー(192.168.1.81)の「/home/yamamoto」がクライアントの「/mnt/ubuntu_server_yamamoto」にマウントできます.一般ユーザー(yamamoto)に戻り,ディレクトリーをつくったり,ファイルをつくったりして,確認すると良いです.

必要ないとは思いますが,アンマウントしたい場合は,以下のようにします.

# umount ubuntu_server_yamamoto/
ubuntu 12.04 以前

ubuntu 12.04 以前では、smbmount を使います.

# cd /mnt
# smbmount //192.168.1.81/yamamoto ubuntu_server_yamamoto/ -o user=yamamoto
Password: パスワードを入れる

これで,サーバー(192.168.1.81)の「/home/yamamoto」がクライアントの「/mnt/ubuntu_server_yamamoto」にマウントできます.一般ユーザー(yamamoto)に戻り,ディレクトリーをつくったり,ファイルをつくったりして,確認すると良いです.

必要ないとは思いますが,アンマウントしたい場合は,以下のようにします.

# smbumount ubuntu_server_yamamoto/

起動時にマウント

毎回手動でマウントするのもやっかいなので,起動時にマウントするようにします.以下を「/etc/fstab」に追記します.以下の例は,「//192.168.1.81/yamamoto」を「/home/yamamoto/www_server_yamamoto/」に,「//192.168.1.81/share」を「/home/yamamoto/www_server_share/」にマウントします.

ubuntu 14.04 以降

cifs を使います.

//192.168.1.81/yamamoto /home/yamamoto/www_server_yamamoto/ cifs uid=yamamoto,username=yamamoto,password=パスワード,rw 0 0
//192.168.1.81/share /home/yamamoto/www_server_share/ cifs uid=yamamoto,username=yamamoto,password=パスワード,rw 0 0
ubuntu 12.04 以前

smbfs を使います.

//192.168.1.81/yamamoto /home/yamamoto/www_server_yamamoto/ smbfs uid=yamamoto,username=yamamoto,password=パスワード,rw 0 0
//192.168.1.81/share /home/yamamoto/www_server_share/ smbfs uid=yamamoto,username=yamamoto,password=パスワード,rw 0 0

PC を再起動することなくこの設定を反映させるために,以下のコマンドを実行します.

# mount  -a

エラーが起きた場合

samba の設定は結構難しく,ヒラーが発生することが多いです.また,上手く動いていても,何かの拍子に接続できなくなることがあります.そんな時,smbclient が便利です.

理由は不明ですが,あるときから,samba への接続ができなくなりました.また,理由は分かりませんが,再起動「service smbd restart」すると,接続できます.原因が分かったら詳細を記述します.

ページ作成情報

参考資料

  1. 以下の書籍も参考にしました.
    Ubuntu Magazine Japan vol.07 (アスキームック)Ubuntu Magazine Japan vol.07 (アスキームック)
    アスキー書籍編集部

    アスキー・メディアワークス 2012-03-09
    売り上げランキング : 6285

    Amazonで詳しく見る
    by G-Tools
  2. 日本 Samba ユーザー会 Web サイト
  3. 設定ファイル「smb.conf」のコメントの日本語訳は,ここにあります.

更新履歴

2012年11月頃 ページの新規作成
2015年03月28日 ubuntu 14.04 のための samba クライアントの設定の記述を追加.


no counter