Samba サーバの設定

Samba の主な設定は /etc/samba/smb.conf で行う。smb.conf は、大きく分けて2つの部分から構成される。

  • Global Settings
  • Share Definitions
Global Settings

Samba サーバの全体的な設定を行う部分。この部分を変更した場合は Samba サーバの再起動が必要。

Share Definitions

ファイル共有やプリンタ共有の設定を行う部分。この部分を変更した場合は、Samba サーバの再起動は必要なし。

Samba サーバの設定例

global セクション

Samba サーバ全般に及ぶ設定を行う

unix charset

Samba サーバで利用する文字コードを指定。システムの設定に合わせて「UTF-8」,「EUCJP-MS」いずれかを指定する。

unix charset = UTF-8
dos charset

Windows 側で利用する文字コードを指定。

dos charset = CP932
display charset

Samba コマンドが利用する文字コードを指定。通常は unix charset と同じものを指定

display charset = UTF-8
workgroup

所属するグループ、またはドメイン名を指定

workgroup = MYGROUP
server string

アイコンに表示されるコメントを記述。You ブラウジング時に識別しやすい文字列を指定しちゃいなよ

server string = CentOS Samba Server
hosts allow

接続を許可するホストを指定。コメントアウトされている場合、すべてのホストからの接続を許可

hosts allow = 192.168.1.6
printcap name

printcap ファイルの絶対パスを指定。load printers と組み合わせて使う

load printers

プリンタごとにプリンタ共有を定義するのではなく、 /etc/printcap の設定に基づいてプリンタ共有を定義する。デフォルトは「yes」

load printers = yes
guest account

「guest ok = yes」の場合、ゲストユーザーとして利用されるアカウントを指定する。
※ ユーザーは /etc/passwd に存在するユーザーに限る。

guest account = nobody
log file

ログファイルを指定。デフォルトの場合、接続マシンごとにログファイルが分かれる。「%m」はクライアントの NetBIOS を表す。

log file = /var/log/samba/%m.log
max log size

最大ログサイズをキロバイト単位で指定する。「0」の場合、上限を設けない。

max log size = 50
security

セキュリティーモードの設定を行う

security = user
セキュリティモード 内容
share 共有単位でパスワードを用いて認証する
user ユーザー名とパスワードを用いて認証する
server 他のサーバに認証を依頼する
domain ドメインコントローラに認証を依頼する
ads ActiveDirectory ドメインのドメインコントローラに認証を依頼する
encrypt_passwd

暗号化パスワードを利用する。デフォルトは「yes」

encrypt_passwd = yes
smb passwd file

Sambaで利用するアカウントとパスワードが格納されるファイルを指定

smb passwd file = /etc/samba/smbpasswd

homes セクション

ユーザー毎のホームディレクトリを共有する場合の設定

comment

ブラウジング時に表示されるコメントを記述する

comment = Home Directories
browsable

「yes」の場合、ネットワークコンピューターでブラウズしたときに表示される

brouwsable = yes
writeable

書き込みも可能とする。read onli = no と writeable = yes は同意

writeable = yes

printers セクション

プリンタ共有のためのセクション

path

共有のパスを指定

printers = /var/spool/samba
printable

プリンタ出力を許可するかどうかを指定

printable = yes
map to guest
  1. never デフォルト
  2. bad user
  3. bad password

ユーザーアカウントの管理

セキュリティレベルが「user」時、Samba用ユーザーアカウントを作成しておく必要がある。Samba用ユーザーアカウントを作成するには、 pdbedit コマンドを使う

pdbedit
pdbedit -a -u centuser
オプション 内容
-a ユーザーを追加
-u ユーザーの指定
-L ユーザー一覧を確認
-x ユーザーを削除する
smbpasswd

上記の pdedit 同様、ユーザーアカウントの管理の設定

smbpasswd -a centuser

※ なお、上記二つのコマンドで作成されるユーザーは、予め /etc/passwd ファイルに登録されている必要がある。ユーザー情報は /etc/samba/smbpasswd ファイルに格納される。
また、パスワード変更時にも使用する。

NetBIOS での名前解決

コンピューター名が hoge であるホストのIPアドレスを調べる
nmblookup hoge
ワークグループ WORKGROUP 内のマスターブラウザを検索
nmblookup -M WORKGROUP
ワークグループ WORKGROUP に参加しているホストのIPアドレスを表示
nmblookup WORKGROUP

コンピューター名の後ろに付いているのは、NetBIOSのリソース名

名前 内容
コンピュータ名 00 ワークステーションサービス
コンピュータ名 01 ファイルサーバサービス
__MSBROWSE__ 01 マスターブラウザ
ドメイン名 1B ドメインマスターブラウザ
ドメイン名 1C ドメインコントローラ
ドメイン名 1D マスターブラウザ