IT

Samba(1)【LPIC level2】

Sambaとは?

SambaとはWindows上のファイル共有やプリンタ共有などを可能にするSMB/CIFSプロトコルを使ったサービスをLinux系OSで提供するためのシステムです。Sambaで実現できる機能には、以下のようなものがあります。

  • ファイルサーバ機能
  • プリントサーバ機能
  • WINSサーバ機能
  • ドメインコントローラ
  • Active Directoryメンバーサーバ
  • Microsoftネットワーククライアント

Sambaのデーモン

Sambaサーバの機能を提供する主要デーモンはsmbdとnmbd、winbinddです。

以下は、Sambaで基本的なサービスを提供するデーモンです。

デーモン名説明ポート番号
smbdファイル、プリンタの共有、ユーザー認証などSambaの基本的な機能を提供139/tcp
445/tcp
nmbdブラウジング機能
(ネットワーク内のコンピュータの一覧表示)
WINSサーバ
(NetBIOS名とIPアドレスの名前解決)
137/udp
138/udp
winbinddSamba側がWindowsユーザーの情報を利用可能にする機能を提供なし

smb.confとは?

Sambaサーバの設定は/etc/samba/smb.confファイルで行います。

[global]、[homes]、[printer]の3つは特別なセクションです。

他は任意の名前でセクションを作成できます。セクションがそれぞれ共有ファイル等に対応し、基本的にセクション名が共有名となります。行頭に「;」「#」があればコメント行です。

globalセクションの設定

[global]セクションでは、Samba全般の設定を行います。

以下、[global]セクションの全般設定に関わる主な設定項目です。

設定項目説明
workgroup ワークグループ名|ドメイン名 Sambaが所属するワークグループ名またはドメイン名を指定します。
server strings = コメント ブラウジングの際に表示されるサーバの説明です。
nerbios name = NetBIOS名 SambaサーバのNetBIOS名を指定します。
browseable = yes|no ブラウジングの際に表示するかどうかを指定します。共有の設定に利用可。
wins support = Yes|No SambaサーバをNetBIOS名とIPアドレスの名前解決を行うWINSサーバとして動作させる場合にはYesと設定します。
wins server = IPアドレス WINSサーバが存在する場合、WINSサーバーのIPアドレスを指定します。
hide dot files = yes|no 「.」で始まるファイルやディレクトリを隠すかを指定します。共有の設定に利用可。
logon script ログオン後に実行されるスクリプトファイルを指定します。

以下、[global]セクションのログ設定に関わる主な設定項目です。

設定項目説明
log file = ファイル名ログファイルを指定します。
log level = ログレベルログレベルを指定します。
数字が大きいほど詳細に出力されます。
max log size = サイズログファイルの最大サイズを指定します。
ファイルが制限値を超えた場合は、新しいログファイルを作成します。
0を指定すると無制限です。

以下、[global]セクションの認証設定に関わる主な設定項目です。

設定項目説明
security =
user |
domain |
ads
認証方法を設定します。
user ユーザーレベルでの認証です。
domain NTドメインにてドメインコントローラを使用し認証します。
ads Active Directoryドメインにてドメインコントローラを使用し認証します。
passdb backend = 認証方式Samba3.0系以降 security = userの場合、smbpasswd、rdbsam、ldapsamなどの認証方式を指定します。
smb passwd file = ファイル名security = userの場合、smbpasswdで認証を行う際のパスワードファイルを指定します。
password server = NEtBIOS名|IPアドレスsecurity = ads|domain|serverの場合、認証を別のサーバで行う際のパスワードサーバを指定します。

以下、[global]セクションのパスワードに関わる主な設定項目です。

設定項目説明
username map = ファイル名Linuxのシステムに登録されているアカウントを別のユーザー名とマッピングします。Linuxのアカウント名=Windowsマシンのユーザー名のように記述します。
guest account = ゲストユーザー名ゲスト認証を許可する場合、ゲストユーザのユーザー名を指定します。
map to guest =
Never |
Bad User |
Bad Password
Sambaユーザーとして認識できなかった場合の対応を指定します。
Never ゲスト認証を許可しません。
Bad User 存在しないユーザーの場合はゲスト認証とします。但し、存在するユーザーでパスワードミスの場合はゲスト認証しません。
Bad Password パスワードミスの場合もゲスト認証とします。
encrypt passwords = yes|noNetBIOSの認証で暗号化されたパスワードを使用するかを指定します。
unix password sync = yes|noLinuxとSambaのパスワードを同期させるかを指定します。
passwd program = プログラム名「unix password sync」で同期させた場合、Samba側でパスワードを変更した際に実行するプログラムを指定します。
passwd chat = 文字列「unix password sync」で同期させた場合、パスワードプログラム実行時の応答内容を指定します。
null passwords = yes|no空のパスワードを許可するかどうかを指定します。

共有設定

[homes]、[printer] と任意の名前のセクションで使用される主な設定項目です。

設定項目説明
comment = コメントブラウジングの際に表示されるコメントを指定します。
path = ディレクトリ名共有ディレクトリのパスを指定します。
writable = yes|no書き込みを許可するかを指定します。
read only = yes|no読み取り専用にするかを指定します。
write list = ユーザー名|@グループ名writable = noまたはread only = yesの時に、書き込みが例外的に許可されるユーザーを指定します。
valid user = ユーザー名|@グループ名アクセス可能なユーザーを指定します。
guest ok = yes|no
または
public = yes|no
ゲストログインを許可するかを指定します。
yesの場合はパスワード入力なしでゲストとしてログインさせます。
hide files = /ファイル名/表示させたくないファイルやディレクトリを指定します。但し、直接ファイル名を指定した場合はアクセス可能です。
veto file = /ファイル名/表示させたくないファイルやディレクトリを指定します。直接アクセスした場合もアクセス不可です。
force user = ユーザー名認証したユーザーに関係なく、共有内では指定したユーザーの権限で作業を行わせます。
force group = グループ名認証したユーザーの所属グループに関係なく、共有内では指定したグループの権限で作業を行わせます。

[homes]セクションの設定

homesセクションとは、UNIXユーザーの各ホームディレクトリを一括して共有するためのセクションです。homesセクションを使うことで個々のユーザーごとにホームディレクトリの共有を定義する必要がありません。

[printer]セクションの設定

共有プリンタに関わる設定を行うセクションです。複数のプリンタがある場合でも、プリンタごとに共有の背邸を行う必要がなく、一括で設定を行うことが出来ます。

共有プリンタの設定を行う際には以下の記述を行います。

「printable = yes」 または 「print ok = yes」

構文チェック

smc.confの構文の確認は「testparm」コマンドを使います。

今回はSambaはsmb.confと[global]、[homes]、[printer]についてでした。

最後まで読んで頂き、ありがとうございました。

LPIC level2の他の分野へ移動できる全体ページへは以下リンクからお願いします。