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 |
winbindd | Samba側が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|no | NetBIOSの認証で暗号化されたパスワードを使用するかを指定します。 |
unix password sync = yes|no | Linuxと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の他の分野へ移動できる全体ページへは以下リンクからお願いします。