トップ > 技術メモ (システム管理) > Linuxサーバ管理 >

Samba 3.2 の設定

(2006.1.28 ページを分離)

(2005.3.23, 2005.12.11, 2007.8.9更新)

(2008.8.13 全体的に書き直し。)

Sambaは、オープンソースのSMB / CIFS (Common Internet File System) サーバ・ソフトウェアです。Windows機やMacOS X機をクライアントにして、フォルダやプリンタを共有できます。

Fedora 9 Linux には Samba 3.2.0 が含まれます。

ただ、Fedora Core では、プリンタの共有はSambaではなくCUPSを直接叩いたほうがいいようです。CUPSでの共有方法は、CUPSでLinuxのプリンタ (PIXUS) を共有する

目次:

  1. Samba 3.2 の見どころ
  2. Samba の設定方法
  3. ファイル名の文字コード
  4. セキュリティモデル
    1. スタンドアロンサーバ
    2. Active Directoryドメインメンバ
  5. フォルダの共有
  6. Linux機からアクセスする
  7. ごみ箱

@ Samba 3.2 の見どころ

(2008.8.10 この節を追加。)

Samba 3.2は 2008年7月にリリースされました。特徴をいくつかピックアップしてみます。

'registry' based configuration system
net コマンドで共有を追加したり設定できるようになりました。
パス名の1024バイト、ファイル名の256バイト制限の撤廃
NTFSのパス名は 32,767 文字 (バイトではない) まで、パスの各要素は255文字までです。
代替データストリーム (alternate data streams) のサポート。
Samba 3.0 までは代替ストリームを含むファイルをSambaサーバにコピーすると、単に代替ストリームのデータが消失しました。

別ファイルか、ローカルデータベース、拡張属性 (extended attributes; xattrs) に保存します。

(2008.8.18)
Samba 3.2.0 では、Windows機からサーバ上にあるファイルの代替ストリームの読み書きはできますが、エクスプローラでファイルを移動すると、代替ストリームが分かれて置き去りになってしまいます。

まともに実用になるのは、バージョン3.2.1以降に持ち越しのようです。

Clustered file server support (実験的)
バックエンドに分散ファイルシステムを使えるようになりました。例えば、Red Hat Global File System (GFS), IBM General Parallel File System (GPFS).
Encrypted network transport
IPv6-only network support
Now Licensed under the GNU GPLv3
これまでの GPLv2 と GPLv3 は互換性がありませんので、混ぜると危険です。

@ Sambaの設定方法

Fedora 9 Linux にはGUIでSambaの設定を行う system-config-samba コマンドがあります。しかし、今のところ、このコマンドは設定ファイル smb.conf の内容を完全には解釈しないので、あまり良くありません。

Sambaを設定するときは、smb.confファイルを直接編集するか、SWATを使うのがいいと思います。Fedora 9 では、smb.confは /etc/sambaディレクトリにあります。

SWATのインストール

SWATを使う場合は、samba本体と別パッケージになっているので、yum コマンドでインストールする。

# yum install samba-swat

chkconfig コマンドまたは system-config-services コマンドでSWATを有効にする。

Linux機のWebブラウザで http://localhost:901/ にアクセスすればSWATの画面になる。

設定のテスト

手でsmb.confを編集した場合は、エラーがないか確認しておいたほうがいい。testparm コマンドで smb.conf が正しいか確認できる。

# testparm

@ ファイル名の文字コード

(2008.8.10 この節を加筆。)

日本語のための文字集合として、JIS X 0208 を拡張した JIS X 0213が登場しました。

2000年の JIS X 0213:2000 のときは Unicode のコードポイントとの対応が完全ではなかったりして、まともな実装は現れず、広まりませんでした。

2004年版 (JIS X 0213:2004; JIS2004) はそういった問題もほぼなくなり、Windows Vista や Mac OS X など、実装も現れてきました。

WindowsクライアントとSambaサーバ間は、現在では、Unicode で通信することになっています。そこは問題ありません。

Sambaサーバ側でのファイル名の文字コードに注意が必要です。

JIS X 0213では文字がずいぶん追加されたため、EUC-JP またはシフトJISにコード化するには、新たに専用のテーブルが必要です。が、Linux ではまともなテーブルはありません。

Sambaサーバでは、文字コードは必ずUnicodeベースのものにしなければなりません。Linux ではUTF-8にします。

smb.conf ファイルでの、サーバ側の文字コードの指定は unix charset でします。初期値はUTF8 です。

[global]
    unix charset = UTF-8

@ セキュリティモデル

(2007.8.9 この節追加。2008.8.10 加筆。)

Samba は smb.conf ファイルの security 命令でセキュリティモデルを指定します。選択肢が5つあります (share, user, server, domain, ads) が、全部が全部日常的に使うわけではありません。

Samba 3.2 は、Active Directory ドメインコントローラになることはできません (Samba 4.0 で実装される予定)。Active Directory の前身、NT 4.0ドメインのPDC, BDC になることはできますが、NTドメインは廃れる予定です。

スタンドアロンサーバ

小規模のネットワーク向けです。security = user とします。security = share は、Windows 3.1 時代の名残で、現在は使うことはないと思います。

[global]
  security = user
  passdb backend = tdbsam

passdb backend オプションは、新しくインストールするときは、tdbsam または ldapsam を指定します。tdbsam はローカルにパスワードを保存し、ldapsam はLDAPサーバを用います。

passdb backend = smbpasswd も互換性のために用意されていますが、非推奨です。

クライアントのWindows機ログインユーザ、UNIXログインユーザ、Sambaユーザの名前を合わせておきます。

Sambaでのユーザ名、パスワードはSambaパスワードデータベースに保存します。

以前は smbpasswd コマンドでユーザを登録していましたが、pdbedit コマンドを使うようになりました。もはや smbpasswd コマンドでは新しいSambaユーザを登録できません。

例えば、ユーザの追加は次のようにします。

# pdbedit -a ユーザ名

Active Directoryドメインメンバ

別途、ドメインコントローラとして Windows Server を用意し、Samba はメンバとしてドメインに参加します。

[global]
  security = ads

security = domain は、NTドメインに参加する (NTドメインコントローラがユーザ認証する)もので、現在はこれを選択することはないと思います。また、security = server はセキュリティ上のリスクがあって (?)、使うべきではないようです。

@ フォルダの共有

(2007.1.19 この節追加。2008.8.13 更新。)

Sambaサーバで公開しているフォルダをWindows機だけから使う場合は、あまり設定に気を付けることはありません。

しかし、SambaサーバにUNIXユーザとしてログインして、サーバ内でローカルにファイルを扱う場合は、いくつか設定を変えておいたほうがいいところがあります。

ファイル共有の設定

ワークグループ名を指定します。クライアント機の設定と合わせます。

[global]
    workgroup = fruits

ファイル名の取り扱い関係;

[global]
# ファイル名の大文字,小文字を区別するようにする。
    preserve case = yes
        # 'no'だと,ファイル作成時にdefault caseの指定通り変換される
    short preserve case = yes
        # 常にpreserve caseと同じにする
#   case sensitive = yes
        # これを'yes'にするとWindowsエクスプローラからファイルが見えなくなる

case sensitive のデフォルト値は 'auto'

    map archive = no
        # 2000.01.20 samba経由で作成したファイルに実行属性が付かないようにする

wide links パラメータは、Sambaが公開するディレクトリの外へのリンクを辿れるようにするかを決めます。yes で辿れ、no だと禁止します。noにするとパフォーマンスの問題があるので、yes でいいと思います。

UNIX側でディレクトリへのシンボリックリンクを張っていると、Windowsエクスプローラからシンボリックリンクを削除できません(リンク先のフォルダの中身を削除してしまう)。あるいは無限にフォルダを展開しようとすることがあります。

Sambaサーバ専用だとこの問題は発生しませんが、UNIX側にもログインするような使い方をするときは、シンボリックリンクを辿るのを禁止しておいたほうがいいでしょう。

[global]
  wide links = yes
  follow symlinks = no

共有ファイルを設定する。

[filetree]
    path = /
        # Windowsマシンでドライブ名を割り当てて使うと便利。
    read only = no
        # 読み書き可能にする。

@ Linux機からアクセスする

(2007.1.19 この節追加。)

よくある構成は、Linux機をサーバにして、Windows機からアクセスして、Windows機どうしでファイル、フォルダを共有するものだろう。

UNIX機どうしのファイル共有はNFSがよく使われる。

しかし、Linux機もCIFSクライアントになれるので、Linux機どうしあるいはWindows機とのファイル共有にCIFSプロトコルが使える。

Fedora Core 6では、samba-clientパッケージにmount.cifsコマンドがある。これでCIFSサーバのディレクトリをローカルにマウントできる。

# /sbin/mount.cifs //サーバのホスト名/公開パス /mnt -o user=ユーザ名

@ ごみ箱

重要.

下記のごみ箱機能は、ユーザーインターフェイスの点から適切ではないので、有効にしないほうがいいように思う。

何も設定しないと、ネットワーク越しのフォルダのファイルを削除すると、ごみ箱(ゴミ箱)に入らずに、そのときに完全に削除されてしまう。

ファイル共有セクションの「vfs objects」パラメータにrecycleモジュールを指定することで、ごみ箱機能を有効にできる。ゴミ箱モジュールは、クライアントからのファイル削除の要求を横取りして、ゴミ箱ディレクトリに移動する。

次のように書く。recycle:repository パラメータでゴミ箱ディレクトリを指定するが、[homes]セクションのときは、自動的に「/home/ユーザ名/指定ディレクトリ」として扱われる。

keeptree パラメータがyesのときは、ゴミ箱ディレクトリの中に、削除しようとするファイルがあったディレクトリが復元されて、そこにファイルが移動される。

[homes]
    comment = Home Directories
    browseable = no
    writeable = yes

    # 以下がゴミ箱の設定
    vfs objects = recycle
    recycle:repository = .recycle
    recycle:keeptree = no
    recycle:versions = yes
    recycle:touch = no
    recycle:maxsize = 0
    recycle:exclude = *.tmp *~

ただしこの機能は単純にファイルを移動するだけなので、元の場所に戻したり、削除した時間順に並べ替える、などのことはできない。また、ファイル削除のときのアイコンも、ゴミ箱へ移動アイコンではなく、削除アイコンのまま。

外部リンク

改訂 管理者のためのActive Directory入門(Windows Server 2003対応改訂版)

トップ > 技術メモ (システム管理) > Linuxサーバ管理 > Samba 3.2 の設定
このページについてのご感想・ご提案などをお寄せください。なお、コメントに「http:」、HTML aタグが含まれると送信されません。
評価: ◎ ← → ×
コメント:
お名前:
メールアドレス:
[Profile]  [Privacy Policy]  [Legal & Link]  [Site Map]  

banner Netsphere Laboratories http://www.nslabs.jp/

Copyright (c) HORIKAWA Hisashi. All rights reserved.

[PR]

はてなブックマークに追加  

サイト内検索:

[PR]