〜 WindowsとLinuxのファイル共有の橋渡し 〜
目次
🧭 概要
Samba(サンバ)は、WindowsとLinuxの間でファイルやプリンタを共有するためのソフトウェアです。Sambaサーバーを正しく設定することで、LinuxサーバーをWindowsネットワーク内の「共有フォルダサーバー」として利用できます。
📦 Sambaの基本構成
| ディレクトリ・ファイル | 説明 |
|---|---|
/etc/samba/smb.conf | Sambaの主設定ファイル |
/var/log/samba/ | ログディレクトリ(エラー・アクセスログなど) |
🔧 基本ユーティリティとデーモン
| コマンド・デーモン | 説明 |
|---|---|
smbd | SMB/CIFSプロトコルのサービス提供(ファイル・プリンタ) |
nmbd | ネットバイオス名解決(ワークグループ) |
winbindd | ADとの連携、ユーザ名の解決 |
samba | ADドメインコントローラ用の統合サービス |
smbclient | コマンドラインのWindowsクライアント的操作 |
smbstatus | 現在の接続・ロック情報を確認 |
smbcontrol | smbdプロセスにシグナル送信 |
smbpasswd | Sambaユーザーのパスワード管理 |
net | ドメイン参加、共有管理など万能ツール |
testparm | smb.conf の文法チェック |
nmblookup | 名前解決の確認 |
samba-tool | AD構築や管理用(必要に応じて) |
🛠️ smb.conf の基本構成
[global]
workgroup = WORKGROUP
server string = Samba Server
security = user
map to guest = Bad User
log file = /var/log/samba/log.%m
max log size = 50
[share]
path = /srv/samba/share
browsable = yes
writable = yes
guest ok = yes
read only = no
主な設定項目
| オプション | 内容 |
|---|---|
workgroup | 参加するWindowsワークグループ名 |
security | 認証方式(user, share, ads) |
guest ok | ゲスト接続の可否 |
writable or read only | 書き込み許可 |
🧪 設定ファイルの検証と再起動
testparm # smb.confの文法チェック
systemctl restart smb nmb
👥 Sambaユーザーの管理
SambaはLinuxユーザーとは別に、Samba用のパスワード管理を行います。
sudo useradd username
sudo smbpasswd -a username # Samba用パスワード追加
sudo smbpasswd -e username # アクティブ化
📁 共有ディレクトリの作成と権限設定
sudo mkdir -p /srv/samba/share
sudo chown -R nobody:nogroup /srv/samba/share
sudo chmod -R 0775 /srv/samba/share
※ ゲストアクセスでない場合は、該当ユーザー所有にしてください。
🪪 Windowsユーザー名とのマッピング
[global]
username map = /etc/samba/smbusers
例:/etc/samba/smbusers
windowsuser = linuxuser
🔐 ACL(アクセス制御リスト)の設定
ACL を使えば、Linuxのパーミッション以上に柔軟な制御が可能です。
getfacl /srv/samba/share
setfacl -m u:username:rwx /srv/samba/share
getfacl:ACLの表示setfacl:ACLの設定
🌐 Sambaクライアントから接続確認
Linux側からSamba共有を確認:
smbclient //localhost/share -U username
Windowsからは \\<SambaサーバーIP>\share にアクセス。
🧰 トラブルシューティング
| 問題 | チェック項目 |
|---|---|
| 接続できない | firewalldやufwでポート137〜139, 445が開いているか |
| パスワード認証失敗 | smbpasswdでアクティブ化されているか |
| 共有が表示されない | browsable 設定とディレクトリパーミッション |
📜 ログファイルの活用
tail -f /var/log/samba/log.smbd
tail -f /var/log/samba/log.nmbd
✅ まとめ
| 項目 | ポイント |
|---|---|
| サービス | smbd, nmbd, winbindd |
| 設定ファイル | /etc/samba/smb.conf |
| ユーティリティ | testparm, smbclient, net, smbpasswd |
| 共有管理 | [share]セクション, ユーザー作成, ACL |
| トラブル時 | ログとファイアウォール確認 |
コメント