この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
その報告が届いたのは、私がSE時代にLinuxサーバーのSamba設定を変更して、まだ数分も経っていない頃のことだった。
原因は私自身にあった。/etc/samba/smb.confをviで編集して確認もせずにSambaをリロードした。たったそれだけで、社内の全WindowsマシンがLinuxファイルサーバーへのアクセスを失った。
この記事では、20年以上Linuxサーバーを運用してきた経験から、あの日の失敗と、そこから変えた「設定変更前後の確認の型」を正直に語ろうと思う。
この記事のポイント
・Samba変更後はtestparmで構文チェックをしてからリロードする
・/var/log/samba/のログがトラブル特定の最初の手がかり
・smbclientを使うとサーバー自身からアクセステストができる
・smb.confは変更前にバックアップを取ることが鉄則
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
WindowsからLinuxのファイル共有が突然消えた日
SE時代(2001年~2006年)、私は中小企業向けにLinuxサーバーの構築・保守を担当するSEとして働いていた。Samba(Windows-Linux間のファイル共有を実現するソフトウェア)を動かしたLinuxサーバーを任されており、社内のWindowsクライアントにファイル共有を提供するのが主な役割の一つだった。あるとき、担当先から「特定の共有フォルダへのアクセスを、特定のユーザーだけに絞り込んでほしい」という依頼があった。やることは比較的シンプルで、/etc/samba/smb.confにアクセス制限の設定を数行追記するだけだ。
私はLinuxサーバーにSSH接続してviでsmb.confを開き、追記・保存してサービスをリロードした。作業は5分で終わると思っていた。
# Sambaサービスのリロード(SE時代の操作) service smb reload
社内の全WindowsマシンでLinuxのファイルサーバーが消えていた。私の変更が原因だということはすぐに分かった。問題は「どこを直すか」だった。
焦りながら原因を突き止めるまで
電話を保留にしながら、私の頭の中では「とりあえずサービスを再起動してみれば直るかも」という考えがよぎった。しかしそこで少し踏みとどまった。再起動で見かけ上は直っても、原因が分からないままでは同じことを繰り返す。まず原因を確認する。それが現場での正しい初動だと、あのとき自分に言い聞かせた。
1. /var/log/samba/のログを確認した
Sambaはエラー発生時に/var/log/samba/配下のログファイルに記録を残す。まずここを開いた。# Sambaデーモンのエラーログを確認 tail -50 /var/log/samba/log.smbd # 実際のサーバーで確認した出力(一部抜粋) [2004/09/22 14:52:01, 0] param/loadparm.c:lp_load(3789) params.c:Parameter() - Ignoring unknown parameter "wrteable" [2004/09/22 14:52:01, 0] smbd/service.c:make_connection(1023) smbd initialization error: failed to load /etc/samba/smb.conf
2. testparmで設定ファイルの構文を検証した
Sambaには設定ファイルの構文をチェックする専用コマンド「testparm」がある。サービスをリロードする前にこれを実行していれば、構文エラーをすぐに検出できたはずだった。# smb.confの構文チェック(変更後すぐ実行すべきコマンド) testparm # エラーあり時の出力例 Load smb config files from /etc/samba/smb.conf Unknown parameter encountered: "wrteable" Ignoring unknown parameter "wrteable" Processing section "[files]" Loaded services file OK.
# タイポ修正後に再度チェック testparm # エラーなし時の出力例 Load smb config files from /etc/samba/smb.conf Processing section "[global]" Processing section "[files]" Loaded services file OK.
3. smbclientでサーバー自身からアクセステストをした
サービスをリロードしたあと、Windowsクライアントに確認を求める前に、Linuxサーバー自身からsmbclientで接続テストをした。# サーバーが公開している共有フォルダ一覧を確認 smbclient -L localhost -N # 正常時の出力例 Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.7] Sharename Type Comment --------- ---- ------- files Disk 社内共有フォルダ IPC$ IPC IPC Service
原因特定から修正まで約30分。たった1文字のタイポが、社内全員のファイルアクセスを止めた30分だった。
あの体験から20年間続けている確認の型
私が3,100名以上の受講生を指導してきた中でよく感じるのは、「設定ファイルを変更してすぐにサービスを再起動する」という習慣を持つ人が多いことだ。「一行追加しただけだから大丈夫」「どうせ確認しても問題ないだろう」という感覚は、経験が浅い頃は誰でも持つものだ。しかしあの30分の体験が、私の習慣を根本から変えた。
smb.confは変更前に必ずバックアップを取る
設定ファイルを変更する前に、まず現状のコピーを残す。これが最初のステップだ。# smb.confのバックアップ(日時付きファイル名で保存) cp /etc/samba/smb.conf /etc/samba/smb.conf.bak.$(date +%Y%m%d_%H%M%S) # バックアップの確認 ls /etc/samba/smb.conf.bak.* # /etc/samba/smb.conf.bak.20040922_145101
testparmをサービスリロード前の必須ステップにする
smb.confを変更したら、サービスをリロードする前に必ずtestparmを実行する。# smb.conf変更後の構文チェック(リロード前に必ず実行) testparm # エラーがゼロであることを確認してからリロード systemctl reload smb nmb
Windowsクライアントで確認するまでが1セットの作業
サービスをリロードしたあと、smbclientでサーバー自身からアクセスを確認し、その後でWindowsクライアントに「試してください」と声をかける。20年以上サーバーを運用してきた経験から言うと、「作業完了」はツールの操作が終わった瞬間ではなく、利用者側でサービスが正常に動いていることを確認した瞬間だ。この意識の差が、現場での信頼に直結する。
まとめ
| やること | コマンド |
|---|---|
| 変更前のバックアップ | cp /etc/samba/smb.conf /etc/samba/smb.conf.bak.$(date +%Y%m%d_%H%M%S) |
| 設定ファイルの構文チェック | testparm |
| Sambaサービスのリロード | systemctl reload smb nmb |
| 共有フォルダ一覧の確認 | smbclient -L localhost -N |
| 特定共有への接続確認 | smbclient //localhost/共有名 -U ユーザー名 -c "ls" |
この3つは20年前のあの失敗から私が変えた習慣だ。
設定変更のミスは「知識不足」より「確認を省いた瞬間」に起きる。そしてその確認の省略は、焦りや「どうせ大丈夫」という油断から来ることが多い。
まずは自分の担当サーバーのsmb.confに対してtestparmを1回打ってみてほしい。現状の設定ファイルに問題がないかをすぐに確認できる。それが、この確認の習慣を身につける最初の一歩だ。
次に読む記事
・「とりあえず再起動」が危険な理由|プロのトラブル初動を現役講師が解説
・Linuxの設定ファイルが「読める」と現場の仕事が変わる理由|現役講師が伝える設定力の鍛え方
確認の「型」を持つサーバーエンジニアになりませんか?
設定変更のミスは技術力の問題より「確認の習慣があるかどうか」の差です。ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら
- 前のページへ:Linuxエンジニアが非エンジニアの上司に障害を説明できるようになった日の話|現役講師が語る技術力より大切な「翻訳力」の鍛え方
- この記事の属するカテゴリ:Linux学習ガイドへ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。
登録無料・いつでも解除できます