伝統的な FTP サーバは inetd (internet superserver daemon)から実行されます。 標準の FTP ポートは 21 です。ユーザがログインしようとすると、FTP サーバは標 準システムコール を使ってユーザ名とパスワードが正しいかチェックします。普通はシステムパスワー ドファイルのエントリ、NIS を使っている場合は NIS テーブルのエントリと照合します。もしログインが正しい場合は、ユーザにシ ステムへのアクセス権が与えられます。
匿名 FTP のしくみはまた別です。ユーザは anonymous (匿名)か、 FTP ユーザ名(こ れは 設定ファイルで定義できます)でログインします。そしてユーザは chroot() されて いる ディレクトリツリーにアクセスを与えられます。これはユーザが権限を与えられてい ない ディレクトリツリーにアクセスできないようにすることを確実にします。 chroot さ れた ディレクトリツリーは普通、bin/、etc/、と lib/ ディレクトリを含んだ模倣の ファイルシステムを持ちます。ダウンロードされるファイルは普通 pub/ ディレクト リに置かれます。
匿名 FTP ツリー内の模倣のファイルシステムの理由は、FTP デーモンが ls の要求 の ために外部コマンドを実行するためです。これ以外のプログラムを bin ディレクト リに追加 することもできますし、ユーザは FTP クライアント内の SITE コマンドでこれらを 実行できます。 たとえば、Red Hat の FTP は RPM コマンドを含みます(ユーザがサイト上の RPM パッケージへ問い合わせ できるように)。
さらに異なったしくみの FTP サーバもあります。たとえば、ユーザアカウントをシ ステム全体 のパスワードファイルから独立してセットされるのを許すものもあります(FTP オン リーのアカウント)。 ビルトインの ls コマンドを最初から持っていて、特別なディレクトリツリーを chroot 構造内に 必要としないものもあります(たとえば ProFTPD や NcFTPd)。その他、標準 ftp の 概念とは 全く異なったものもあります。たとえば FTP4ALL はシステムパスワードを全く使い ません。 これには独自のユーザとグループファイルを使用し、アップロードとダウンロードの 比率や カスタマイズできるサーバメッセージなどの機能があります。
WU-FTPD は Red Hat と Caldera や、その他たくさんの Linux ディストリビュー ションに 含まれている FTP デーモンです。 http://www.wu-ftpd.org で WU-FTPD についてもっと詳しいことを学べます。
WU-FTPD FAQ は http://www.cetis.hvu.nl/~koos/wu-ftpd-faq.html で見つかります。
ProFTPD はアパッチ形式の設定、仮想ホストの広範囲サポート、インターナル ls を 含む パワフルな FTP サーバです。
完全なコマンドリファレンスとダウンロードは http://www.proftpd.net で見つかります。