/etc/samba/smb.conf に記載されている英文コメントの日本語訳。
Debian GNU/Linux 向け Samba 環境設定ファイルの見本。
本ファイルは Samba の主設定ファイルである。ここに列記するオプションを
理解するには smb.conf(5) マニュアルページを読むと良い。 Samba は膨大
な数の設定オプションを持っている為、この例では一部のオプションを例示す
る。
本ファイルでは、調整を必要とする一部のオプションをコメントアウトして例
示している。
-
";" でコメントアウトされているオプションは Samba の既定動作とは異
なる設定例である。 -
"#" でコメントアウトされているオプションは Samba の既定動作と同じ
設定例だが、重要なオプションである為例示している。
注釈:
本ファイルを修正した場合は testparm を実行し、基本的な構文
エラーが無いか確認すること。
#全体の設定
[global]
##閲覧と識別
Samba サーバが参加する workgroup または NT-domain の名前を設定する。
workgroup = WORKGROUP
##Windows Internet Name Serving Support Section
###WINS Support
Samba の NMBD 構成を指定し、 WINS サーバを有効にする。
wins support = no
###WINS Server
Samba の NMBD 構成を指定し、 WINS クライアントを有効にする。
注釈:
Samba は WINS サーバまたは WINS クライアントとして振舞うこ
とができる。ただし同時に有効にすることはできない。
wins server = w.x.y.z
nmbd が DNS を通じて NetBIOS 名を検索しないように設定する。
dns proxy = no
##ネットワーク設定
インターフェイスとネットワークを紐づける特定の組合せ。本設定はイン
ターフェイス名または IP アドレス/ネットマスクを指定することができる。
通常はインターフェイス名の指定が望ましい。
interfaces = 127.0.0.0/8 eth0
名前の付いたインターフェイスとネットワークのみを紐づける。上記を使
用する場合は必ず 'interfaces' オプションを使用すること。 Samba マシ
ンがファイアウォールに保護されていない場合にこの機能を有効にするこ
とを推奨する。ただしこのオプションは動的に操作することができず、
非ブロードキャストインターフェイスを正しく操作することができない。
bind interfaces only = yes
##デバッグと集計
接続してきたマシン毎にログファイルを分割して使用するように Samba へ
指示する。
log file = /var/log/samba/log.%m
個々のログファイルの容量を指定する。(KiB 単位)
max log size = 1000
Samba のログを syslog のみに出力したい場合に下記のパラメータを
'yes' にする。
syslog only = no
Samba が syslog へ記録する情報は最小量であることが望ましい。全ての
ログは /var/log/samba/log.{smbd,nmbd} へ出力するべきだ。ログを一
貫して syslog へ出力したい場合、下記のパラメータを 0 より大きい値に
設定する。
syslog = 0
Samba がクラッシュした場合に実行する動作:
管理者へバックトレースメールを送信する。
panic action = /usr/share/samba/panic-action %d
##認証
サーバの役割。 Samba がどのモードで動作するかを定義する。指定可能な値は;
- "standalone server"
- "member server"
- "classic primary domain controller"
- "classic backup domain controller"
- "active directory domain controller"
ほとんどの場合は "standalone server" または "member server" を選択
するだろう。 "active directory domain controller" として動作させる
場合は最初に "samba-tool domain provision" を実行してデータベースを
初期化し、新しいドメインを作成する必要がある。
server role = standalone server
暗号化されたパスワードを使用している場合、
どのパスワードデータベースタイプを使用しているのか
Samba へ通知する必要がある。
passdb backend = tdbsam
obey pam restrictions = yes
この真偽値パラメータは passdb の暗号化された SMB パスワードが変更さ
れた場合に Samba が Unix パスワードと SMB パスワードの同期を試行す
るかどうかを指定する。
unix password sync = yes
Debian GNU/Linux システム上で動作する Unix パスワード同期は
下記のパラメータを必ず設定すること。
(Debian Sarge における passwd プログラムの正しい受渡しスクリプトは
Ian Kahan (kahan@informatik.tu-muenchen.de) によって作成されたものである)
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
この真偽値は 'passwd program' に列記されたプログラムの代わりに SMB
クライアントによってパスワード変更が要求された場合に
PAM がパスワード変更に使用されるかどうかを制御する。
pam password change = yes
このオプションは認証に失敗した接続を匿名の接続へ紐づけるかどうかを
制御する。
map to guest = bad user
##ドメイン
以下の設定は下記の場合に限り効力を持つ;
- 'server role = primary classic domain controller'
- 'server role = backup domain controller'
- 'server role = domain logons'
(クライアントから見た場合の)ユーザプロファイルディレクトリの場所を
指定する。以下は Samba サーバ上で共有を構築する為に "[profiles]" を
必要とする。
logon path = \\%N\profiles\%U
他の一般的な選択肢として、ユーザのホームディレクトリにプロファイル
を格納する方法がある。(これは Samba の既定動作である)
logon path = \\%N\%U\profile
以下の設定は 'domain logons' が設定されている場合に限り効力を持つ。
(クライアントから見た場合の)ユーザのホームディレクトリの場所を指定する。
logon drive = H:
logon home = \\%N\%U
以下の設定は 'domain logons' が設定されている場合に限り効力を持つ。
ログオン時に実行するスクリプトを指定する。指定したスクリプトは必ず
"[netlogon]" 共有内に格納すること。
注釈:
必ず 'DOS' ファイル形式で格納すること。
logon script = logon.cmd
ドメインコントローラ上で SAMR RPC パイプを介して Unix ユーザを作成
することを許可する。
add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u
ドメインコントローラ上で SAMR RPC パイプを介してマシンアカウントを
作成することを許可する。
add machine script = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u
ドメインコントローラ上で SAMR RPC パイプを介して Unix グループを作
成することを許可する。
add group script = /usr/sbin/addgroup --force-badname %g
##Misc
以下の例ではマシン単位の設定変更を有効にする。 "%m" は接続されてい
る端末の netbios 名に置換される。
include = /home/samba/etc/smb.conf.%m
winbind の既定値(例に示した範囲の値を使用していないことを確認すること)
idmap uid = 10000-20000
idmap gid = 10000-20000
template shell = /bin/bash
usershare オプションは net usershare によるフォルダ共有を非
root ユーザへ許可する。
usershare の最大値。 0(既定値) は usershare が無効であることを表す。
usershare max shares = 100
usershare 特権を付与されたユーザへ公開された共有を作成することを許可する。
usershare allow guests = yes
#共有定義
[homes]
comment = Home Directories
browseable = no
既定ではホームディレクトリは読み取り専用で公開されている。
ホームディレクトリへの書き込みを有効にしたい場合は
次のパラメータを 'no' に変更する。
read only = yes
ファイル作成権限はセキュリティ上の理由により 0700 に設定されている。
group=rw の権限でファイルを作成したい場合は次のパラメータを
0775 に設定する。
create mask = 0700
ディレクトリ作成権限はセキュリティ上の理由により 0700 に設定されている。
group=rw の権限でディレクトリを作成したい場合は次のパラメータを
0775 に設定する。
directory mask = 0700
既定では "\server\username" 共有は Samba サーバへ接続してきた端末すべてに
接続を許可する。以下のパラメータは "username" のみが
"\server\username" へ接続できるようにする。外部の認証スキームを
使用している場合は本パラメータの微調整が必要となる。
valid users = %S
ドメインログオン用の netlogon ディレクトリを作成する場合にコメントを外す。
(Samba がドメインコントローラとして振舞うように設定する必要がある)
[netlogon]
comment = Network Logon Service
path = /home/samba/netlogon
guest ok = yes
read only = yes
ユーザプロファイルを格納するプロファイルディレクトリを作成する場合に
コメントを外す。
(先述の "logon path" オプションを参照)
(Samba がドメインコントローラとして振舞うように設定する必要がある)
以下のパスは初回のログオン時にプロファイルディレクトリが作成される為、
全ユーザが書き込み可能であるべきだ。
[profiles]
comment = Users profiles
path = /home/samba/profiles
guest ok = no
browseable = no
create mask = 0600
directory mask = 0700
[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
guest ok = no
read only = yes
create mask = 0700
Windows クライアントはダウンロード可能なプリンタドライバのソースとして
この共有名を検索する。
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
Windows の印刷ドライバの遠隔管理を許可する場合にコメントを外す。
'lpadmin' を管理ユーザが所属するグループの名前に置換する必要がある。
書込み権限を持つユーザの為に、ドライバーディレクトリへ
適切な Unix パーミッションを設定する必要があることに留意すること。
write list = root, @lpadmin