Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

FTPD(8C)  —  NEWS-OS Programmer’s Manual

名称

ftpd − DARPAインターネットファイル転送プロトコルサーバ

形式

/etc/ftpd [ −d ] [ −l ] [ −ttimeout ]

解説

ftpd は、DARPAインターネットファイル転送プロトコルサーバプロセスです。 サーバはTCPプロトコルを用い、 “ftp”サービス仕様で指定したポートで受信します。 services(5) を参照してください。

−d オプションが指定されると、デバッグ情報は syslog に書き込まれます。 −l オプションが指定されると、各 ftp セッションのログが syslog に書き込まれます。 ftpサーバは、セッションが 15 秒間何も活動しないと、タイムアウトします。 −t オプションが指定されると、非アクティブタイムアウト期間が timeout にセットされます。ftp サーバは、 現在次の ftp リクエストをサポートしています。case は識別されません。

リクエスト 内容
ABOR前のコマンドをアボート
ACCTアカウントを指定(無視される)
ALLO記憶装置を割り当て(中味は空)
APPEファイルに追加
CDUPカレント作業ディレクトリの親ディレクトリに移行
CWD 作業ディレクトリの変更
DELEファイルの削除
HELPヘルプ情報を表示
LISTディレクトリ内のリストファイルを表示(“ls −lg”)
MKD ディレクトリの作成
MODEデータ転送モードの設定
NLSTディレクトリ内のファイルリストを表示(“ls”)
NOOP何もしない
PASSパスワードを指定
PASVサーバからサーバへの転送を準備
PORTデータ接続ポートを指定
PWD カレント作業ディレクトリを表示
QUITセッションを終了
RETRファイルを検索
RMD ディレクトリを削除
RNFRrename from ファイル名を指定
RNTOrename to ファイル名を指定
STORファイルを格納
STOUファイルをユニークな名称で格納
STRUデータ転送構造 (structure) を指定
TYPEデータ転送タイプ (type) を指定
USERユーザネームを指定
XCUPカレント作業ディレクトリを親ディレクトリに移行
XCWD作業ディレクトリの変更
XMKDディレクトリを作成
XPWDカレント作業ディレクトリをプリント
XRMDディレクトリを削除

この他の、 インターネット RFC959 内で指定された ftp リクエストは識別されます。 しかし、実装はされていません。 ftpサーバは、インターネット RFC959 で述べられているように、 ABOR コマンドの前に、 コマンド Telnet ストリーム内に Telnetの“Interrupt Process” (IP割り込み処理)シグナルおよびTelnet “Synch”シグナルが置かれたときにだけ、 実行中のファイル転送をアボートします。

ftpd は csh(1) に使用される“globbig”規則に従って、 ファイル名を解釈します。 これによって、ユーザはメタキャラクタ ∗ ? [ ] { } ~ を利用できます。

ftpd は、ユーザを 3つのルールで特定のユーザを認識します。

1)ユーザネームは、パスワードデータベース /etc/passwd に存在しなければなりません。 そして、パスワードは存在しなければいけません。 この場合、パスワードは、 あらゆるファイル操作を行う前に入力されなくてなりません。

2)ユーザ名は、ファイル /etc/ftpuser の中にあるものではいけません。

3)ユーザは、 getusershell(3) から返される標準 shell を利用していなければなりません。

4)ユーザ名が、“anonymous”または“ftp”の場合、 anonymous ftp アカウントがパスワードファイル(ユーザ “ftp”)に存在しなければなりません。 この場合、ユーザは任意のパスワード (慣例的に、これは顧客のホスト名)を指定し、ログインできます。

最後の場合では、 ftpd は特別な方法で、 クライアントのアクセス権を制限します。 サーバは ftp ユーザのホームディレクトリに対し、 chroot(2) を実行します。システム機密が漏れないよう ftp サブツリーは慎重に作成してください。次の規則を使うといいでしょう。

~ftp)ホームディレクトリは“ftp”に所有され、だれも書き込みができません。

~ftp/bin)
このディレクトリはスーパーユーザに所有され、 だれも書き込みが許されません。プログラム ls(1) は、リクエストコマンドをサポートするのに欠かせません。 このプログラムはモード 111 にします。

~ftp/etc)
このディレクトリはスーパーユーザに所有され、 だれも書き込みが許されません。ファイル passwd(5) と group(5) は、 ls コマンドが正しく動くために欠かせません。このファイルはモード 444 にします。

~ftp/pub)
このディレクトリをモード 777 にし、“ftp”に所有させます。 ユーザはそこで仮名アカウントを経由してアクセスされるファイルを このディレクトリに置きます。

関連コマンド

ftp(1C), getusershell(3), syslogd(8)

バグ

変名(anonymous)によるアカウントは危険ですから、 できるなら避けてください。 サーバは特権ポート番号を使ってソケットを作るため、 スーパーユーザとして実行されなければなりません。 これは、ログインしたユーザの有効ユーザIDを持ち、 アドレスをソケットに接続するときだけスーパーユーザに変わります。 可能なセキュリティの抜け道は、 極端にきびしく検査されていますが、不完全である可能性があります。

NEWS-OS Release 4.1C

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026