Instiq
第5章 · ファイル共有サービス·v1.0.0·更新 2026/7/7·読了目安 約13分

変更要約: 初版(主題2.11・副主題2.11.1〜2.11.2に対応)

5.1Sambaの設定と管理

この節の要点

Windows クライアントとファイル・プリンタを共有するSambaの設定と管理を学びます。設定ファイル/etc/samba/smb.conf、デーモンsmbdnmbdwinbinddの役割、testparmによる構文検証、smbpasswdによるSambaユーザー管理、smbstatussmbcontrolによる運用監視、smbclientnetsamba-toolによるクライアント操作とAD連携、ユーザマッピングとgetfaclsetfaclによるACL管理を押さえます。

混在環境の現場では「Linux サーバーのファイルを Windows から普通のネットワークドライブとして使いたい」という要求が絶えません。Samba は SMB/CIFS プロトコルを実装し、Linux を Windows から見た共有サーバー(ときには AD ドメインメンバー)に変える中核コンポーネントです。202 試験でも重要度4と最重量級の副主題です。

5.1.1設定ファイルとデーモン

  • 設定の本体=/etc/samba/smb.conf[global]セクションでサーバー全体の挙動(ワークグループ/ドメイン・セキュリティモード等)、[共有名]セクションで各共有のパスや権限を定義する。ログは既定で/var/log/samba/配下。
  • smbdファイル・プリンタ共有本体(SMB/CIFS 接続を処理し認証・アクセス制御を行う)。nmbdNetBIOS 名前解決とブラウジング(NetBIOS over TCP/IP・マスターブラウザ機能)を担当。winbinddWindows ドメイン/AD のユーザー・グループ情報を Linux 側に取り込む(Unix アカウントとしてマッピングし、AD 統合認証を可能にする)。

5.1.2検証・運用・クライアントコマンド

  • testparmsmb.conf の構文チェック(デーモン再起動前に必ず実行する定石。エラー・警告と実効設定を表示)。smbpasswdSamba 独自のユーザーDB(パスワード)を管理(Unix アカウントとは別に Samba 用パスワードを設定・smbpasswd -a user で追加)。
  • smbstatus現在の接続・ロック状況を表示(誰がどの共有に接続中か)。smbcontrol稼働中の smbd/nmbd/winbindd に対して制御シグナルを送る(設定再読み込み等)。nmblookupNetBIOS名前解決の確認(名前→IPの引き当てをテスト)。
  • smbclientFTP風の対話クライアントで共有に接続smbclient //server/share -U user で動作確認・ファイル転送)。netSamba の汎用管理コマンド(ドメイン参加・共有一覧・ユーザー管理等の多目的サブコマンド群)。samba-toolAD DC(ドメインコントローラ)としての Samba を管理(ドメイン・ユーザー・グループ・GPO 等)。
試験ポイント

「設定を変えたらまず testparm」「smbd=共有処理・nmbd=名前解決/ブラウジング・winbindd=AD情報の取り込み」「Samba独自パスワード管理=smbpasswd」「現在の接続確認=smbstatus」 が最頻出の対比です。samba-tool は AD DC 管理専用、net はより汎用の管理コマンドという役割分担も選択肢で問われます。

実務での典型フローを追うと構造がつかみやすくなります。まず/etc/samba/smb.conf[global]でワークグループ名やセキュリティモードを決め、[data]のような共有セクションでパス(path = /srv/samba/data)や書き込み可否(writable = yes)、有効ユーザー(valid users = @staff)を定義します。編集後は必ずtestparmで構文を検証してからsmbdnmbdを再起動します。Samba 側の認証には Unix パスワードとは独立したsmbpasswdデータベースがあり、新規ユーザーにはsmbpasswd -aで Samba パスワードを設定しないと接続できません。運用中に「誰がどのファイルをロックしているか分からない」といったトラブルにはsmbstatusが最初の一手で、接続中のセッション・共有・ロック情報を一覧できます。クライアント側からの疎通確認はsmbclientで行い、smbclient -L //serverで共有一覧を、smbclient //server/shareで対話接続を試せます。AD 環境に参加させる場合はwinbinddが Windows 側のユーザー/グループ SID を Unix の UID/GID にユーザマッピングし、Linux のファイルパーミッションと整合させます。共有ディレクトリの細かい権限制御は Unix パーミッションだけでは不十分なことが多く、ACLgetfaclで確認・setfaclで設定)を併用して「特定グループだけ書き込み可」のような柔軟な制御を実現するのが定石です。samba-tool は Samba を AD ドメインコントローラそのものとして動かす場合(ドメイン作成・ユーザー/グループ/GPO 管理)に使い、通常のファイルサーバー運用の管理タスクは net や上記コマンド群でまかないます。

コマンド/デーモン役割主な用途
smbdファイル・プリンタ共有本体SMB/CIFS接続の処理・認証
nmbdNetBIOS名前解決・ブラウジング名前解決・マスターブラウザ
winbinddAD/Windowsユーザー情報の取り込みユーザマッピング・AD統合認証
testparmsmb.conf構文チェック再起動前の検証
smbpasswdSamba独自パスワード管理smbpasswd -a userでユーザー追加
注意

ひっかけ: 「nmbd がファイル共有本体で、smbd は名前解決を担当する」は役割が逆です。共有処理=smbd、名前解決/ブラウジング=nmbdが正しい対応。また「Samba への接続は Unix パスワードだけで認証できる」も誤り=Samba独自のsmbpasswdデータベースへの登録(smbpasswd -a)が別途必要です。「samba-tool は通常のファイル共有設定にも使う汎用コマンドである」も誤り=samba-tool はAD DC管理が主目的で、通常の共有管理はsmb.conf編集とnet等で行います。

Samba の smb.conf・smbd/nmbd/winbindd の役割分担・管理コマンド群を整理した図。
smbd=共有・nmbd=名前解決・winbindd=AD連携

5.1.3この節のまとめ

  • 設定は/etc/samba/smb.conf([global]+[共有名])。変更後は必ずtestparmで検証してから再起動。デーモンはsmbd=共有・nmbd=名前解決・winbindd=AD情報取り込み
  • ユーザー管理はsmbpasswd、監視はsmbstatus/smbcontrol、クライアント確認はsmbclient、AD DC管理はsamba-tool。細かい権限はACL(getfacl/setfacl)を併用

進捗の記録にはログインが必要です。

理解度チェック

(軽い確認用)

Q1. Samba サーバーの smb.conf を編集した後、smbd を再起動する前に実施すべき最も適切な作業はどれか。

Q2. 新しい Linux ユーザーを Samba 共有に接続できるようにしたいが、Unix パスワードを設定しただけでは Windows クライアントから接続できない。追加で行うべき操作はどれか。

Q3. 共有ディレクトリで、Unix のパーミッションだけでは表現できない「特定グループのみ書き込み可」という細かいアクセス制御を実現したい。使用すべき仕組みはどれか。

理解度を確認第5章「ファイル共有サービス」の問題を解く

学習の記録を残しませんか

参考書はすべて無料で読めます。無料登録すると、問題集での演習・既読と進捗の記録・間違えた問題の復習・ハイライトが使えます。