Articles

Sambaを使用してLinuxとWindowsの間でファイルを共有する

ホームネットワークには、1階にいくつかのWindowsマシン、2階の寝室にMac、ナイトスタンドにPocketPC、地下にLinuxボックスまたは2台があり、すべて汎用ルータでネットワーク接続されている場合があります。 このよく知られた家族の組み立てのすべての装置、また更にたくさんのユーザーとのシナリオのために、Sambaの続きはファイルおよび印刷物の共有のための理想的な解決である。

いくつかのクロスプラットフォームのファイルと印刷共有ソリューションが存在しますが、SambaとSMB/CIFSプロトコルは、ホームネットワーク環境で実装するのが最も簡単な場合があります。 WindowsマシンとMacには、そのままSambaで動作する機能が付属しており、Linuxマシン用の単一のSambaパッケージのみをインストールする必要があります。 GNOMEとKDEは、それぞれデフォルトのファイルマネージャであるNautilusとKonquerorに組み込まれたSambaクライアント機能を提供しています。

LinuxおよびWindowsマシンを使用した一般的なホームネットワークでのファイルおよび印刷共有のためのSambaの構成と使用に焦点を当てます。 いくつかのSamba設定Guiから選択できますが、昔ながらのルートをたどり、テキストエディタをsmbに向けることにします。コンフ… 設定ファイルは一般的に/etc/samba/smbにあります。confまたは/usr/local/samba/lib/smb。コンフ… これらを編集するにはrootであるか、sudoを使用する必要があることに注意してください。

SambaはほぼすべてのUnixライクなシステム上で実行され、ほぼすべてのLinuxディストリビューションのリポジトリにあります。 まず、配布のパッケージマネージャーを使用してインストールされていることを確認します。

Sambaの設定

Sambaは非常に成熟した複雑なパッケージであるため、設定ファイルは長く複雑になる可能性があります。 ディストリビューションが合理的に健全なデフォルト設定を提供していることを信頼し、smbの数行だけを変更することに焦点を当てる必要があります。彼らはホームネットワークの目的のために適切であることを確認するためにconf。 行の詳細を知りたい場合は、man smb.confを参照してください。

設定ファイル内のセミコロン(;)またはハッシュマーク(#)の前にある行はコメントであり、アクティブな設定として認識されないことに注意してください。 行を有効にするには、セミコロンまたはハッシュを削除します。 次回smbをロードするときに構成の背後にあるロジックを覚えておくために、これらの文字のいずれかの前に独自のコメントを追加することをお勧コンフ…

最初に考慮すべきオプションはSambaのセキュリティレベルです。 この行は、smbのセクションの下に表示されます。ここでは、Samba全体のすべての設定が行われます。 この記事の後半で説明する他のセクションは、特定のSambaサービス(共有リソース)に関連しています。 セキュリティレベルは、ほとんどの場合、値に設定されますuserそして次のようになります。

security = user

ホームネットワークの場合、これをshareuser設定では、そのリソースを参照する前にSambaサーバーにログインする必要があることです。 これは信頼されていないネットワーク上の賢明な予防策ですが、プリンタなど、あなたの世帯全体がアクセスしたいリソースを使用するときに不便にな shareを有効にすると、ユーザーが特定のリソースにアクセスするためにパスワードで自分自身を認証するように要求することができます。

まだセクションにいる間、プリンタに移りましょう。 Common UNIX Printing System(CUPS)(ほとんどのディストリビューションのデフォルト)を使用している場合、Sambaにプリンタを認識させるために必要なことは、それに応じて次の行を設定することだけです:


printing = cups
printcap name = cups

これらのプリンタ(およびおそらく他のリソース)をユーザー認証なしでアクセスできるように設定することができるため、既知の信頼できるホスト、すなわち家庭内のコンピュータのみにアクセスを制限することが非常に重要です。 ホームネットワーク内の各コンピュータに特定のIPアドレスを割り当てる手順については、ルータのマニュア 信頼できるホストのリストを取得したら、セクションの次の行に入力します:


hosts allow = computer1 computer2 computerN
hosts deny = ALL

ALLhosts allow行にリストされているすべてのホストにはアクセ ルーターによって各コンピューターに割り当てられるIPアドレスの形式は異なります。 たとえば、ローカルネットワーク上のマシンに192.168.0.xの形式のアドレスが指定されている場合、次の行はSambaアクセスをローカルホストに制限します:IPアドレスの最後の桁は、hosts allow行で省略されていることに注意してください。

hosts allow = 192.168.0.
hosts deny = ALL

hosts allow行。 これは、その範囲内の任意のIPアドレスが許可されることを指定します。 外部アクセスに対する追加のセキュリティについては、ファイアウォールを使用してSambaポートをブロックすることを検討してください。

共有ディレクトリとプリンタ

セクションで始まります。 デフォルトでは、ユーザがSambaサーバを実行しているマシン上のホームディレクトリにアクセスできるように、このセクションが設定されている場合があ

security = shareが設定されている場合、この機能は期待どおりに動作せず、ユーザーにログインせずにホームディレクトリが表示されることがあります。 ホームネットワーク環境にある可能性が高いSambaサーバーを実行しているマシン上にホームディレクトリを持つ唯一の人である場合は、セクションを削除またはコメントアウトするか(ハッシュマークまたはセミコロンを使用して)、後で有用なディレクトリを共有リソースとして個別に追加することをお勧めします。

これで、特定のディレクトリの共有を開始できます。 これを、ユーザーの認証が不要な公開共有フォルダーのテンプレートとして使用します:p>


path = /location/of/directory
guest ok = yes
browseable = yes
read only = no

Share Nameguest ok = yesbrowseable = yesbrowseable = noread only = yesを設定して、ユーザーがディレクトリをリモートで変更することを制限することができます。

ユーザーがアクセスするためにパスワードを入力する必要があるプライベート共有のテンプレートとして使用します。


path = /location/of/directory
valid users = user
read only = yes
browseable = no

ここで、userは、共有へのアクセス権を持つユーザーのSambaサーバーを実行しているマシン上のユーザー名です。 これらの2つのテンプレートを使用して、ユーザーがサーバーマシンからアクセスする可能性のあるすべてのファイルの共有を追加します。これで、サーバーは完全に構成されている必要があります。

あなたの配布によって提供されるデフォルトに追加したもので、あなたの完了したsmb。confは次のようになります:

security = shareworkgroup = HOMEserver string = %h serverlog file = /var/log/samba/log.%mmax log size = 1000dns proxy = Nohosts allow = 192.168.0.hosts deny = ALLprinting = cupsprintcap name = cupspath = /var/spool/sambaprintable = Yesbrowseable = Nopath = /var/lib/samba/printerspath = /Public/Filesguest ok = yesread only = nobrowseable = yespath = /private/files/valid users = meread only = yesbrowseable = no

サーバーマシンを離れる前に、いくつかの簡単な雑用があります。 まず、Sambaサーバーにアクセスするユーザーを次のコマンドに入力します。

smbpasswd -a user

各ユーザーのSambaパスワードを入力するよう求められます。 必要なユーザーとしてログインし、smbpasswdを実行すると、いつでもパスワードを変更できます。 次に、次のコマンドを使用してSambaサーバーを再起動します:

/etc/init.d/samba restart

WindowsクライアントからSamba共有にアクセスする

Windowsマシンに移動して、新しい設定を試してみてくださ 新しいサーバーは、Windowsのマイネットワークの場所に表示されます(既定では、デスクトップ上のショートカットを探します)。 または、スタートメニューを開き、”Run…”をクリックし、次のように入力します。

\server

serverserverをSambaサーバーを実行しているマシンの名前ま サーバーから参照可能な共有を持つWindowsエクスプローラーウィンドウが開きます。 参照できない共有を作成した場合は、次のリンクを使用してアクセスします。

\servershare name

共有ディレクトリをよりアクセスしやすく Windows XPでは、エクスプローラで共有を右クリックし、”ネットワークドライブをマップ…”を選択すると、Z:などのドライブ文字を割り当てることができるので、再起動後でもマイコンピュータで簡単に見つけることができます。 セキュリティレベルがshareに設定されているWindows XPでのテストでは、プリンタは自動的に検出され、Windowsマシンから使用できます。 userレベルのセキュリティが設定されている場合、印刷を試みる前にWindowsエクスプローラウィンドウでサーバーにログインする必要がありました。 他のバージョンのWindowsでの使用経験は異なる場合があります。

他のLinuxマシンからSMB/CIFS共有にアクセスする

SambaとWindows共有は、GnomeとKDEの両方のデフォルトのファイルマネージャから簡単にアクセスできます。 まず、GnomeのNautilusから共有にアクセスすることから始めます。 Nautilusを開き、ファイルに移動します->サーバーに接続します。リストボックスから「Windows共有」を選択し、Sambaサーバーのサーバー名またはIPアドレスを入力します。 また、”ネットワークの参照”ボタンをクリックし、”Windowsネットワーク”ディレクトリを見て、サーバーを手動で検索することもできます。 “接続”をクリックすると、Sambaサーバーの閲覧可能なリソースが表示されたNautilusウィンドウが開きます。

KonquerorでSamba共有にアクセスするのも同じように簡単です。 サーバーを参照するには、Konquerorにurl remote:/を入力します。 直接アクセスの場合は、サーバーのURLを次の形式で直接入力します:p>

smb://user@server/share

ユーザーと共有はオプションの基準であることに注意してください。

Sambaを介したプリンタの設定は、これらのデスクトップ環境でも同様に簡単です。 Gnomeでは、System->>>プリンタの追加を選択します。 パスワードの入力を求められます。 プリンタの追加ウィザードで、リストボックスから”ネットワークプリンタ”を選択し、”WindowsプリンタSMB”を選択します。 Sambaサーバーでユーザー名とパスワードの入力を求められます。 Sambaサーバー上のホストとプリンタを識別し、次の画面に移動します。 プリンターモデルを選択し、”適用”をクリックします。

KDEで同じことを行うには、コマンドkcontrol>プリンタ/クラスを追加…結果のダイアログで、次へをクリックし、”SMB共有プリンタ(Windows)”を選択します。”次へをもう一度クリックし、userレベルのセキュリティを使用している場合は、”通常のアカウント”のユーザー名とパスワードを設定します。 “次へ”をクリックし、”スキャン”をクリックしてSambaサーバーを参照します。

または、サーバーの詳細を手動で入力します。 次の画面で、リストからお使いのプリンタモデルを選択します。 次のいくつかの画面をクリックして、ネットワーク化されたプリンタにタイトルを与えて終了します。

トラブルシューティング

この機能のいずれかを動作させる問題が発生した場合は、Sambaトラブルシューティングチェックリストに目を Samba設定ファイルの明白なエラーをテストするためにその文書から借用した簡単なトリックは、次のコマンドを実行することです。

testparm smb.conf

もう一度、あなたのsmbの正確なパス。confは配布によって異なる場合があります。

ここでは、ホームネットワークに合わせた基本的なSamba機能のみを検討しました。 より極端な使用シナリオについては、Samba by exampleガイドで詳しく説明しています。