|
|
Sambaサーバーの構築
|
SambaサーバーについてSambaの構成と設定の方法SWATの準備と設定SambaのコントロールSambaの全体動作の設定ユーザーアカウントの設定共有ポイントの基本的な設定ホームディレクトリの利用特殊な共有ポイントの設定プリンタサーバーの設定Sambaについてその他 |
SWATでの設定作業の基本操作まず最初に、 Samba の動作全体に関する設定を行います。 Sambaは ファイルサーバー としていくつもの共有ポイントを設けることができ、それぞれの共有ポイントに対して個々に動作設定を行うのが基本ですが、例えば文字コードの対応や セキュリティ 設定など、Sambaの動作全体に係わる部分をここで設定します。 SWATの任意の画面から、 "GLOBALS" ボタンを左クリックしてください。以下のようなメニューが表示されます。
SWATの"GLOBALS"メニュー 最初は "Basic(標準表示)" のページになっていますが、設定の内容によっては、 Advanced (詳細表示)ボタンを左クリックしてページを切り替える必要があります。 また、設定を入力・変更した後は必ず Commit Changes (変更を反映)ボタンを左クリックしてください。すると、 "/etc/samba/smb.conf" に設定値の保存が行われます。 また、 Commit Changes (変更を反映)を実行する前であれば、 Reset Value (変更を取消)ボタンを左クリックすると、変更前の設定に戻すことができます。 また、 "/etc/samba/smb.conf" は保存しただけではSambaの動作には反映されません。
設定を変更して保存したら、必ずSWATの
"SATUS"
メニューから
smbd
を再起動するか
これらの設定の反映操作、そして以下に説明する個別の ディレクティブ 設定手順は、他の設定メニューの操作にも共通しています。 まずはこの "GLOBAL" メニューで操作方法を覚えてしまいましょう。
|
|||||||||
基本オプションの設定まず、 "GLOBALS" メニューの、 Advanced (詳細表示)ボタンを左クリックして、詳細設定の画面に切り替えてください。少し下にスクロールすると、 「Base Options(基本オプション)」 の ディレクティブ が デフォルト のパラメータの状態で表示されているのがお分かりと思います。 この中の各ディレクティブを次のように修正してください。 "dos charset"〜Windowsクライアント側の文字セット(1) の部分の設定です。 Samba の ファイルサーバー に WindowsOS が クライアント として接続するときの、クライアント側で用いる 文字セット を設定します。 |
||||||||||
|
|
これが正しく設定されていないと、クライアント側で日本語のファイル名やフォルダ名が「文字化け」を起こす原因になります。 WindowsOSでは デフォルト で シフトJIS を用いますから、 "/etc/samba/smb.conf" の書式でシフトJISをあらわす "CP932" を設定します。 "unix charset"〜UNIXクライアント側の文字セット(2) の部分の設定です。 Samba の ファイルサーバー に UNIX 系の OS が クライアント として接続するときの、クライアント側で用いる 文字セット を設定します。 これが正しく設定されていないと、クライアント側で日本語のファイル名やフォルダ名が「文字化け」を起こす原因になります。 Sambaのファイルサーバーを利用するのが WindowsOS だけではなく、UNIX系のOSにSambaのクライアント アプリケーション を インストール したものを利用する場合に必要な設定になります。 WBEL3 や CentOS3 をお使いの場合は デフォルト 文字セットである EUC にセットしておきます。 その場合は "/etc/samba/smb.conf" の書式でEUC-JPをあらわす "EUCJP-MS" を設定します。
もちろんWBEL4やCentOS4、CentOS5をご利用の場合で文字セットをEUCに変更しているとき
WBEL4やCentOS4、CentOS5を標準文字セットの UTF-8 をそのまま利用しているときは デフォルト の "UTF-8" のままにしておきます。 "display charset"〜Sambaサーバー側の文字セット(3) の部分の設定です。 Samba を稼動させている サーバー 上のファイルシステムで、ファイル名やフォルダ名を表示するための 文字セット を設定します。 これが正しく設定されていないと、Sambaで運用しているディレクトリ内をサーバー上で直接表示させるときに、日本語のファイル名やディレクトリ名が文字化けしてしまいます。 |
|||||||||
| Sambaのバージョンによってこの設定値のデフォルトは、 "ASCII" や "UTF-8" だったりしますので混乱の元です。できれば次の説明のように "unix charset" と同じに書き換えておきましょう。 |
これはSambaを動作させている OS の デフォルト 文字セットに合わせればOKですから、一般的にはシステムの文字セットを指定する デフォルト の "LOCALE" のままでOKです。
しかしながら実際には、明示的に
"unix charset"
と同じものを指定しておくことが推奨されていますので、
WBEL3
や
CentOS3
をご利用の場合、またはWBEL4やCentOS4、CentOS5をご利用の場合で文字セットをEUCに変更しているとき
WBEL4やCentOS4を標準文字セットの UTF-8 をそのまま利用しているときは "UTF-8" を設定します。 "workgroup"〜WindowsOSのワークグループ |
|||||||||
| WindowsOSの種類にもよりますが、特に設定をしていなければお使いのWindowsOS機には、 "Workgroup" や "Mshome" などの デフォルト のワークグループ名が設定されているはずです。 |
WindowsOSのワークグループ名は、一つのLANに多くの ホスト が参加しているときに、それぞれのホストの利用目的などの分類をわかりやすくするためのもので、アクセス制限などには関係しない「簡易グループ」です。 |
|||||||||
| ちょっと残念ですが、Sambaのワークグループ名には日本語を使うことができません。 |
動作に関しては何が設定されていても問題はありませんが、できればLAN内のWindosOSクライアントのワークグループ名を合わせておくほうが運用には好都合でしょう。 よくわからないときは、とりあえずデフォルトの "MYGROUP" のままでもかまいません。 "netbios name"〜サーバーのNetBIOS名 |
|||||||||
| ちょっと残念ですが、SambaのNetBIOS名には日本語を使うことができません。 |
NetBIOS名は、 NetBIOS over TCP/IP で利用される ホスト名 、いわゆるWindowsOSでいうところの コンピュータ名 です。 NetBIOS名は DNS で利用される FQDN と同様に IPアドレス に 名前解決 され、ホストの所在地情報として機能します。 これがいわゆるNetBIOS over TCP/IPの基本的な動作なのですが、 ドメイン名 やFQDNを基本として動作するDNSとは部分的にしか互換性がありませんから、DNSとは別に設定を行う必要があります。 さて、NetBIOS over TCP/IPは、小規模な LAN で便利に使えるように、LAN内のそれぞれのホストが他のすべてのホストに対してNetBIOS名とIPアドレスを通知する仕組みになっています。 |
|||||||||
| もちろんNetBIOS over TCP/IPにも、 winsサーバー という名前解決専用のサーバーを設置して運用することができます。主に大規模なネットワーク向けですので、この コンテンツ では扱いません。 |
つまりNetBIOS over TCP/IPは、 DNSサーバー のような名前解決専用の サーバー を必ずしも必要としないため、通常は単純にLAN内の他のホストのNetBIOS名と重複しない名前を設定すればOKです。 ただし、Sambaの設定に SWAT を利用している場合は一つだけ注意すべきことがあります。 |
|||||||||
| NetBIOS名やワークグループ名では、大文字と小文字を区別しませんから、 web1 と WEB1 は同じホストを示すことになります。 |
この "netbios name" ディレクティブ の デフォルト には、 構築中のLinuxサーバー のホスト名の部分である "WEB1" が設定されていますが、これを別の名前に変更してしまうと、SWATの "STATUS" メニューで表示される smbd の稼動状態が、常に「停止中」と表示されてしまいます。 |
|||||||||
|
|
実際には一度 smbdの起動 ボタンを左クリックすれば、「停止中」と表示されていてもきちんと動作してますから実用上は問題ありませんが、こういう現象はあまり気持ちの良いものではありません。 なぜこういう現象が起こるのでしょうか。 実はSWATは、Sambaの動作状態について直接プログラムの動作をチェックしているわけではなく、SambaサーバーのNetBIOS名を参照してSambaサーバーの所在をチェックし、動作確認を行っています。 ところがSWAT自身はSambaに接続しているWindowsOS クライアント ではないので、Samba自身はSWATに対して名前解決情報を送りません。 従ってSWAT(つまり 構築中のLinuxサーバー )は、NetBIOS名から自力でSambaサーバーのIPアドレスに名前解決し、動作確認を行わなければなりません。
もしもNetBIOS名に
"WEB1"
が設定されていたとすると、SWATは
構築中のLinuxサーバー
上の
hostsファイル
という訳ですから、もしもSambaサーバーのNetBIOS名がデフォルトの "WEB1" のままで構わなければそのまま利用するのがベストです。 もしも他の名前をSambaサーバーのNetBIOS名にしたい場合には、その名前を 構築中のLinuxサーバー 自身が名前解決できるように設定する必要があります。
DNSサーバーを使わずに名前解決を行うには、普通は
"/etc/hosts"
にホスト名とIPアドレスの対応を記述します
|
|||||||||
| WindowsOS上にも同じ働きをするlmhostsファイルがあります。場所は普通hostsファイルと同じです。ただ、Sambaのlmhostsファイルとは書式が違いますので注意してください。 |
ただし、 NetBIOS名以外に使用しないホスト名の名前解決をhostsファイルで行うのは好ましくありません。 例えば、NetBIOS名に "mysamba" というホスト名を使うとして、hostsファイルに
|
|||||||||
|
例えば本来はあり得ない
"http://mysamba/" でのHTTPアクセスが可能になったりしてしまうわけですね。 |
と記述した場合、"mysamba"はWindowsOSのファイル共有名としてだけではなく、 HTTP や FTP などもこのホスト名を利用しようとしますから、これらの動作に係わるアプリケーションが思わぬ動作を起こすことがあります。 という訳ですから、NetBIOS名について名前解決の設定を行う場合には、 "/etc/hosts" にではなく、NetBIOS専用のhostsファイルである "/etc/samba/lmhosts" に記述するようにします。 "/etc/samba/lmhosts" はSWATから編集することはできませんので、 シェル プロンプト から直接 nanoエディタ で編集します。
まず、
SSHクライアント
で
構築中のLinuxサーバー
に
ログイン
します
それから
su
コマンド
で
アカウント
を
"root"
に変更し、
"/etc/samba/lmhosts"
を、
cp
コマンド
でバックアップファイルを作成した後に、
nanoエディタ
で開いてください
↓
nanoで"/etc/samba/lmhosts"を開く "/etc/samba/lmhosts" の書式は、 |
|||||||||
| [IPアドレス] と、 [対応するNetBIOS名] の間は、スペースかタブで区切ります。 |
[IPアドレス] [対応するNetBIOS名] ですから、例えば今構築中のSambaサーバーに "mysamba" というNetBIOS名を設定したい場合は、
のように追加記述します。 |
|||||||||
|
|
また、SWATとSambaは同じホスト上で動作していますから、
のように、 ループバックアドレス を指定しても構いません。この場合は、 構築中のLinuxサーバー のIPアドレスを変更するときでも、この部分を修正する必要がありません。 これで "WEB1" ではなく、 "MYSAMBA" というNetBIOS名をSWATで設定し、問題なく "STATUS" メニューが使用できるようになります。 "netbios alias"〜サーバーのNetBIOS名の別名(6) の部分の設定です。 WindowsOS の ホスト の識別情報名である NetBIOS 名の 「別名」 を設定します。 例えば、上の "netbios name" を "WEB1" のまま、 "netbios alias" を "MYSAMBA" と設定すると、以下のように同じネットワークコンピュータが二つ利用できるようになります。もちろん、どちらも同じものを指します。
netbios aliasで複数のホストが表示可能 |
|||||||||
| WindowsOSでもできないことはありませんが、特殊な設定なので簡単にはできないようになっています。 |
これは通常のWindowsOSにはない特殊な機能ですので敢えて掲載しました。実用上のメリットがない場合には利用する必要はないでしょう。 "server string"〜サーバーの表示名(7) の部分の設定です。 WindowsOS の ホスト の識別情報名である NetBIOS 名とは別に、 サーバー の種類や目的などをわかりやすくするために付加する コメント を設定します。 この機能はWindowsOSで 「コンピュータの説明」 という項目で設定するものと同じです。 WinodwsMe 以前はどちらかというと「NetBIOS名に説明を加える」という補助的な扱いの機能でしたが、 WindowsXP 以後は立場が逆転して、この「コンピュータの説明」のほうがネットワークコンピュータの「識別名」の中心的な扱いを受けるようになっています。 以下は、 "netbios name" を "WBE1" 、 "server string" を "Samba Server" と設定した Samba サーバーが、WindowsXPと Windows2000 でどう表示されるかを示したものです。
WindowsXPのネットワークコンピュータの表示
Windows2000のネットワークコンピュータの表示 |
|||||||||
| この部分には日本語を使うことができます。 |
従って、もしも Windows7 や WindowsVista 、WindowsXPが中心のWindowsOSネットワーク環境でSambaサーバーを利用する場合には、NetBIOS名よりもこちらのほうが目にする頻度は高くなりますから、わかりやすいパラメータを設定しておくと便利です。 "interfaces"〜接続を許可するNICとノード"bind interfaces only"〜"interfaces"の適用化(8) と (8') の部分の設定です。 Samba が利用する サーバー の NIC と、接続を許可する ホスト の IPアドレス を限定するための ディレクティブ です。 |
|||||||||
|
|
"interfaces" では設定値を、 "bind interfaces only" には "Yes" か "No" を設定して、 "interfaces" の有効、無効を切り替えます。 デフォルト では "bind interfaces only" が "No" に設定されていますから、Sambaは 構築中のLinuxサーバー のすべてのNICで、任意のIPアドレスのホストからの接続を許可するようになっています。 例えば、会社や学校などの多くの WindowsOS 機が稼動しているような環境でSambaを稼動させる場合などには、これらのディレクティブを厳密に設定してアクセス制限をかけるべきですが、自宅サーバーの場合は特に気にする必要はないでしょう。
現在構築中の自宅サーバーは、
ルーター
に設定された
NAT
+
IPマスカレード
つまり、現在構築中のネットワーク構成では、Samba自身にアクセス制限をかけなければならない理由がないというわけです。 また、WindowsOSのファイル共有でのアクセス制御は、もともとIPアドレスに対して行うものではなく、 ユーザーパーミッション によって行うことで便利に使えるように設計されていますから、IPアドレス単位でのアクセス制限を施してしまうと逆に扱いにくくなってしまいます。 以上のような理由から、例えばサーバーに複数のNICを接続するとか、 VPN で別の サブネット などと遠隔接続するといった特別な使い方をしない限り、これらはデフォルトのままにしておくのが良いでしょう。 基本オプションの設定例以上の内容での基本オプションの設定例を以下に示します。必ず変更が必要な部分には 赤線 を引いています。
設定を変更した後は忘れずに
Commit Changes
(変更を反映)ボタンを左クリックし、Sambaの再起動または設定の再読み込み
Sambaは(というより NetBIOS over TCP/IP) は、実際に動作が反映されるまで数十秒程度かかる場合がありますので、設定の変更がうまく反映されていない場合は少し待ってから確認しなおしてみてください。
|
|||||||||
セキュリティオプションの設定Security Options ( セキュリティ オプション)のパートでは、主にユーザー認証に関する設定を行います。 |
||||||||||
|
|
"GLOBALS" メニューの、 Advanced (詳細表示) のまま画面を下にスクロールしてください。 このパートで設定しなければならない項目はいくつかしかありませんが、以後の設定に非常に重要な項目ばかりですのでよく理解して設定してください。 "security"〜認証プロセスの設定(1) の部分の設定です。 Samba サーバー が クライアント から接続を受けるとき、どういうプロセスで接続のための認証を行うかを決定する ディレクティブ です。 ここで決定するのは、あくまで「サーバーに接続するとき」の認証プロセスであって、接続後のサーバー上のフォルダへのアクセス権限については別の設定に従うという点に注意してください。 |
|||||||||
|
デフォルト
は
"USER"
です。
しかし
で
"/etc/samba/smb.conf"
を編集して、既に設定を
"SHARE"
に変更している場合は、当然のことながら
SWAT
画面では
"SHARE"
が表示されているはずです。
|
このディレクティブは通常、 "USER" か、 "SHARE" を選択して設定することになります。 "USER" と設定すると、クライアントはSambaはサーバーに接続するとき、必ず ユーザー名 と パスワード の二つの情報を送り、認証してもらわなければならなくなります。 この設定は、 セキュリティ は高くなりますが、接続する際には必ずユーザー名とパスワードを入力しなければならなくなりますので、実用上はやや面倒になります。 |
|||||||||
| 設定できるパラメータは他にも、認証そのものを別のサーバーシステムに任せる "SERVER" 、NTドメインなどの WindowsOS 独自の管理方法を利用する場合の "DOMAIN" 、 "ADS" などがありますが、いずれも自宅サーバー向きではありませんので説明は割愛します。 |
一方 "SHARE" と設定すると、クライアントはSambaはサーバーに接続するとき、認証のための情報を送る必要がありません。つまり任意のクライアントが比較的自由にSambaサーバーに接続可能になります。 ただ、この "SHARE" という認証プロセスは、「セキュリティよりも便利さ優先」だった昔のWindowsOSネットワークと互換性を保つためのものですから、新しい WindowsOS である WindowsXP 以後が中心の LAN 構成の場合には色々不自由な面があります。 これは予想ですが、次期のWindowsOSでは事実上 "SHARE" の設定では運用できなくなる可能性もあります。 このディレクティブを "USER" に設定する場合の「常にユーザー名とパスワードを送って接続しなければならない」という問題は、次に説明する "map to guest" というディレクティブで比較的上手に回避することができますから、ここではとりあえず "USER" に設定しておきましょう。 "passdb backend"〜認証プログラムの設定Samba のバージョン3.0.xから追加された ディレクティブ で、Sambaがユーザー認証を行うために利用する仕組みの選定を行います。 デフォルト のパラメータは "smbpasswd" で、従来のバージョンのSambaから標準となっている "smbpasswd" という テキストファイル に情報を書き込む方式です。 これを例えば "tdbsam" と設定するとTDB方式と呼ばれる バイナリ 形式の データベース が利用できますし、 "ldapsam" と設定すると拡張性の高い LDAP と呼ばれる認証方式を利用できます。 仮に数百人以上のユーザーでSambaを利用する場合は、テキスト形式でユーザー情報を扱う "smbpasswd" ではレスポンスの面で運用が難しくなりますから、動作の高速なバイナリ形式のデータベースを扱う "tdbsam" を選択することになるでしょう。また、複数の サーバー にまたがって認証や運用を行う大規模なシステムでは "ldapsam" を設定してLDAPを利用したほうが結果的に運用は楽になります。 ただ、利用者が多くても数人程度、サーバーの数も多くて二つ程度の自宅内サーバー環境では、単純で扱いの易しい "smbpasswd" を選択するのがベターです。 |
|||||||||
Sambaのデフォルトの
"passdb backend"
は
"smbpasswd"
なのですが、Sambaのバージョン
"3.0.25"
からは
"tdbsam"
に意図的に変更されているようです
。
とはいえデフォルトが "smbpasswd" であることに違いはありませんから、SWAT上で デフォルト値 のボタンを押すと "smbpasswd" に設定が変更されるようになっています。 |
WBEL3、CentOS3、及び比較的バージョンの低いWBEL4、CentOS4ではデフォルトの "smbpasswd" が設定されているはずですのでそのままで構いませんが、 アップデート の進んだ WBEL4、CentOS4及びCentOS5の場合は "tdbsam" に設定が変更されているはずです。 以後はここが "smbpasswd" と設定されていることを前提に解説しますので、設定が "tdbsam" になっている場合はひとまず "smbpasswd" に設定を変更しておいてください。 "map to guest"〜ゲストユーザーの自動ログインの設定(2) の部分の設定です。 Samba サーバー が認証情報が不足した状態で クライアント から接続を受けるとき、どういう振る舞いをするかを決定する ディレクティブ です。 このディレクティブは、前に説明した "security" ディレクティブが "SHARE" 以外の場合に有効になります。 デフォルト のパラメータである "Never" を設定した場合は、 クライアント がSambaサーバーに接続する際に、Sambaに登録された ユーザーアカウント 名と、それに対応する正しいパスワードを入力しなければなりません。 |
|||||||||
| ゲストユーザーは、 "nobody" というユーザーアカウントで WBEL や CentOS 上のSambaに接続します。 |
ところがこれを "Bad User に設定すると、クライアントから送られるユーザーアカウント名がSambaのユーザーアカウントとして登録されていない場合に限り、Sambaは自動的にそのクライアントを ゲストユーザー として ログイン させます。 つまり、「ゲストとして参照するだけならば、ユーザー名の入力もパスワードの入力も不要。」という簡単な接続手順で済むようになりますから、ここは "Bad User を選択しておくようにします。 ちなみにこのディレクティブにはもう一つ "Bad Password" という選択肢もありますが、これを設定すると、「パスワードに誤りがあった場合にゲストユーザーとしてログインさせる」という摩訶不思議な挙動をとります。 これでは、クライアント自身が正しいパスワードでログインできたのかそうでないのかが解らなくなり、混乱の元になりますので設定すべきではありません。 "username map"〜OS間のユーザー名を一致させるファイル(3) の部分の設定です。 |
|||||||||
|
|
通常 WindowsOS が Samba サーバー に接続するとき、まずWindowsOSはシステムに ログオン しているユーザー名を、 ユーザーアカウント 名として送信します。 ということは、WindowsOS上のユーザー名とSambaに登録されている ユーザーアカウント 名が完全に一致していれば、設定次第では接続時にユーザー名の入力を省略することができるようになります。 しかしSambaに登録可能なユーザーアカウント名はWBELやCentOSのユーザーアカウント名と同じく、「英文字と数字といくつかの記号を連続して組み合わせたもの。」という決まりがある一方で、WindowsOSのユーザー名には空白や日本語を使っても良いことになっています。 ということは、既に日本語やスペースの入ったユーザー名を設定しているWindowsOSの クライアント から接続したい場合には、必ずSambaのユーザーアカウント名をタイプしなければならないという不便なことになります。
Sambaではこういった問題に対処するために
ユーザーマップファイル
を利用し、WindowsOSのユーザー名とSambaのユーザーアカウント名を一致させてログインの手続きを簡略化する機能を持っています
この "username map" は、その双方のユーザー名の対照表(マップ)を指定する ディレクティブ です。 デフォルト ではパラメータは設定されていませんが、実は最初から "/etc/samba/smbusers" というマップが準備されていますから、ここには "/etc/samba/smbusers" と設定しておきます。 ユーザー権限の設定(4) の部分の設定です。 ここで設定するパラメータはユーザーアカウントごとのアクセス制御に関するものですが、実は共有ポイントの設定項目の中にも同じものがあります。 これらの ディレクティブ を、この "GLOBALS メニューで設定しておくと、共有単位の設定で同じディレクティブの設定を行わない場合の デフォルト として扱われます。 従ってこれらのディレクティブは、 Samba サーバー で多くの ユーザーアカウント を管理したい場合には便利です。 ところが残念なことに、これらのディレクティブを SWAT を使って頻繁に設定を変更すると、正しく設定されない場合があります。 従ってこの コンテンツ では混乱を防ぐ意味で、これらのディレクティブには最初から何も設定せず、ユーザーアカウントごとの制御は共有ポイント単位で行っていきます。 セキュリティオプションの設定例通常、 Advanced (詳細表示)でしか表示されない ディレクティブ の多くは、明示的に デフォルト 以外のパラメータを設定して、 Commit Changes (変更を反映)ボタンを左クリックすると、以下のように Basic (標準表示)画面にも表示されるようになります。
設定を変更した後は忘れずに
Commit Changes
(変更を反映)ボタンを左クリックし、Sambaの再起動または設定の再読み込み
|
|||||||||
"ゴミ箱"機能の追加について最近の クライアント 向け OS のほとんどは、削除するフォルダやファイルを一時的に保管しておく ゴミ箱 が標準で装備されています。 |
||||||||||
|
|
これはファイル操作で誤消去を抑制するためにはとても役立つものですが、 WindowsOS のファイル共有には通常この機能がありませんから、普通にパソコン上のファイルを操作する感覚で ファイルサーバー を操作すると、ついうっかり大事なファイルを消去しかねません。 WBEL や CentOS に標準で インストール される Samba には、使い勝手はあまりよくありませんが ゴミ箱 機能を実装させることができます。 ただ、この設定は SWAT の項目だけでは設定できませんので、直接 "/etc/samba/smb.conf" に ディレクティブ とパラメータを記述する必要があります。
まず、
サブネット
内の適当な
クライアント機
から
SSHクライアント
で
構築中のLinuxサーバー
に
ログイン
します
それから
su
コマンド
で
アカウント
を
"root"
に変更し、
nano
エディタで
"/etc/samba/smb.conf"
を開きます
↓
nanoで"/etc/samba/smb.conf"を開く ファイルが編集できるようになったら、 [global] セクション以下に、次のように追加記述してください。
詳細は割愛しますが、 "vfs objects = recycle" は、ゴミ箱を利用するときの宣言だと考えてください。 "recycle:keeptree = yes" は、ディレクトリ構造を削除の際も維持するという設定です。 "recycle:noversions = yes" は、既に同一名のファイルやディレクトリがゴミ箱に存在するとき、新しくゴミ箱に入ってきたファイルで上書きするという設定です。
記述が終わったら
"/etc/samba/smb.conf"
を保存し、nanoエディタを閉じた後
|
|||||||||
|
正確には、「その共有ポイントで初めて削除行為を行った時点で」作成されます。
また、 ".recycle" フォルダはすぐには現れないことがあります。 「設定を間違えたかな?」と見直しをする前に、ウインドウの "表示(V)" メニューから "最新の情報に更新(R)" を実行してみてください。 |
この設定で、以後作成される共有ポイントすべてに、以下のような ".recycle" というフォルダが作成されるようになります。
Sambaの共有ポイントに作成された".recycle"フォルダ この共有ポイント上で 削除 されたファイルやディレクトリはいきなり消去されることはなく、一時的にこの ".recycle" フォルダに移動されます。 完全に消去したい場合には ".recycle" フォルダを開いて中身を削除します。 ".recycle" フォルダは、その共有ポイントに初めてファイルの書き込みを行った ユーザーアカウント の所有で、 "700" の パーミッション で作成されます。 |
|||||||||
|
この
".recycle"
フォルダは削除されてもすぐに復活します。
もちろん中身が入っていた場合は中身も一緒に削除されます。 |
従って、このゴミ箱は所有者によって削除可能であるばかりか、複数のユーザーアカウントで書き込みを共有する共有ポイントの ".recycle" は、ゴミ箱が誕生するきっかけを作った人しか利用できなくなってしまいます。 という訳ですから、複数のユーザーアカウントで共有する ".recycle" は、 シェル プロンプト から、 chmod コマンドで以下のように操作して、誰でも書き込み可能なパーミッションを与えておくと良いかもしれません。
しかしながらこのパーミッションを与えてしまうと、今度は誰でも ".recycle" 自身を削除できてしまいますから、別の意味で不都合が起こるかもしれません。 |
|||||||||
|
|
従って、複数のユーザーアカウントで共有する共有ポイントを作成する場合は、逆にゴミ箱機能を設定しないほうがかえって問題は少ないかもしれません。 特定のフォルダにゴミ箱機能を与えない場合には、 "/etc/samba/smb.conf" の該当する共有ポイントの設定部分にnanoエディタで
と追加記述してゴミ箱機能をキャンセルすることができます。 また利用方法によっては、ゴミ箱を設置したい共有ポイントはごく一部で、ほとんどの共有ポイントにゴミ箱が不要、というケースもあるかもしれません。 こういう場合には、 [global] セクションにゴミ箱の設定を行うのではなく、以下のように共有ポイントに対して個別にゴミ箱の設定を行うほうがスマートです。
基本的には、複数のユーザーが書き込み可能な共有ポイントでのゴミ箱の利用はトラブルの元になりますから、ゴミ箱機能の設置は個人利用の共有ポイントに限定したほうが良いかもしれません。
|
|||||||||
その他のオプションの設定について実は、 "GLOBALS" メニューで設定行うべきところは他にはありません。 大規模な ファイルサーバー の構築や、 WindowsOS のNTドメイン、WINS サーバー をなどを利用して管理を行う場合には他に修正、設定しなければならないところがありますが、自宅サーバーで利用する程度であればこれ以上の設定は不要です。 「こんなにたくさん ディレクティブ があるのに、たったこれだけで大丈夫?。」 と思うかもしれませんがこれで充分です。 |
||||||||||
|
ムックですが管理人の イチオシテキストです↓ |
Samba は個人用途から大企業の基幹 ファイルサーバー までをカバーする アプリケーション です。 そして、一般的な商用 OS や市販アプリケーションのように、「個人用途には簡単設定の廉価版を、企業向けには高度な設定が可能なプロ版を。」のような製品のくくりがあるわけではなく、Sambaアプリケーションはすべて規模に対応する一種類しかありません。 つまりSambaは、ありとあらゆる利用環境に対応するために最初から非常に多くの設定項目が準備されているだけですから、その大部分はごく平均的な WindowsOS のネットワーク環境であれば デフォルト のまま利用しても大丈夫というわけです。
|
|
|
Sambaのコントロール
<<Previous
|
Next>>
ユーザーアカウントの設定
|
| このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。 |
| ”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。 |