samba の導入
samba の概要
samba とは、Windows95 や WindowsNT で使われている NetBIOS と
いうプロトコルをベースとしたネットワークにおける資源共有の仕
組みを UNIX システムに実装するためのソフトウェアです。
samba を用いることで、UNIX 上のファイルシステムやプリンタを
Windows95 や WindowsNT などで共有することができます。ここで
は samba-1.9.16p11 について取り上げますが、バージョンによっ
て仕様が異なる場合があるので設定の際には注意して下さい。
samba のインストール
samba も packages や ports が用意されています。ありがたく使
わせて頂きましょう。インストール先のデフォルトは、バイナリが
/usr/local/sbin、設定ファイルが /usr/local/etc となっていま
す。ただし日本語ファイル名を使いたい場合は -DKANJI オプション
を付けてコンパイルする必要があります。この場合は ports を使っ
てインストールすれば良いでしょう。
smb.conf の概要
samba を使ってどのファイルシステムを共有可能にするかなどの設
定は、smb.conf というファイルに記述します。書式は
[セクション名]
パラメータ = 値
パラメータ = 値
という形式になります。セクション名は基本的に自由に指定するこ
とが出来、ここに指定した名前が Windows 上で表示されます。し
かし、[global]、[homes]、[printers]という名前はあらかじめ
samba サーバによって予約されており、特別な意味を持ちます。こ
れら予約セクションの意味は以下の通りです。
- global
ここに記述されたパラメータは全体を通してデフォルトとなります。
他のセクションで特にパラメータを指定しないと、global セクショ
ンで指定されたパラメータがデフォルトの設定値として用いられま
す。
- homes
ここでは各ユーザのホームディレクトリを Windows からアクセスす
る場合の機能を定義します。
- printers
プリンタに関する設定を行ないます。デフォルトのまま使用すると
サーバにある /etc/printcap に記述されているすべてのプリンタ
が Windows 側から使えます。
smb.conf のパラメータ解説
実際に smb.conf で用いられ、使用頻度の高そうなパラメータの解
説をします。
- auto services
自動的にブラウズリストに追加したいサービスのリスト。
- config file
smb.conf の代わりとなる設定ファイルを使用する場合に設定する。
- dead time
ここで指定した時間(分)が経過するとサーバはクライアントから
の接続を切る。ただし、クライアントから接続要求が来た場合には
自動的に接続を復旧する。
- debug level
ログを採る際の取得レベルを設定する。数字が大きいほど詳細なロ
グが採れる。
- default
default service を参照。
- default service
要求されたサービスが見つからなかった時に接続されるデフォルト
のサービスを指定する。
- encrypt passwords
ネゴシエーションに暗号化されたパスワードを用いる場合指定する。
この場合あらかじめ DES ライブラリと暗号化コードを指定してコ
ンパイルされてなければならない。
- hosts equiv
ここで指定したファイルに書かれたホストは信頼出来るホストとし
て、そのホストからのアクセスに対しパスワードを入力せずにアク
セスすることを許可する。
- load printers
yes とした場合、/etc/printcap に書かれたすべてのプリンタがブ
ラウズされる。
- lock directory
ロックファイルを置くディレクトリを指定する。
- log file
ログファイルの名前を指定します。
- log level
debug level 参照。
- lpq cache time
lpq コマンドの頻繁な呼び出しを防ぐために用いられるキャッシュ
の有効時間を設定する。
- max log size
ログファイルの最大のサイズを決定する。
- null passwords
パスワードがないアカウントのアクセスを許すか許さないか指定す
る。
- password level
パスワード中の最大大文字数を定義する。最初のパスワードの認証
に失敗してもこのレベルの数だけ大文字に変換したパスワードを用
いて認証が繰り返される。
- password server
パスワードサーバを指定する。
- preload
auto services 参照。
- printing
印刷に関するスタイルを指定する。「bsd」、「sysv」、「hpux」、
「aix」、「qnx」、「plp」が存在する。
- printcap name
printcap に相当するファイルを指定する。デフォルトでは
/etc/printcap を読みに行く。printcap のないようなOSでは代
わりとなるファイルを用意しそのファイルを指定する。
- root
root directory を参照。
- root dir
root directory を参照。
- root directory
サーバのルートディレクトリを指定する。クライアントはここで指
定されたディレクトリ以下以外にはアクセスできない。
- smbrun
smbrun バイナリのパス名を指定する。正確に指定しないとサービ
スが正常に動作しなくなる場合がある。
- status
smbstatus でコネクションの状態の取得を有効にする無効にするか
を指定する。
- admin users
共有において特権が与えられるユーザのリストを記述する。このユー
ザはファイルのパーミッションに関係なくあらゆる操作を行うこと
が出来る。
- allow hosts
サービスにアクセスすることを許可するホストのリストをカンマで
区切って記述する。[ネットワークアドレス]/[ネットマスク]とい
う指定や、@[ネットグループ]という指定の仕方も可能。
- browseable
共有がクライアントで見えるかどうかを指定する。
- copy
サービスエントリの複製を作ることを許可する。すでに設定された
セクション名を与えてやることでそのセクションのパラメータの設
定値を引き継ぐことが出来る。
- create mask
クライアント側からサーバ側のファイルシステムにファイルをコピー
したり新規作成したりした時、サーバ側で作られるファイルのパー
ミッションを指定する。
- create mode
create mask と同じ。
- comment
そのセクションに対するコメントを記述する。Windows 側で詳細な
表示をした時に表示される。
- deny hosts
サービスへのアクセスを拒否するホストのリスト。
- directory
path 参照。
- guest account
guest ok を指定したサービスにアクセスする時に使用するユーザ
名を設定する。
- guest ok
public 参照。
- guest only
これを指定したサービスへの接続はゲストのみ有効になる。"guest
ok" か "public" が設定されている必要がある。
- hide dot files
ドットファイルを隠すか隠さないかを指定する。
- hosts allow
allow hosts 参照。
- hosts deny
deny hosts 参照。
- invalid users
サービスへのログインを許可しないユーザのリスト。
- path
ユーザがアクセスできるディレクトリを特定する。
- postscript
プリンタに印刷ファイルがポストスクリプト形式であることを強制
する。
- print ok
printable 参照。
- printable
クライアントに対し指定されたディレクトリにスプールファイルを
送り込むことを許可する。
- printer
プリンタ名を指定する。
- printer name
printer 参照。
- public
このパラメータを yes にするとパスワード無しでサービスに接続
することを許可する。
- read only
yes ならサービスのディレクトリに書き込むことが出来ない。
- valid users
サービスにログインできるユーザのリストを記述する。
- writable
yes ならサービスのディレクトリに書き込むことを許可する。
- write ok
writable 参照。
- write list
サービスに対して書き込み許可を与えるユーザのリスト。
lmhosts の設定
samba-1.9.16p11 からは lmhosts の内容が smb.conf に取り込ま
れたので気にする必要は無いようです。
smb.conf の例
smb.conf の設定例を示します。アクセスしたユーザのホームディ
レクトリと /share1 、/share2 という共有ディレクトリにアクセ
スできる設定です。/share1 、/share2 には user1 というユーザ
しか書き込み権限を与えていません。またデフォルトでは
192.168.0 に属するホストに対してアクセス許可を出しています。
[global]
workgroup = WAVE
status = yes
public = no
browseable = yes
password level = 8
dead time = 10
socket options = TCP_NODELAY
allow hosts = 192.168.0.0/255.255.255.0
remote announce = 192.168.0.255/hogehoge
log file = /usr/local/samba/log.%m
lock directory = /usr/local/samba/var/locks
[homes]
comment = Home Directories
browseable = no
writable = yes
create mode = 0750
[share1]
comment = Share Directory No.1
path = /share1
writable = no
create mode = 0644
browseable = yes
read only = no
write list = user1
[share2]
comment = Share Directory No.2
path = /share2
writable = no
create mode = 0644
browseable = yes
read only = no
write list = user1
Go to Top