サンプル・シェル・スクリプトの ftpandir.scp は、必要な構造とオプションの構造を含む 1 つの無名ディレクトリー構造を作成します。 あるいは、スーパーユーザーは無名ディレクトリー構造を作成できます。
このセクションには、スーパーユーザーが無名 HFS ディレクトリー構造を作成するために従うことになるステップの概要が示されています。
以下のステップでは、無名ユーザーがログインする時に使用される RACF ユーザー ID は GUEST と呼ばれ、そのユーザーの RACF 内の OMVS セグメントの中の HOME ディレクトリーは /u/guest であり、また、FTP.DATA には ANONYMOUS GUEST のようなステートメントが含まれているとします。
- 実行可能 ls および sh が入っている無名 root に bin サブディレクトリーを作成します。これは必須ディレクトリーです。ls は標準ディレクトリーからコピーできます。sh は標準の MVS 検索順序のパーツであるので、スティッキー・ビットを持つ空のファイルを作成することだけが必要です。
以下の例は、ユーザー GUEST のホーム・ディレクトリーに ls および sh をどのように作成するかを示しています。
===> cd /u/guest
===> mkdir bin
===> chmod 711 bin
===> cd bin
===> cp /bin/ls ls
===> chmod 711 ls
===> touch sh
===> chmod 711 sh
===> chmod +t sh
ls -al コマンドから、以下のような結果が得られるはずです。所有者およびグループ属性は、システムによって異なる場合があります。
# ls -al
total 280
drwx--x--x 2 USER22 0 8192 Sep 21 17:39 .
drwx--x--x 7 USER22 0 8192 Nov 1 14:44 ..
-rwx--x--x 1 USER22 0 126976 Sep 21 17:39 ls
-rwx--x--t 1 USER22 0 0 Sep 21 17:39 sh
- 実行可能ファイル ftpdns を入れる無名 root の usr/sbin サブディレクトリーを作成します。これは必須サブディレクトリーです。ファイル ftpdns はスティッキー・ビットをオンにして空とすることができます。以下の例は、無名ユーザー GUEST の場合です。
===> cd /u/guest
===> mkdir usr
===> chmod 711 usr
===> cd usr
===> mkdir sbin
===> chmod 711 sbin
===> cd sbin
===> touch ftpdns
===> chmod 711 ftpdns
===> chmod +t ftpdns
サブディレクトリー bin および usr/sbin とその内容を正しく構成しなかった場合は、FTP サーバーは無名ログインを受け入れることができずに、メッセージ EZYFT731 が表示されます。
- 無名 root の中に dev サブディレクトリーを作成します。これは必須サブディレクトリーです。このディレクトリーの中にヌル・ファイルが作成され、syslog オープンされている間は使用されます。
以下の例は、無名ユーザー GUEST の場合です。
===> cd /u/guest
===> mkdir dev
===> chmod 711 usr
dev サブディレクトリーがないと、syslog は正しくオープンされない可能性があります。
EZA2830I などのメッセージは正しくログアウトされません。
- 共通ディレクトリー構造をセットアップします。これは必須ディレクトリーです。これは、無名 FTP ユーザーによってダウンロードの可能なファイルが入れられるディレクトリー構造です。これを pub という名前にする必要はなく、選択した任意の名前にできます。無名 FTP サイトに対する一般規則では、これを pub と呼ぶことにしています。
===> cd /u/guest
===> mkdir pub
===> cd pub
アクセスを許可するファイルを構成したい場合は、このディレクトリーの下に複数のサブディレクトリーを作成することができます。単純にするために、単一レベルのディレクトリーである pub ディレクトリーとします。このディレクトリーに、無名ユーザーにダウンロードを許可したいファイルをコピーします。
===> cp /x/y/z/prodinfo1.txt prodinfo1.txt
===> cp /x/y/z/prodinfo2.txt prodinfo2.txt
===> cd ..
/u/guest ディレクトリーで実行される時に、次のシェル・コマンドを使用することによって、許可ビットが必ず正しく設定されるようにします。これにより、pub ディレクトリーおよびサブディレクトリーのすべてのファイルの許可ビットが 755 に設定されます。
===> chmod -R 755 pub
システムに受信または抽出ディレクトリーが必要でない場合は、システムは無名 FTP 用に構成されます。pub ディレクトリーの ls -al コマンドから、以下のような結果が得られるはずです。
drwxr-xr-x 3 IBMUSER SYS1 8192 May 13 21:15 .
drwxr-xr-x 6 IBMUSER SYS1 8192 May 20 14:51 ..
-rwxr-xr-x 1 IBMUSER SYS1 12 May 11 12:41 prodinfo1.txt
-rwxr-xr-x 1 IBMUSER SYS1 12 May 11 12:41 prodinfo2.txt
- 受信ディレクトリーをセットアップします (オプション)。
無名ユーザーがファイルを FTP サーバーをアップロードできるようにしたい場合は、いくつかの追加のセットアップが必要です。この目的は、無名ユーザーにファイルのアップロードを許可することにありますが、別の無名ユーザーのダウンロードを許可したり、まして、管理ユーザーがファイルの内容を受け入れ可能なものと確認するまでは、ファイルの存在を気付かせることではありません。倫理的に疑問のある内容のファイルの場合は、FTP サーバー・サイトをストア・アンド・フォワード・サイトにする必要はありません。
/u/guest ディレクトリーに位置決めして、スーパーユーザーが次のシェル・コマンドを出します。
===> cd /u/guest
===> mkdir incoming
===> chmod 733 incoming
これを incoming という名前にする必要はなく、選択した任意の名前にできます。無名 FTP サイトに対する一般規則では、これを incoming と呼ぶことにしています。733 の許可ビットは、スーパーユーザー以外は受信ディレクトリーの内容をリストすることはできませんが、そこにファイルを書き込むことは可能であることを意味します。無名ユーザーがログインする時には、FTP サーバーは 777 の UMASK を強制するので、これらのファイルは許可ビット 000 で書き込まれます。このことは、それらのファイルには無名ユーザー、またはスーパーユーザーを除く他のユーザーはアクセスできないことを意味します。
FTP クライアント・ユーザーは、通常、SITE UMASK コマンドを介して UMASK を変更することができ、あるいはユーザーはその所有するファイルの許可ビットを SITE CHMOD コマンドを通じて変更できます。
無名ユーザーに制限付きアクセス (ANONYMOUSLEVEL=3) を定義した場合は、ファイル・アクセスおよび許可パネルの HFS 許可を使用して、無名ユーザーによって作成されたファイルの任意のディレクトリーの許可ビットを設定することができます。ユーザーの FTP サーバーへのファイルの保管を無名ユーザーに許可する場合は、これらのファイルの保管されるディレクトリーが、z/OS システム上の他の作業に影響を与えることなしに書き込むことができる HFS の中にあることを確認しなければなりません。これを行う最善の方法は、/u/guest/incoming ディレクトリーをその固有の HFS データ・セットの中で割り振ることです。無名ユーザーが大量のデータを受信ディレクトリーにアップロードしても、この独立した HFS がいっぱいになるだけです。この独立した HFS をいっぱいにすることで、他の無名ユーザーはサーバー上で新規ファイルを保管することができなくなりますが、システム上の他の機能には影響しません。少なくとも、受信ディレクトリーが /tmp ディレクトリーと同じ HFS の中にないことだけは確認してください。
- 抽出ディレクトリーをセットアップします (オプション)。
ファイルを特定の無名ユーザーに使用可能にする必要はあるが、そのすべてに対してではない場合は、無名ユーザーがファイルの名前を知っていれば、リストはできないが、その中のファイルをダウンロードできるディレクトリーを作成することができます。
/u/guest ディレクトリーに位置決めして、スーパーユーザーが次のシェル・コマンドを出します。
===> cd /u/guest
===> mkdir extract
===> chmod 711 extract
これを extract という名前にする必要はなく、選択した任意の名前にできます。無名 FTP サイトに対する一般規則では、これを extract と呼ぶことにしています。そして、スーパーユーザーは、ファイルをこのディレクトリーにコピーし、それらが 755 の許可を持っていることを確認し、意図された無名ユーザーにそのファイル名を知らせます。すると、そのユーザーは無名としてログオンし、そのファイルを検索することができます。
4 つのサブディレクトリーのすべてを作成した場合は、/u/guest の位置にある ls -al コマンドから、以下のような結果が得られるはずです。
drwxr-xr-x 6 IBMUSER SYS1 8192 May 20 14:51 .
dr-xr-xr-x 6 IBMUSER SYS1 0 Jun 10 15:43 ..
drwx--x--x 2 IBMUSER SYS1 8192 May 11 12:44 bin
drwx--x--x 3 IBMUSER SYS1 8192 May 11 13:39 extract
drwx-wx-wx 3 IBMUSER SYS1 8192 May 25 09:35 incoming
drwxr-xr-x 3 IBMUSER SYS1 8192 May 13 21:15 pub