LoginSignup
4
1

More than 3 years have passed since last update.

Arch Linux で Samba サーバーを構築する

Posted at

Samba は Windows と UNIX の間でファイルやプリンタの共有を実現するソフトウェアです。Linux や Mac はもちろん、Android や iOS のようなスマートデバイスもサーバーに接続できます。

Samba 以外のファイルサーバーとしては NFS が有名です。NFS については Arch Linux で NFS サーバーを構築する を参考にしてください。

サーバー

インストール

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

# pacman -Syu samba

Samba の設定

/etc/samba/smb.conf を作成します。以下は /data/share/public を共有する設定ファイルの例です。

/etc/samba/smb.conf
[global]

# 大文字と小文字を区別する。
case sensitive = yes

# NetBIOS 名が見つからなかった場合に DNS による解決を試行しない。
dns proxy = no

# 192.168.0.0/24 と 127.0.0.0/8 (Loopback) からのアクセスを許可する。
hosts allow = 192.168.0. 127.

# root ユーザからのアクセスを禁止する。
invalid users = root

# ログファイルの名前を設定する。%m は NetBios 名に置換される。
log file = /var/log/samba/%m.log

# ログファイルの最大サイズを KB 単位で指定する。
max log size = 10000

# SMB1 は無効化し、SMB2 以降を使用する。
server min protocol = SMB2

# 認証やリソースの管理をこのサーバーで完結させるスタンドアロンモードで動作させる。
server role = standalone server

# サーバーの説明文を設定する。%h はホスト名に置換される。
server string = Samba File Server on %h

# Mac が create mask を無視しておかしなパーミッションを設定する問題のワークアラウンド。
unix extensions = no

# サーバーが sendfile() をサポートする場合にこれを利用し、パフォーマンスを最適化する。
use sendfile = yes

# ワークグループの名前を適当に設定する。
workgroup = WORKGROUP

# 全ての Samba ユーザーからアクセス可能な共有ファイルサーバーを定義する。
[public]

    # サーバー上のファイルパスを指定する。
    path = /data/share/public

    # ユーザー名とパスワードを使用して認証を行う。
    security = user

    # 共有ファイルへの読み込みだけでなく書き込みも許可する。
    writable = yes

共有ディレクトリの作成

共有対象になるディレクトリがまだ存在しない場合は作成します。他のユーザからもアクセスできるようにパーミッションを 777 に設定しました。

# mkdir -p /data/share/public
# chmod 777 /data/share/public

ファイアウォールの設定

TCP の 137, 138, 139, 445 番ポートを開放してください。以下に iptables の設定例を示します。

/etc/iptables/iptables.rules
-A INPUT -m state --state NEW -m tcp -p tcp --syn -m multiport --dports 137,138,139,445 -j ACCEPT

Samba サーバーの起動

smbd と nmbd を起動します。

# systemctl start smb nmb

また、システムを再起動した後にも自動的に smbd と nmbd が起動するように設定しておきます。

# systemctl enable smb nmb

Samba ユーザーの追加

Samba へのアクセスには Linux ユーザーを使用します。あらかじめ useradd コマンドを使用するなどして Linux ユーザーを作成しておいてください。ただし、Linux ユーザーのパスワードとは別に Samba 専用のパスワードを設定する必要があります。pdbedit コマンドを使用してパスワードを設定してください。

# pdbedit -a -u name

Linux のログインパスワードと Samba のパスワードを同期させる方法もありますが、ここでは説明しません。

クライアント

Mac

「移動」「サーバへ接続 (Command + K) 」をクリックするとダイアログが表示されるので、nfs://192.168.0.16/public のようなアドレスを入力してください。

ただし、これではシステムを再起動するとアンマウントされてしまいます。自動的にマウントされるようにするためには「システム環境設定」「ユーザとグループ」「ログイン項目」「+」から上記のマウントポイントを選択してください。

Android

Google Play ストアから Samba に対応した適当なファイラーアプリケーションをダウンロードしてください。私は CX ファイルエクスプローラ を使用しています。CX ファイルエクスプローラでは以下の手順で Samba のサーバーにアクセスできます。

  1. ネットワーク タブを開き、+ ボタンをクリックする。
  2. リモート タブを開き、SMB を選択する。
  3. ホスト ユーザー名 パスワード を入力して OK ボタンをクリックする。
4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1