ファイル共有サーバの構築
この記事では、ファイル共有サーバの構築方法を紹介します。
写真や動画等の各種データなどをパソコンに保存していると、だんだんパソコンの容量が圧迫されたり、家族でデータを共有する際に一々パソコンを起動してUSBメモリでコピーをする等、手間がかかりますね。
そこで、今回はサーバをファイル共有サーバとして構築して、上記の問題解決を行います。ファイル共有サーバがあれば、データをすべてファイル共有サーバに保存してパソコンの容量を空けれますし、家族間、PC間でのデータの共有が容易になります。
ファイル共有機能として、Linux、mac、 Windows システム間での利用できるsambaを使って構築していきます。
なお、今回はArchLinuxにおけるsambaの設定になります。
sambaのインストール
サーバにて以下のコマンドでsambaをインストールします。
sudo pacman -S samba
sambaアクセス用ユーザの作成
sambaにアクセスするためには、linuxユーザが必要となります。必要に応じてuseraddコマンドでユーザを作成します。 以下のコマンドで作成したlinuxユーザをsambaアクセス用ユーザとして登録します。 以下例では既にmako, sato, takaというlinuxユーザを作成した上でsambaアクセス用ユーザとして登録しています。
sudo pdbedit -a mako
sudo pdbedit -a sato
sudo pdbedit -a taka
なお、ユーザー名は Linux 環境と共有しますが 、パスワードは共有しません。
samba用ディレクトリの作成
sambaで共有するデータの保存ディレクトリを作成します。今回は、個人だけで利用するディレクトリと複数のユーザで共有するディレクトリを作成します。
samba用ディレクトリの作成
sambaで利用するディレクトリのトップディレクトリを以下コマンドで作成します。
sudo mkdir -p /data/share
個人用ディレクトリの作成
以下のコマンドで個人用ディレクトリを作成します。ここでは、mako、sato、takaユーザの3ユーザ用に作成します。
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
共有ディレクトリの作成
以下のコマンドで共有ディレクトリを利用するユーザが所属するグループを作成して、ユーザをグループに追加します。
sudo groupadd -g 2000 common
sudo gpasswd -a mako common
sudo gpasswd -a sato common
sudo gpasswd -a taka common
次に以下のコマンドで共有ディレクトリを作成します。
sudo mkdir /data/share/common
sudo chown :common /data/share/common
さらに、以下のコマンドで共有ディレクトリにsetgidを設定します。 setgidをディレクトリに付与すると、そのディレクトリ以下に作成されるファイルやサブディレクトリの所有グループは、作成したユーザのプライマリグループではなく、ディレクトリの所有グループになります。
sudo chmod g+s /data/share/common
samba.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