Samba構成ファイル
Sambaは/etc/samba/smb.confファイルを使用して、Samba構成を管理します。
smb.confファイル構造の概要
smb.confファイルは、特定のSamba構成に必要なサービスを使用できるように構成する複数のセクションで構成されます。 次に、smb.confファイルからの抽出例を示します。
#========== Global Settings =======
[global]
security = ADS
realm = EXAMPLE.REALM
password server = krbsvr.example.com
.
.
.
load printers = yes
printing = cups
printcap name = cups
#========== Share Definitions =========
[homes]
comment = User home directories
path = /data/pchome/%S
valid users = %S, WWW.EXAMPLE.COM\%S
browsable = no
read only = no
guest ok = no
[printers]
comment = All Printers
path = /var/spool/samba
printable = yes
[test_share]
comment = Shared /usr/local/test_share directory created for tests
path = /usr/local/test_share
valid users = @examplegroup
browsable = yes
read only = no
次のリストは、前述の構成例のセクションについて説明しています。
-
[global] -
このセクションには、Sambaサーバーのグローバル設定が含まれています。
前述の例で、
securityパラメータ値ADSは、サーバーがネイティブ・モードで実行されているADドメインのメンバーであることを意味します。 このシナリオでは、Sambaは、ローカル・サービスにアクセスするクライアントを認証するために、Kerberosサーバーで発行されるチケットを利用します。 -
[homes] -
[homes]セクションでは、Sambaサーバーにログオンするユーザーの個人共有を提供します。 この例では、各ユーザーのホーム・ディレクトリの場所はpath = /data/pchome/%S行で設定されます(%Sマクロはユーザー名で置換されます)。browsable = noおよびread only = noの設定によって、他のユーザーがホーム・ディレクトリを参照するのを防ぐ一方、有効なユーザーには完全なアクセスを付与します。重要:
セキュリティなどの設定に注意してください。特別なセクションである
[global]、[homes]および[printers]では特に注意が必要です。たとえば、
[homes]セクションでゲスト・アクセスが指定されている場合は、すべてのホーム・ディレクトリがパスワードなしですべてのクライアントに表示されます。rootなどのユーザーや管理権限がある他のユーザーについては、invalid usersパラメータを使用することを検討できます。 -
[printers] -
印刷サービスを指定します。
pathパラメータは、印刷ジョブをローカルのPrint Spoolerに発行する前に、Windowsクライアントから印刷ジョブを受け取るスプール・ディレクトリの場所を指定します。Sambaは、サーバー上のローカルに構成されたすべてのプリンタを通知します。
-
[test_share] -
test_shareという名前の共有を指定します。これにより、グループexamplegroupに属するユーザーに
/usr/local/test_shareディレクトリに対する参照および書込み権限を付与します。ノート:
read only = no構成エントリは、書込み可能な共有としてSambaがディレクトリを共有するために不可欠です。
詳細は、/etc/samba/smb.conf.example、smb.conf(5)のマニュアル・ページおよびhttps://wiki.samba.org/index.php/User_Documentationを参照してください
testparmプログラムを使用したSamba構成ファイルの内容の検証
構成の変更後に、testparmプログラムを使用してSamba構成ファイルを検証します。 testparmプログラムは、無効なパラメータおよび値を検出し、不正なIDマッピングなどの不正な設定を強調表示します。
ノート:
testparmでは、構成ファイルの内部的な正確性のみがチェックされます。 testparmコマンドでは、構成されたサービスが使用できるか、期待どおりに動作するかをテストできません。
次の例は、コマンドを使用して作業中のファイルのコピーをテストする方法を示しています:
sudo testparm /etc/samba/smb.conf.my_copy
Load smb config files from /etc/samba/smb.conf.my_copy
Loaded services file OK.
...
コピーではなく、デフォルトのSamba構成ファイルをテストする場合は、ファイルをパラメータとして指定する必要はありません。 次のようにtestparmを実行します:
sudo testparm
testparmコマンドにより構成ファイル内のエラーや構成ミスが報告された場合は、問題を修正してコマンドを再発行する必要があります。
詳細は、testparm(1)マニュアル・ページを参照してください。
Samba構成を編集する際のベスト・プラクティス
Sambaサービスは、次のように構成をリロードします。
-
ほとんどの構成値は、3分ごとに自動的にリロードされます。
-
たとえば、
smbcontrol all reload-configコマンドを使用して、リロードを手動でリクエストすることもできます。
ノート:
securityなどの一部のパラメータは、有効にするためにsmbサービスを再起動する必要があります。
構成値を頻繁にリロードしても、/etc/samba/smb.confに加える予定の変更を検証する時間はあまりありません。 そのため、最初に構成ファイルのコピーで変更をテストすることをお薦めします。 次のステップでは、この方法について説明します。
-
samba構成ファイルのコピーを作成します。
sudo cp /etc/samba/smb.conf /etc/samba/samba.conf.mycopy -
viなどのテキスト・エディタでファイルのコピーを編集します:sudo vi /etc/samba/samba.conf.mycopy -
testparmを使用して変更を検証します:sudo testparm /etc/samba/smb.conf.my_copy -
検証したコピーで元のファイルを上書きします。
sudo mv /etc/samba/samba.conf.my_copy /etc/samba/smb.conf -
smbcontrol all reload-configコマンドを使用して構成をリロードします。sudo smbcontrol all reload-config