写真や動画等の各種データなどをパソコンに保存していると、だんだんパソコンの容量が圧迫されたり、家族でデータを共有する際に一々パソコンを起動してUSBメモリでコピーをする等、手間がかかります。
そこで、今回はサーバをファイル共有サーバとして構築して、上記の問題を解決します。 ファイル共有サーバがあれば、データをすべてファイル共有サーバに保存してパソコンの容量を空けれますし、家族間・PC間でのデータの共有が容易になります。
ここでは、ファイル共有機能として、Linux、mac、 Windows システム間での利用できるSambaを使って構築します。
Sambaのインストール #
サーバにて以下のコマンドでsambaをインストールします。
# Arch Linux
sudo pacman -S samba
Sambaアクセス用ユーザの作成 #
Sambaにアクセスするためには、linuxユーザが必要となり、必要に応じてuseradd
コマンドでユーザを作成します。
以下のコマンドで作成したlinuxユーザをSambaアクセス用ユーザとして登録します。
sudo pdbedit -a mako
sudo pdbedit -a sato
sudo pdbedit -a taka
上記例では既にmako, sato, takaというlinuxユーザを作成した上でsambaアクセス用ユーザとして登録しています。
なお、ユーザー名は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
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サービスを起動します:
sudo systemctl start smb.service
さらに、以下のコマンドで sambaサービスを起動時に有効します:
sudo systemctl enable smb.service
Configuring iptables #
ファイル共有サーバとしてLAN内に公開しますので、iptablesでTCP445番ポートへアクセスを許可します。
iptablesの具体的な設定方法は、iptablesの設定をご参照ください。
Example rule:
iptables -A INPUT -p tcp -s 192.168.10.0/24 --dport 445 -j ACCEPT
Sambaの動作確認 #
今回は、MacのFinderの「サーバへ接続」機能で確認を行います。 Finderから「移動」>「サーバへ接続」を選択して、サーバのIPアドレスを入力します。 ユーザ名が聞かれますので、先ほど作成したユーザ名とパスワードを入力して、共有ディレクトリが表示されれば成功です。