LinuCレベル3 300試験の出題範囲「392.2 Sambaを設定する」の技術的内容についての解説をまとめました。
重要度 4 説明 さまざまな目的に応じてSambaデーモンを設定できること。 主要な知識範囲 Sambaサーバの設定ファイルの構成に関する知識Samba変数と設定パラメータに関する知識Sambaに関する問題のトラブルシューティングとデバッグを行う 重要なファイル、
用語、ユーティリティsmb.confsmb.confのパラメータsmb.confの変数testparmsecrets.tdb

/etc/samba/smb.confファイルの概要
/etc/samba/smb.conf はSambaの設定ファイルです。
smb.confのセクション
smb.confはSambaの各種設定が記載されている設定ファイルです。smb.confではセクションに対して設定を記載します。
Sambaの各種設定は、smb.confに記述していきます。smb.confでの設定の構造は概ね以下のようになっています。
○smb.confの構造例
[global] #全体設定をするセクション
設定項目 = 設定値[homes] #ユーザーのホームディレクトリを共有させる特殊なセクション
設定項目 = 設定値[ファイル共有名] #ファイル共有を設定するセクション
設定項目 = 設定値
[ファイル共有名] #ファイル共有を設定するセクション・・・
[printers] #Sambaが動作するLinux上のプリンタが共有される
設定項目 = 設定値
printable = yes[プリンタ名] #プリンタ共有を個別に設定したい場合
設定項目 = 設定値
printable = yesこのようにセクションで区切って記述していくので、ファイル共有を複数作成する場合には、その分だけファイル共有セクションを追加する必要があります。Sambaは設定項目が多岐に渡るため、どのセクションに設定するのかはsmb.confのマニュアルに指定が記述されているので参考にすると良いでしょう。ただし、一部の設定項目はいずれのセクションにも記述できるようになっています。

smb.confの[homes]セクションの概要
smb.confの[homes]セクションは、Linuxユーザのホームディレクトリを共有するための設定を記載するセクションです。
smb.confの[global]セクションの概要
smb.confの[global]セクションはSamba全般に関する設定を行うセクションです。
[global]セクションで使用するログ設定に関する主な設定項目
smb.confの[global]セクションに記載するSambaのログ設定に関する項目について以下の表にまとめました。
| 設定項目 | 説明 |
|---|---|
| log file = ファイル名 | Sambaのログファイルを指定する。 |
| log level = レベル | ログレベルを指定。数字が大きいほど詳細に出力される(別名:debuglevel)。 |
| max log size = キロバイト | ログファイルの最大サイズを指定する。ファイルが制限値を超えた場合は、新しいログファイルを作成する。0を指定すると無制限に設定される。 |
| debug timestamp = yes|no | ログファイルに時刻を出力するかどうかを指定する。 |
| debug hires timestamp = yes|no | ログファイルに秒単位以上の時刻を出力するかどうかを指定する。 |
| debug pid = yes|no | ログファイルにPIDを出力するかどうかを指定する。 |
| debug uid = yes|no | ログファイルにUIDを出力するかどうかを指定する。 |
| eventlog list = イベントログ名 | SambaサーバのログをWindowsのイベントビューアーから参照する機能。イベントログ名の一覧を指定する。 |
smb.confの[printers]セクションの概要
smb.confの[printers]セクションは共有プリンタに関する設定を行うセクションです。
Sambaの設定ファイルにおけるSamba変数
Sambaの設定ファイルではSamba変数を使用することができます。
Sambaの設定ファイルでは、多くのSamba変数を使用することができます。
例えば、Samba変数を使用すると
[tmpdir]
path = /var/tmp/%u
comment = %u’s temporary directory
writable = yes
のように設定することができます。
この場合、%u は接続ユーザ名に置き換わるので、同じ共有名でユーザ毎に異なるディレクトリを共有することができます。
その他、下記のようなSamba変数を使用することができます。
%U クライアントが要求したユーザ名
%G %Uのグループ名
%u 接続しているユーザ名
%g %uのグループ名
%m クライアントのNETBIOS名
%L サーバのNETBIOS名
%M クライアントのホスト名
%d Sambaサーバのプロセス番号
%T 現在の日付と時刻
%S 接続している共有名
%P 接続している共有名のルートディレクトリ
%H %uのホームディレクトリ

LinuC公式サイトの上記引用の例題の解説にも記載されているように、以下のSamba変数については暗記しておきましょう。
- %U クライアントが要求したユーザ名
- %G %Uのグループ名
- %u 接続しているユーザ名
- %g %uのグループ名
- %m クライアントのNETBIOS名
- %L サーバのNETBIOS名
- %M クライアントのホスト名
- %d Sambaサーバのプロセス番号
- %T 現在の日付と時刻
- %S 接続している共有名
- %P 接続している共有名のルートディレクトリ
- %H %uのホームディレクトリ
参考資料
本記事の作成に使用した参考資料を掲載します。

