「自宅のLinuxサーバーをWindowsやMacからネットワークドライブとして使いたい」そんな場合に活躍するのがSambaです。この記事では、SambaでWindowsと共有できるファイルサーバーを構築する手順を解説します。
Sambaとは何か?
SambaはLinux上でWindowsのファイル共有プロトコル(SMB/CIFS)を実装したソフトウェアです。これによりLinuxサーバーをWindowsやMacからネットワーク共有ドライブとして使えるようになります。
Sambaのインストール
sudo apt update
sudo apt install -y samba
専用グループと共有ディレクトリの作成
ファイル共有には専用グループを作成し、そのグループだけがアクセスできるように設定するのがベストプラクティスです。
sudo groupadd smbshare
sudo mkdir -p /srv/samba/share
sudo chown root:smbshare /srv/samba/share
sudo chmod 2775 /srv/samba/share
2775はSGIDビット付きのパーミッションです。このディレクトリに作成したファイルは自動的にsmbshareグループに属するため、グループメンバー全員が読み書きできます。
共有を使うユーザーをグループに追加します。
sudo usermod -aG smbshare あなたのユーザー名
sudo smbpasswd -a あなたのユーザー名
Samba設定ファイルの編集
設定ファイルのバックアップを取ってから編集します。
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
sudo nano /etc/samba/smb.conf
ファイル末尾に以下を追加します。
[share]
comment = Group Share
path = /srv/samba/share
browseable = yes
read only = no
guest ok = no
valid users = @smbshare
create mask = 0664
directory mask = 2775
guest ok = noにすることで、認証済みユーザーのみアクセスできます。valid users = @smbshareでグループ単位のアクセス制限をかけています。
ゲスト共有を使いたい場合の注意
もし guest ok = yes にして誰でもアクセスできる構成にする場合は、家庭内LAN専用に限定し、インターネットからのアクセスは必ずファイアウォールでブロックしてください。また chmod 777 は権限が広すぎるため、ゲスト共有であっても create mask = 0664 / directory mask = 0775 を指定して最低限の制限をかけることを推奨します。
設定の確認と再起動
testparm
sudo systemctl restart smbd
sudo systemctl enable smbd
testparmコマンドで設定ファイルの構文エラーを確認できます。
Windowsから接続する
Windowsのエクスプローラーのアドレスバーに以下を入力します。
\サーバーのIPアドレスshare
認証ダイアログが表示されるので、smbpasswdで設定したユーザー名とパスワードを入力してください。
まとめ
- 専用グループ(smbshare)を作成してアクセスを制限するのがベストプラクティス
chmod 2775(SGIDビット付き)でグループメンバー全員が安全に読み書きできるguest ok = no+valid users = @グループ名で認証なし接続を防ぐ- ゲスト共有は家庭内LAN限定で、必ずファイアウォールと組み合わせること
- 次の記事ではユーザーごとのアクセス制限をさらに詳しく解説します



コメント