ファイル共有サーバの構築

2018年7月14日 2023年12月11日

この記事では、ファイル共有サーバの構築方法を紹介します。

写真や動画等の各種データなどをパソコンに保存していると、だんだんパソコンの容量が圧迫されたり、家族でデータを共有する際に一々パソコンを起動してUSBメモリでコピーをする等、手間がかかりますね。

そこで、今回はサーバをファイル共有サーバとして構築して、上記の問題解決を行います。ファイル共有サーバがあれば、データをすべてファイル共有サーバに保存してパソコンの容量を空けれますし、家族間、PC間でのデータの共有が容易になります。

ファイル共有機能として、Linux、mac、 Windows システム間での利用できるsambaを使って構築していきます。

なお、今回はArchLinuxにおけるsambaの設定になります。

sambaのインストール

サーバにて以下のコマンドでsambaをインストールします。

Terminal
sudo pacman -S samba

sambaアクセス用ユーザの作成

sambaにアクセスするためには、linuxユーザが必要となります。必要に応じてuseraddコマンドでユーザを作成します。 以下のコマンドで作成したlinuxユーザをsambaアクセス用ユーザとして登録します。 以下例では既にmako, sato, takaというlinuxユーザを作成した上でsambaアクセス用ユーザとして登録しています。

Terminal
sudo pdbedit -a mako
sudo pdbedit -a sato
sudo pdbedit -a taka

なお、ユーザー名は Linux 環境と共有しますが、パスワードは共有しません。

samba用ディレクトリの作成

sambaで共有するデータの保存ディレクトリを作成します。今回は、個人だけで利用するディレクトリと複数のユーザで共有するディレクトリを作成します。

samba用ディレクトリの作成

sambaで利用するディレクトリのトップディレクトリを以下コマンドで作成します。

Terminal
sudo mkdir -p /data/share

個人用ディレクトリの作成

以下のコマンドで個人用ディレクトリを作成します。ここでは、mako、sato、takaユーザの3ユーザ用に作成します。

Terminal
sudo mkdir /data/share/personal
sudo mkdir /data/share/personal/mako
sudo mkdir /data/share/personal/sato
sudo mkdir /data/share/personal/taka
sudo chown mako:mako /data/share/personal/mako
sudo chown sato:sato /data/share/personal/sato
sudo chown taka:taka /data/share/personal/taka

共有ディレクトリの作成

以下のコマンドで共有ディレクトリを利用するユーザが所属するグループを作成して、ユーザをグループに追加します。

Terminal
sudo groupadd -g 2000 common
sudo gpasswd -a mako common
sudo gpasswd -a sato common
sudo gpasswd -a taka common

次に以下のコマンドで共有ディレクトリを作成します。

Terminal
sudo mkdir /data/share/common
sudo chown :common /data/share/common

さらに、以下のコマンドで共有ディレクトリにsetgidを設定します。 setgidをディレクトリに付与すると、そのディレクトリ以下に作成されるファイルやサブディレクトリの所有グループは、作成したユーザのプライマリグループではなく、ディレクトリの所有グループになります。

Terminal
sudo chmod g+s /data/share/common

samba.confの設定

以下のように/etc/samba/smb.confを作成します。

/etc/samba/smb.conf
[global]
   # SMB2以上のプロトコルに固定
   server min protocol = SMB2
   # windows文字コード追加
   dos charset = CP932
   # linux文字コード追加
   unix charset = UTF-8
   # printerのロード禁止
   load printers = no
   # Windowsのワークグループ名を指定
   workgroup = WORKGROUP

   server string = Samba Server
   server role = standalone server

   # LANのみのアクセスに制限。ここでは、192.168.10/24
   hosts allow = 192.168.10. 127.

   # log fileを指定
   log file = /var/log/samba/%m.log
   # log サイズ
   max log size = 500

   dns proxy = no

# 個人用ディレクトリ
[homes]
   comment = Home Directories
   path = /data/share/personal/%U
   browseable = no
   writable = yes

# 共有ディレクトリ
[common]
   path = /data/share/common
   # アクセス許可をするユーザを指定
   valid users = mako sato taka
   writable = yes
   create mode = 0770
   directory mode = 0770
   printable = no

sambaサービスの起動と有効化

以下のコマンドで sambaサービスを起動します。

Terminal
sudo systemctl start smb.service

さらに、以下のコマンドで sambaサービスを起動時に有効します。

Terminal
sudo systemctl enable smb.service

iptablesの設定

ファイル共有サーバとしてLAN内に公開しますので、iptablesでTCP445番ポートへアクセスを許可します。

iptablesの具体的な設定方法は、iptablesの設定を参照ください。

# LAN(192.168.10.0/24)からTCP445番ポートへのアクセス許可
iptables -A INPUT -p tcp -s 192.168.10.0/24 --dport 445 -j ACCEPT

sambaの動作確認

今回は、MacのFinderの「サーバへ接続」機能で確認を行います。 Finderから「移動」>「サーバへ接続」を選択して、サーバのIPアドレスを入力します。 ユーザ名が聞かれますので、先ほど作成したユーザ名とパスワードを入力して、共有ディレクトリが表示されれば成功です。

終わりに

今回はファイル共有サーバの構築を紹介しました。

これで、写真や動画データをすべてファイル共有サーバに保存してパソコンの容量を空けれますし、家族間、PC間でのデータの共有が容易になります。

Posted by mako
関連記事
コメント
...