Samba逆引きリファレンス Samba 3.4対応
Samba のファイルサーバー機能、認証、ドメイン、LDAP 連携を確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
Ubuntu 26.04 で Windows や macOS からファイル共有を使う場合、Samba は扱いやすい選択肢です。ただし、Samba は directory を公開するだけの機能ではなく、Linux user、Samba user、share 定義、filesystem 権限、firewall、client 側の接続方式が関係します。
この記事では、Samba を standalone server として構成し、/etc/samba/smb.conf を testparm で検証してから smbd.service に反映します。guest 共有を広く開けるのではなく、認証付きの home directory 共有を中心にします。
- standalone server として Samba を構成する
/etc/samba/smb.confを作成してtestparmで確認する- Linux user と Samba password の関係を確認する
- SMB の待ち受け、firewall、client 接続を確認する
Samba で決めること
Samba server を構成する前に、どの client に、どの share を、どの user で使わせるのかを決めます。smb.conf が構文として正しくても、権限設計が曖昧なままだと運用で詰まりやすくなります。
| 観点 | 確認すること |
| server role | standalone server として使うのか、AD 連携するのか |
| share | home directory か、専用共有 directory か |
| 認証 | Linux user と Samba password をどう管理するか |
| 権限 | Linux filesystem の permission と share option をどう合わせるか |
| protocol | TCP 445 の SMB を中心にするか、NetBIOS も使うか |
| client | Windows、macOS、Linux からどう接続するか |
ここでは AD domain controller ではなく、standalone server として扱います。家庭内、検証環境、内部管理用のファイル共有では、この形の方が境界を追いやすくなります。
Samba をインストールする
samba package をインストールし、smbd.service を有効化します。
sudo apt update
sudo apt install -y samba
sudo systemctl enable --now smbd.service
systemctl status smbd.service --no-pagerファイル共有の中心は smbd.service です。NetBIOS name service に依存しない構成では、client 側から server 名または IP address を指定して接続する方が確認しやすくなります。
smb.conf を作成する
/etc/samba/smb.conf に standalone server と home directory share の設定を書きます。構文確認で止められるように、反映前に testparm -s を実行します。
sudo tee /etc/samba/smb.conf >/dev/null <<'EOF'
[global]
server role = standalone server
workgroup = WORKGROUP
security = user
map to guest = never
disable netbios = yes
smb ports = 445
server min protocol = SMB2_10
log file = /var/log/samba/log.%m
max log size = 1000
logging = file
panic action = /usr/share/samba/panic-action %d
[homes]
comment = Home Directories
browseable = no
read only = no
create mask = 0600
directory mask = 0700
valid users = %S
EOF
sudo testparm -s /etc/samba/smb.conf[homes] は、ログインした user の home directory を共有として見せる設定です。専用の共有 directory を使う場合は、[share] のような独立した section を作り、path、valid users、read only を明示します。
Samba user を登録する
Samba の認証では、Linux user と Samba password の両方を意識します。smbpasswd -a で Samba password を登録する user は、Linux 側にも存在している必要があります。
sudo adduser smbuser
sudo smbpasswd -a smbuser
sudo smbpasswd -e smbuser
sudo pdbedit -Lsmbpasswd -a は対話的に password を入力します。Linux login password と Samba password を同じにするかどうかは運用方針次第ですが、どちらの資格情報をどこで使うのかは混ぜずに管理します。
設定を反映する
testparm が通ったら smbd.service を再起動します。設定を変更した後は、service 状態だけでなく、待ち受け port とログも確認します。
sudo systemctl restart smbd.service
systemctl status smbd.service --no-pager
ss -ltnp | grep ':445'
journalctl -u smbd.service -n 100 --no-pagerFirewall を確認する
SMB を TCP 445 に寄せる場合でも、server 側 firewall で client network を許可する必要があります。NFS と同じく、共有設定と firewall の許可範囲がずれていないかを確認します。
sudo nft list ruleset公開先を広げるほど、Samba の認証だけに依存する範囲が大きくなります。内部用の共有であっても、必要な subnet からの TCP 445 に絞る方が扱いやすくなります。
client から接続を確認する
Linux client から確認する場合は、smbclient で share 一覧と接続を確認できます。server address は実際の IP address または名前に置き換えてください。
smbclient -L //192.0.2.10 -U smbuser
smbclient //192.0.2.10/smbuser -U smbusermacOS では Finder の「サーバへ接続」から smb://192.0.2.10/smbuser のように指定します。Windows では Explorer から \\192.0.2.10\smbuser の形式で確認します。
切り分けの見方
Samba に接続できない場合は、Samba user、Linux filesystem 権限、smb.conf、firewall、client 側の資格情報キャッシュを分けて確認します。
testparm -s /etc/samba/smb.confが通るかsmbd.serviceが起動しているかpdbedit -Lに Samba user が存在するか- Linux 側の owner / group / permission が share 用途に合っているか
- TCP 445 が必要な client network から到達できるか
まとめ
Samba の基本は、smb.conf の構文、Samba user、Linux filesystem 権限、service、firewall、client 接続を分けて見ることです。特に認証付き共有では、Samba password だけでなく Linux user と directory 権限が同時に関係します。
Ubuntu 26.04 でファイル共有を設計する場合、Unix / Linux 同士の共有は NFS、Windows や macOS も含む共有は Samba というように、client と権限管理の都合で使い分けると見通しがよくなります。

