第27章 ファイルのコピーと共有

目次

27.1. シナリオ
27.2. アクセス方法
27.3. 直接接続によるファイルアクセス
27.4. 同一のコンピュータにおける異なる OS 上のファイルへのアクセス
27.5. Linux コンピュータ間のファイルコピー
27.6. SSH を利用した Linux と Windows コンピュータのファイルコピー
27.7. Linux コンピュータ間のファイル共有
27.8. Samba を利用した Linux と Windows のファイル共有
27.9. さらなる情報

概要

複数のオペレーティングシステム (OS) を同時にお使いの環境では、それらの OS 間で ファイルを共有する要件がしばしば発生します。同じマシンでそれぞれ別々の パーティションに異なるシステムが存在する場合もありますし、ネットワークを介して 異なるシステム同士が接続されている場合もあります。ここでは、それらの異なる システム同士でファイル交換を行なう方法と、間違いやすい点をそれぞれ記述しています。

[Warning]下記の手順は個人用/家庭用ネットワーク専用の手順です

下記に示す手順は、ファイアウオールで守られた個人用/家庭用のネットワーク以外 では実施してはなりません。ファイアウオールで保護されていないネットワークや、 企業用のネットワークにおいては、より高度なセキュリティ要件とそれに伴う設定が 必要となりますが、本章では言及していないことをご了承ください。

データの交換を行なうためには、下記のいずれかの作業で実現します:

コピー

一方のシステムから他方のシステムにデータを転送することでデータの交換を行なう 方法です。結果として、両方のシステムに同じデータが存在するようになります。

データの同期とは、データのコピーを特別な方法で行なうことを指します。一方の コンピュータでファイルを変更すると、同期を行なうことで他方のコンピュータにも 自動で変更が反映されるようになります。たとえばお使いのラップトップに修正済みの ファイルが存在し、その修正をデスクトップ側にも反映させたいような場合に該当します。

共有

クライアント/サーバの関係を設定して、お使いのファイルを共有する方法です。 サーバ側からは、クライアント側からアクセスできる形式でファイルを提供します。 ファイルを変更すると、その変更はサーバ内で実施されるため、クライアント側には データが残らなくなります。一般的にファイルサーバとは、クライアントに対して同時に 多数のファイルを提供する仕組みです。

27.1. シナリオ

下記には、ファイル転送を行なう際に考えられるシナリオの一覧を示しています:

同じコンピュータ内での異なる OS の使用

多くのユーザがお使いのコンピュータには、製造元がインストールした オペレーティングシステムが存在していて、それとは異なるパーティション上で Linux が動作しているはずです。詳しくは 27.4項 「同一のコンピュータにおける異なる OS 上のファイルへのアクセス」 をお読みください。

ネットワークで接続されていない異なるコンピュータ

任意のメディア (CD, DVD, USB フラッシュメモリ, 外付けハードディスクなど) にデータを保存し、複製先のマシンに接続 (または挿入) してください。この方法は コストがかからず直感的で、かつ直接的な方法です。ただし、両方のコンピュータに 適切なドライブやポートが必要になってしまうほか、両方のマシンのオペレーティング システムで認識可能なファイルシステムを利用しなければなりません。

また、各メディアのサイズまでのファイルしかいっぺんに転送することができません。 恒久的にファイルをコピーするような要件の場合は、ネットワークによる接続を お考えください。

同じネットワークに接続されている異なるコンピュータ

一方のコンピュータにサーバを設定し、サーバとクライアントを接続してファイルを コピーしてください。この作業を行なうためのプロトコルは多くの種類が存在する ため、要件とお使いの方の知識にあったものを選んでお使いください。

クライアント/サーバの設定作業には知識が必要となるほか、管理の手間も発生 してしまいますが、日々の作業でファイルを交換する必要がある場合や、複数の システムで交換する必要がある場合にはよりよい選択肢となります。特に恒久的な ファイル交換をご希望の場合は、クライアント/サーバの設定を選んでください。 この方法では、ファイル交換時のサイズ制限などはありません。 詳しくは 27.2項 「アクセス方法」 をお読みください。

異なるネットワークに接続されている異なるコンピュータ

このシナリオの場合は、それぞれのネットワークが接続されている必要がありますが、 接続のための作業は本章の範囲外であるため、記述されていません。コンピュータが ネットワークで接続されていないものとして、ファイルを転送してください。

27.2. アクセス方法

下記には、ファイル転送やファイル共有を行なうために利用する方法やプロトコルを 示しています:

FTP

ファイルの交換を異なるユーザと頻繁に行なうような場合は、 FTP (File Transfer Protocol; ファイル転送プロトコル) を利用するのがお勧めです。 FTP サーバの 一方のシステムに設定し、クライアントからそこにアクセスするだけの作業です。 Windows や MacOS, Linux などの多くの OS 向けにグラフィカルな FTP クライアントソフトウエアが存在しています。どのような FTP サーバを利用するのか にもよりますが、一般に読み書きの権限を設定して使用します。 FTP について、 詳しくは 27.5.4項 「FTP を利用したファイルコピー」 をお読みください。

NFS

NFS (Network File System; ネットワークファイルシステム) はクライアント/ サーバ型のシステムです。サーバは 1 つまたはそれ以上のディレクトリをクライアント からインポートできるように公開します。詳しくは 第18章 NFS でのファイル共有 をお読みください。

ファイルの交換を異なるユーザと頻繁に行なうような環境では NFS がお勧めです。 一般に、このプロトコルは Windows よりも Linux でより一般的な方法です。 NFS で公開 (エクスポート) したディレクトリは、お使いの Linux システムに うまく統合することができ、ローカルマシンのフォルダと同じような方法で ディレクトリ構造にアクセスすることができるようになります。ご利用の設定にも よりますが、サーバ上で読み込みまたは書き込み、もしくはその両方を設定して 使用します。通常は個人/一般家庭使用の範囲では読み書きの権限を設定して 使用します。

rsync

それほど大規模に変更がかからないような巨大データについて、それらを定期的に 転送したい場合は、 rsync を使用するのがお勧めです。このプロトコルは Linux および Windows に対応し、一般的には rsync をデータのバックアップ管理として 使用します。詳しくは rsync のマニュアルページか、 もしくは 27.5.2項 「rsync を利用したファイル転送」 をお読みください。

Unison

Unison は rsync の代替プロトコルで、異なるコンピュータ間で定期的な同期を 行なうためのものですが、 rsync とは異なり双方向で同期を行なうことができます。 詳しくは Unison のマニュアルページか、もしくは 27.5.3項 「Unison を利用したファイル転送」 のマニュアルページをお読みください。 なお、 Unison は Linux および Windows に対応しています。

CSync

CSync は Unison の代替手段です。 Unison と同様にディレクトリを双方向に同期 することができます。そのうえモジュール形式で構成されているため、プラグインでの 拡張が可能です。詳しくは http://www.csync.org をお読みください。

SMB

Samba はクライアント/サーバ型のシステムで、 SMB プロトコルを実装した ソフトウエアです。 SMB プロトコルは一般に Windows ネットワークで使用される ものですが、複数のオペレーティングシステムに対応しています。 Samba について 詳しくは、 第19章 Samba をお読みください。

ファイル交換を頻繁に行なう環境で、特に Windows システムを利用する複数の ユーザを相手にして共有する必要がある場合に、 Samba がお勧めです。 Samba は Linux だけの環境ではあまり使用されておらず、代わりに NFS を使用します。 Samba サーバの設定について、詳しくは 27.8項 「Samba を利用した Linux と Windows のファイル共有」 をお読みください。

SSH

SSH (セキュアシェル; Secure Shell) はコンピュータ間で機密を保持した形で 通信を行なうことができます。 SSH の一式には複数のコマンドが含まれていて、 ユーザを認証するのに公開鍵を使用することができます。詳しくは 第13章 SSH: 機密を保護する通信 (↑セキュリティガイド) をお読みください。

ファイルのコピー頻度が低く、信頼できないネットワークを介して通信を行なう 必要がある場合のほか、これを行なうのが 1 人だけである場合に SSH がお勧めです。 グラフィカルなユーザインターフェイスも利用できますが、 SSH は一般的にコマンド ラインユーティリティを利用するものと考えられています。 Linux や Windows に それぞれ対応しています。

27.3. 直接接続によるファイルアクセス

この章では、イーサネットのクロスオーバーケーブルを利用し、 2 台のコンピュータを 接続してファイルを交換するための手順を示しています。

それぞれ下記のものを用意します:

下記のようにして行ないます:

手順27.1 GNOME

  1. Nautilus を起動します。

  2. ファイル+サーバへ接続 を選択します。

  3. サービスの種類 では ssh を選択します。

  4. 相手のコンピュータの IP アドレスと、ポート番号 (既定値は 22) を入力します。

  5. 相手のコンピュータ上で、開きたいフォルダを入力します。

  6. 接続する を押します。

手順27.2 KDE

  1. Dolphin を起動します。

  2. ネットワーク を選択し、 ネットワークフォルダを追加 を押します。 上記が表示されない場合は、 表示+パネル+場所 を選択してください。

  3. ネットワークフォルダのタイプには セキュアシェル (ssh) を 選択します。

  4. それぞれ IP アドレス、ポート (既定値は 22) 、相手のコンピュータにおけるフォルダ 名をそれぞれ入力します。下の方にあるチェックボックスにチェックを入れることで、 この接続に対するアイコンを作成することもできます。 Dolphin では、 ネットワーク タブに表示されます。

  5. ダイアログで 保存して接続 を押すと、パスワードを尋ねられる ので入力を行ないます。

上記の手順を行なうことで、相手側のコンピュータにあるフォルダを開くことができます。

27.4. 同一のコンピュータにおける異なる OS 上のファイルへのアクセス

新しく購入したコンピュータの場合、一般に何らかのオペレーティングシステム (OS) 、 多くは Windows がインストールされています。 Linux を異なるパーティションに インストールした場合、それらのオペレーティングシステムとファイルを交換する ような要件が発生する場合があります。

Windows の既定では、 Linux のパーティションを読み込むことができません。これらの オペレーティングシステム間でファイルを交換したい場合は、一般に 交換用のパーティション を作成して対応します。より直接的な方法で 解決したい場合は、 Windows 側で ext2 ファイルシステムにアクセスできるドライバを 利用する方法があります。詳しくは http://www.fs-driver.org/ (英語) をお読みください。なお、交換用のパーティションとして Windows と Linux の両方から アクセスできるようにするには、下記のいずれかのファイルシステムを利用します:

FAT

この種類のファイルシステムは、 MS-DOS や Windows 95, Windows 98 などで利用 されています。 YaST を利用することで、この種類のファイルシステムを作成する ことができるほか、 Linux から FAT パーティションにアクセスし、読み込みや書き 込みを行なうことができます。 FAT パーティションのサイズ (およびファイル 1 つ あたりの最大サイズ) には制限があり、利用する FAT バージョンによって異なって います。 FAT ファイルシステムについて、詳しくは http://ja.wikipedia.org/wiki/VFAT をお読みください。

NTFS

NTFS ファイルシステムは Windows で使用されているファイル システムです。 openSUSE には NTFS ファイルシステムに対して書き込み を行なうことのできる機能が用意されています。詳しくは http://en.opensuse.org/SDB:NTFS (英語) をお読みください。

openSUSE のインストール時に Windows パーティションが存在すると、 それらは検出され設定されますので、インストールが終われば Windows パーティションが マウントされます。お使いの Windows 側のデータにアクセスする方法は以下のものが あります:

KDE

まずは Alt+F2 を押し、 sysinfo:/ と入力します。新しい ウインドウが開いて、お使いのマシンに関する各種の情報が表示されます。 Disk Information には接続されているハードディスクの パーティション情報が表示されますので、 Filesystem の欄が ntfs または vfat になっているものを選び、 マウスのボタンを押してください。パーティションがマウントされていない場合は、 KDE がマウントを行なって中身を表示します。

コマンドライン

/windows ディレクトリの一覧を表示することで、お使いの Windows ドライブに含まれているコンテンツを表示することができます。たとえば Windows 側での C:\ ドライブが /windows/c ディレクトリになるように割り当てられます。

[Note]Windows パーティションのアクセス権変更

ファイルシステムへのダメージを防ぐため、通常のユーザに対しては読み込みだけを 行なうことができるような形でマウントが行なわれます。 Windows のパーティションに 通常のユーザから書き込みを含む完全なアクセス権を与えるには、これらの Windows パーティションのマウント方法を変更する必要があります。それぞれ vfat については mount コマンドのマニュアルページを、 NTFS については ntfs-3g のマニュアルページをお読みください。

27.5. Linux コンピュータ間のファイルコピー

Linux では、コンピュータ間でファイルをコピーするためのプロトコルが多く用意されて います。どのプロトコルを使用すべきかについては、どの程度の労力をかけるのかと Windows インストールとの互換性が必要かどうかによって決まります。本章では、 Linux コンピュータからファイルをコピーしたり、 Linux コンピュータにファイルを コピーしたりするための各種の手順を示しています。なお、本章ではネットワークを 利用したコピーを行なうため、あらかじめネットワークの環境設定が完了していることを 想定しています。また、全てのシナリオでは名前解決が動作する必要もあります。お使いの ネットワークにネームサービスがない場合、 IP アドレスを直接使用するか、もしくは 全てのホストの /etc/hosts にホスト名と IP アドレスの対応を 記述してください。

下記の例では、それぞれ下記の IP アドレスとホスト名を使用します:

宛先ホスト名

jupiter.example.com

宛先 IP

192.168.2.100

コピー元ホスト名

venus.example.com

コピー元 IP

192.168.2.101

ユーザ

tux

27.5.1. SSH を利用したファイルコピー

SSH 経由でアクセスする両方のコンピュータは、下記の要件を全て満たして いなければなりません:

  1. ホスト名を使用してアクセスする場合は、それぞれのホスト名が両方の コンピュータ内の /etc/hosts ファイルに記載 されていること (詳しくは 13.6.1.6項 「/etc/hosts をお読みください) 。 IP アドレスで SSH アクセスを行なう場合、 上記は特に必要ではありません。

  2. ファイアウオールをお使いの場合は、 SSH のポートを開くこと。これを行なうには、 YaST を起動して セキュリティとユーザ+ファイアウオール を選択します。 その状態から 許可するサービス を選択し、 SSH が一覧に載っているかどうかを確認します。一覧に載って いない場合は、 許可するサービス で SSH を選択して、 追加 を押します。あとは 次へ 完了 と押していき、変更内容を保存して YaST を終了します。

一方のコンピュータから他方のコンピュータにファイルをコピーするには、そのファイル がどこに存在しているのかを知っておく必要があります。たとえば jupiter.example.com というコンピュータにある単一のファイル /srv/foo_file をカレントディレクトリにコピーするには、 下記のような scp コマンドを実行します (ドットはコピー先を 指定しているもので、カレントディレクトリを意味します):

scp tux@jupiter.example.com:/srv/foo_file .

ディレクトリ構造全体をコピーしたい場合は、下記のような scp の再帰モードを利用します:

scp -r tux@jupiter.example.com:/srv/foo_directory .

ネットワーク内で名前解決を行なうことができない場合は、サーバの IP アドレスを 直接指定します:

scp tux@192.168.2.100:/srv/foo_file .

どこにファイルが存在するのかがわからない場合は、 sftp コマンドを利用します。 KDE や GNOME で SFTP を利用したファイルのコピーを行なうのはとても簡単です。 下記のようにして行ないます:

  1. Alt+F2 を押します。

  2. コマンドの欄に下記を記入します (お使いの環境に合わせて変更してください):

    sftp://tux@jupiter.example.com
  3. サーバが提示する鍵情報について確認が行なわれたあと、 jupiter.example.com 上のユーザ tux に対して、パスワードを入力します。

  4. 必要なファイルやディレクトリを、お使いのデスクトップなどのローカルディレクトリ からドラッグ&ドロップで配置します。

KDE では sftp が利用できない場合、 fish と呼ばれるもう 1 つのプロトコルを利用することができます。このプロトコルは sftp とよく似た使い方になっていて、単に sftpfish に置き換えるだけで 動作するようになっています:

fish://tux@jupiter.example.com

27.5.2. rsync を利用したファイル転送

rsync はデータをコピーしたりアーカイブを作成したりするのに便利なソフトウエア であるほか、デーモンとして起動することでネットワーク側にディレクトリを提供する ことができます (詳しくは 手順27.3「rsync 同期に対する高度な設定」) 。

異なるコンピュータ間で rsync を利用したファイルやディレクトリの同期を行なう 前に、下記の要件が満たされていることをご確認ください:

  1. rsync パッケージがインストール されていること。

  2. 両方のシステムに同じユーザが存在すること。

  3. サーバ側に十分なディスク領域が存在すること。

  4. rsync の能力を完全に引き出したい場合は、サーバ側として利用するシステムに rsyncd がインストールされていること。

27.5.2.1. rsync 基本モード

rsync を基本モードで利用する場合には、特別な設定は不要です。 rsync では 他のシステムに存在するディレクトリについて、完全な複製を作成します。 scp などの通常のコピーツールと大きく異なるようなこともありません。たとえば 下記のコマンドでは、 jupiter と呼ばれるバックアップ サーバ上にあるユーザ tux のホームディレクトリについて、バックアップを採取します:

rsync -Hbaz -e ssh /home/tux/ tux@jupiter:backup

バックアップから復元を行なう場合は、下記のコマンドを実行します (-b オプション無しで実行します):

rsync -Haz -e ssh tux@jupiter:backup /home/tux/

27.5.2.2. rsync デーモンモード

rsync の全ての機能を利用できるようにするため、一方のシステムで rsyncd デーモンを 起動します。このモードでは、アカウント無しでアクセスすることのできる同期ポイント (モジュール) を作成することができます。 rsync デーモンを使用するには、下記のように して行ないます:

手順27.3 rsync 同期に対する高度な設定

  1. root でログインを行ない、 rsync パッケージをインストールします。

  2. 同期ポイントを /etc/rsyncd.conf ファイルに設定します。 大括弧内に同期ポイントの名前を入力し、 path キーワード に続いて実際のパスを入力します。たとえば以下のようになります:

    						
    [FTP]
     path = /srv/ftp
     comment = An Example
  3. root の状態から rcrsyncd start コマンドを実行し、 rsyncd デーモンを起動します。システム起動時に自動的に rsync サービスを起動する ように設定したい場合は、 insserv rsyncd コマンドを実行します。

  4. /srv/ftp ディレクトリ内にある全てのファイルを一覧表示 するには、下記のように実行します (コロンが二重に付けられていることに注意):

    rsync -avz jupiter::FTP
  5. 宛先のディレクトリ (この場合はドットを指定していて、カレントディレクトリに コピーする意味です) を指定すると、実際の転送を行なうことができます:

    rsync -avz jupiter::FTP .

既定では rsync を利用して同期を行なう限り、ファイルが削除されることはありません。 ファイルの削除を行なうには、 --delete オプションを指定して ください。なお、 --delete オプションで新しいファイルが 削除されないようにしたい場合は、代わりに --update オプションを 指定してください。これにより発生する矛盾は、それぞれ手作業で解決する必要があります。

27.5.3. Unison を利用したファイル転送

異なるコンピュータ間で Unison を利用してファイルやディレクトリの同期を行なう前に、 下記の要件が満たされていることをご確認ください:

  1. unison パッケージがインストールされていること。

  2. ローカルとリモートのコンピュータに、それぞれ十分なディスク容量があること。

  3. Unison の能力を完全に引き出したい場合は、リモートのコンピュータにも Unison がインストールされていて、かつ起動していること。

ヘルプを必要とする場合は、 Unison に -doc topics オプション を付けて起動し、利用可能なオプション一覧を表示させてください。

恒久的に設定を保存する場合、 Unison は同期すべきディレクトリ (ルート) や無視する ファイルタイプなどのような各種設定を保存するための、 プロファイル を作成することができます。プロファイルはテキストファイル形式で保存され、 ~/.unison ディレクトリ以下に *.prf という拡張子で保存します。

27.5.3.1. GUI の使用

Unison の GUI を利用して異なるディレクトリを同期するには、下記のようにして 行ないます:

  1. Alt+F2 を押し、入力するコマンドに unison と入力して Unison を起動します。

  2. Unison を始めた起動した場合、何もオプションを指定しなければ、複製元の ディレクトリを尋ねられます。同期対象の複製もとディレクトリを入力して、 OK を押します。

  3. 次に宛先のディレクトリを指定します。これはローカルでもリモートでもかまいません。 リモートのディレクトリと同期を行ないたい場合は、方法 (SSH, RSH, ソケット) を選択し、ホスト名とユーザ名 (任意指定) も入力します。

  4. 以前にこれら 2 つのディレクトリについて同期を行なったことがない場合は、 Unison がこれからこれらのディレクトリの比較を行なう旨の警告メッセージが 表示されます。 OK を押して警告メッセージを閉じると、 Unison は両方のディレクトリの情報収集を行ないます。これが完了するまで 待機すると、メインウインドウに両方のディレクトリの差が表示されるように なります。

    左側の列には選択した比較元ディレクトリの一覧が表示され、右側には比較 先のディレクトリが表示されます。これらのディレクトリに差異があると、 Action 列に作業提案が表示されます。緑色の矢印は、 比較もとまたは比較先のディレクトリでファイルが更新/追加/削除されたことを 示しています。矢印の向きが同期方向で、同期実行時にどちらからコピーを 行なうのかを指定します。クエスチョンマークは矛盾を示していて、両方の ファイルが更新されていることにより、どちらを最新のものとして扱えば よいのかがわからないことを示しています。

    図27.1 ファイル同期の提案

    ファイル同期の提案

  5. それぞれのファイルに対して Unison が表示した提案を変更する (たとえば同期 方向を変更するなど) には、ファイルを選択して Right to Left (右から左に) または Left to Right (左から右に) を 押します。 Skip を押すとファイルを同期対象から外します。 それぞれ Action の列の表示が選択にあわせて変化します。

  6. 同期作業を開始するには、 Go を押します。

次回以降に Unison を起動した場合は、既存のプロファイルを示すダイアログ ボックスが表示され、同期すべきディレクトリの対を指定します。 プロファイルの一覧から選択を行なうか、もしくは新しいプロファイルを作成 (ディレクトリの対を新規に追加) し、設定した同期作業を行なうことになります。

27.5.3.2. コマンドラインの使用

Unison はコマンドラインを利用して操作することもできます。ローカルディレクトリと リモートのコンピュータとの間で同期を行なうには、下記のようにして行ないます:

  1. シェルを開き、下記のコマンドを入力します:

    unison -ui text ディレクトリ
             ssh://tux@jupiter.example.com//パス

    それぞれディレクトリとパスの項目には必要な値を入力してください。

  2. Unison はファイルやディレクトリに対して何を行なうのかを尋ねてきます。 たとえば:

    local                  jupiter
               <----  new file   dir [f]
  3. Unison の推奨どおりに作業を行なうには、 F を押します。 それ以外のコマンドについては ? を入力してください。

  4. 更新内容を適用するには、 y を押します。

27.5.4. FTP を利用したファイルコピー

FTP サーバを設定する前に、下記の要件が満たされていることを ご確認ください:

  1. vsftpd パッケージが インストールされていること。

  2. FTP サーバに対して root アクセスができること。

  3. お使いのコンピュータに十分なディスク容量があること。

[Warning]家庭内で使用するネットワーク限定の設定です

この設定は、家庭内で使用するネットワークに適した設定です。 ファイアウオールで保護されていないネットワークに配置したり、不特定多数の アクセスを許す設定にしたりしてはなりません。

FTP サーバを設定するには、下記の手順で行ないます:

  1. FTP サーバを準備します:

    1. シェルを開いて root でログインし、 /etc/vsftpd.conf ファイルのバックアップ コピーを作成します:

      cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
    2. 匿名 FTP 用のアクセスポイントを作成します:

      mkdir ~ftp/incoming
      chown -R ftp:ftp ~ftp/incoming
  2. 希望するシナリオに沿って、設定ファイルを書き換えます (詳しい設定オプションについては、 vsftpd.conf の マニュアルページをお読みください):

    匿名アクセスによる読み込み/書き込みの許可
    #
    listen=YES
    									
    # FTP サーバに対する匿名アクセスの許可
    anonymous_enable=YES
    									
    #
    local_enable=YES
    # 書き込みアクセスの許可
    write_enable=YES
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    dirmessage_enable=YES
    # ログファイルの書き込み
    xferlog_enable=YES
    connect_from_port_20=YES
    chown_uploads=YES
    chown_username=ftp
    ftpd_banner=Welcome to FTP service.
    anon_root=/srv/ftp
    FTP ユーザに対してアクセスの限定を指定
    chroot_local_users=YES
  3. FTP サーバを再起動します:

    rcvsftp start

クライアント側では、お使いのブラウザや FTP クライアントから ftp://ホスト と入力します。 ホスト はお使いの環境に合わせて、サーバのホスト名 または IP アドレスに置き換えてください。なお、 FTP サーバのコンテンツに アクセスするのに便利なグラフィカルユーザインターフェイスも多数存在しています。 YaST パッケージマネージャから "FTP" と入力すると、それらを一覧表示 することができます。

27.6. SSH を利用した Linux と Windows コンピュータのファイルコピー

SSH を利用して Linux と Windows の間でファイルを転送するには、下記のいずれか のアプリケーションを利用します:

PuTTY

PuTTY は SSH デーモンと通信を行なうためのコマンドラインツール集です。 http://www.chiark.greenend.org.uk/~sgtatham/putty.html からダウンロードを行なうことができます。

WinSCP

WinSCP は PuTTY にとてもよく似たアプリケーションですが、グラフィカルな ユーザインターフェイスを持つという点が異なります。エクスプローラ型と Norton Commander 型のいずれかを選択することができます。 http://winscp.net からダウンロードを行なうことができます。

PuTTY を利用して Windows から Linux にファイルをコピーするには、下記のように して行ないます (Windows マシン側での作業です):

  1. PSCP を起動します。

  2. SSH サーバのホスト名を入力します。

  3. SSH サーバに対するログインとパスワードを入力します。

WinSCP を利用して Windows から Linux に接続するには、下記のようにして 行ないます (Windows マシン側の作業です):

  1. WinSCP を起動します。

  2. SSH サーバのホスト名と、ユーザ名を入力します。

  3. Login を押し、表示される警告を了解します。

  4. WinSCP のウインドウを利用して、ファイルやディレクトリをドラッグ&ドロップ で転送します。

[Note]SSH フィンガープリント

PuTTY や WinSCP では、初回のログイン時に SSH のフィンガープリントを受け入れ なければなりません。

27.7. Linux コンピュータ間のファイル共有

本章では、データを共有するための様々な方法を紹介しています。恒久的なデータ 共有を希望する場合は、これらの方法のうちのいずれかを利用するのがよいでしょう。

27.7.1. NFS を利用したファイル転送

サーバを設定するには、下記の手順で行ないます:

  1. システムの準備を行ないます:

    1. シェルを開き、 root でログインしてから全ユーザに対して書き込み許可を 設定します:

      mkdir /srv/nfs
      chgrp users /srv/nfs
      chmod g+w /srv/nfs
    2. 次に、クライアント側で利用しているユーザ名とユーザ ID が、サーバ上でも 登録済みであることを確認します。ユーザアカウントの作成や管理については、 第10章 YaST を利用したユーザ管理 (↑スタートアップ) に詳細な手順があります。

  2. NFS サーバを準備します:

    1. root で YaST を起動します。

    2. ネットワークサービス+NFS サーバ を選択します (このモジュールは既定では インストールされません。 YaST 内に表示されない場合は、 yast2-nfs-server パッケージをインストールして ください) 。

    3. まずは 開始 を選択し、 NFS サービスを有効にします。

    4. ファイアウオールをお使いの場合は、 ファイアウオールでポートを 開く を選択してファイアウオールのポートを開きます。

  3. ディレクトリを公開します:

    1. ディレクトリの追加 を押し、 /srv/nfs を選択します。

    2. オプション設定には下記のように指定します:

      rw,root_squash,async
    3. 複数のディレクトリを公開する場合は、上記の手順を繰り返します。

  4. 最後に設定を保存して終了します。これで NFS サーバを利用することが できるようになります。

NFS サーバを手作業で起動するには、 root から rcnfsserver start と入力します。サーバを停止するには、 rcnfsserver stop と入力します。既定では、 YaST は システム起動時にこのサービスの起動を管理します。

クライアントの設定を行なうには、下記の手順で行ないます:

  1. NFS クライアントを準備します:

    1. root で YaST を起動します。

    2. ネットワークサービス+NFS クライアント を選択します。

    3. ファイアウオールをお使いの場合は、 ファイアウオールでポートを 開く を選択してファイアウオールのポートを開きます。

  2. リモート側のファイルシステムを取り込みます:

    1. 追加 を押します。

    2. NFS サーバのホスト名または IP アドレスを入力するか、もしくは 選択 を押してネットワーク上に存在する NFS サーバの 一覧を表示させ、そこから選択します。

    3. リモート側のファイルシステムのディレクトリ名を入力するか、もしくは 選択 を押して自動選択します。

    4. 適切なマウント先を指定します。たとえば /mnt のように指定します。なお、この手順を繰り返す 場合は、それぞれ異なるマウントポイント (もちろん /mnt 以外のマウントポイント) を指定します。

    5. 複数のディレクトリを取り込む場合は、上記の手順を繰り返します。

  3. 最後に設定を保存して終了します。これで NFS クライアントの設定は完了です。

なお、 NFS クライアントを手作業で起動するには、 rcnfs start と入力します。

[Note]一貫したユーザ名の使用

ごく少数のユーザでネットワーク環境をお使いの場合は、それぞれのマシンに対して 同じユーザを設定してください。大規模なネットワークなどで多数のユーザを登録する 必要があるような場合は、 NIS や LDAP を利用してユーザデータを管理することを お勧めします。詳しくは 第3章 NIS の使用 (↑セキュリティガイド) と 第4章 ディレクトリサービス LDAP (↑セキュリティガイド) をお読みください。

27.7.2. Samba を利用したファイル共有

この章では、 Samba サーバ上にあるファイルに対してアクセスを行なうための 各種の方法を説明しています。なお KDE や GNOME には、 Samba の共有にアクセス するためのグラフィカルなツールが用意されているほか、 Samba サーバにアクセス するためのコマンドラインツールも存在しています。

27.7.2.1. KDE と GNOME を利用した共有へのアクセス

KDE と GNOME のデスクトップでは、ファイルブラウザを利用して Samba の共有 にアクセスを行ないます。下記の手順で行なってください:

  1. Alt+F2 を押し、 smb://jupiter.example.com/共有名 のように入力します。

    URL の書式は smb://ホスト/共有名 で、それぞれ ホスト には Samba サーバの ホスト名 (jupiter.example.com) または IP アドレスを、 共有名 には 共有名を指定します。詳しくは ステップ 3.b をお読みください。

  2. ユーザ名とパスワードを入力してログインします。パスワードは ステップ 4 の手順で設定するか、 パスワードを必要としない環境であれば、何も入力せずに Enter を押します。

  3. 開いたウインドウを利用して、ドラッグ&ドロップでファイルやディレクトリを 操作します。

なお、お使いのネットワーク環境のワークグループ名がわからない場合は、 smb:/ と入力すると一覧を表示することができます。 Smb4K ツール (smb4k パッケージ) では、ネットワーク上に存在する全ワークグループを表示することができるほか、 必要に応じてマウントを行なうことができます。

27.7.2.2. コマンドラインからの共有へのアクセス

コマンドラインを利用してアクセスしたい場合は、 smbclient コマンドを利用します。 Samba サーバにログインするには、下記のコマンドを実行して ください:

smbclient //jupiter/share -U tux

既に tux ユーザになっている場合、 -U は不要です。正常にログインが 完了すると、それぞれ ls (ディレクトリ一覧の表示), mkdir (ディレクトリの作成), get (ファイルのダウンロード), put (ファイルのアップロード) などのコマンドが利用できるようになります。利用可能な全てのコマンドを表示する には、 help と入力してください。詳しくは smbclient のマニュアルページをお読みください。

27.8. Samba を利用した Linux と Windows のファイル共有

Samba は Windows と Linux マシンの間でファイルを転送する際、第一に選択 すべきものです。 Samba を利用するにあたっては、下記のような使用形態が 考えられます:

SMB スキームを利用した Linux から Windows へのファイル転送

Linux サーバを設定する必要が無いため、もっとも簡単な方法です。 smb:/ というスキームを利用してアクセスを行ないます。 詳しくは 27.7.2.1項 「KDE と GNOME を利用した共有へのアクセス」 をお読みください。 なお、両方のシステムでワークグループの設定が同じに設定されていて、 ディレクトリを共有していることをご確認ください。

サーバを利用した Windows から Linux へのファイル転送

お使いの Linux コンピュータ側で Samba サーバの設定を行ないます。詳しくは 手順27.4「Samba サーバの設定」 をお読みください。

[Tip]お使いの Windows システムにおけるレジストリ設定の適用

Windows のバージョン (95, 98) によっては、異なる認証方法を有効にするため、 レジストリを少しだけ変更する必要があります。これを簡単に行なうには、 samba-doc パッケージを インストールして /usr/share/doc/packages/samba/registry 内にあるファイルを Windows ドライブにコピーしてください。あとは Windows 側でそのファイルをダブルクリックすると、変更を適用することができます。

手順27.4 Samba サーバの設定

Samba サーバを設定するには、下記の手順で行ないます:

  1. Samba サーバを準備します:

    1. root で YaST を起動します。

    2. samba パッケージをインストールします。

    3. ディレクトリを作成します (以降では /srv/share ディレクトリを作成するものとします) 。

  2. サーバ設定を作成します:

    1. ネットワークサービス+Samba サーバ を選択します。

    2. 表示されたワークグループ名からいずれかを選択するか、もしくは 新しいワークグループ名を入力します (以降では Penguin ワークグループを 選択したものとします) 。

    3. プライマリドメインコントローラ (PDC) を選択します。

    4. お使いのコンピュータの起動時、毎回 Samba サーバを自動で起動したい場合は、 起動時の動作 を選択します。それ以外の場合は 手動 を選択します。

    5. ファイアウオールをお使いの場合は、 ファイアウオールでポートを 開く を選択してファイアウオールのポートを開きます。

  3. Windows 共有を作成します:

    1. 共有 タブに移動し、 追加 を押します。

    2. 共有名と説明を入力します。 共有名 には、クライアント からアクセスする際の名前を入力します。 共有の説明 には、この共有の目的を記入します。

    3. パスを選択します (たとえば /src/share を選択します) 。

    4. OK を押して先に進みます。

    5. ユーザにディレクトリの共有を許可する を選択します。

  4. このサービスの利用を許可する全てのユーザに対して、下記のようにしてパスワード を設定します:

    smbpasswd -a tux

    設定を簡単にするには、 Enter だけを 押してパスワードを何も設定しないのがよいでしょう。なお、お使いの Windows と Linux ではそれぞれアカウントの管理体系が異なるため、同じユーザ名を持つ ユーザを設定するようにしてください。

  5. Samba サーバを起動します:

    rcnmb start
    rcsmb start

正しく設定を行なうことができているかどうかを確認するには、下記のように入力します:

smbclient -L localhost

Enter を押すと、下記のような表示が 現われるはずです:

Anonymous login successful
Domain=[PENGUIN] OS=[Unix] Server=[Samba 3.0.22-11-SUSE-CODE10]
        
    Sharename       Type      Comment
    ---------       ----      -------
    share           Disk      Shared directory
    netlogon        Disk      Network Logon Service
    IPC$            IPC       IPC Service (Samba 3.0.22-11-SUSE-CODE10)
    ADMIN$          IPC       IPC Service (Samba 3.0.22-11-SUSE-CODE10)
Anonymous login successful
Domain=[PENGUIN] OS=[Unix] Server=[Samba 3.0.22-11-SUSE-CODE10]
        
    Server               Comment
    ---------            -------
    SUSE-DESKTOP         Samba 3.0.22-11-SUSE-CODE10
        
    Workgroup            Master
    ---------            -------
    TUX-NET              jupiter

27.9. さらなる情報


openSUSE リファレンス 13.1