FINGERD(8)

名称
fingerd - 他のホストからの finger 要求に応えるサーバプログラム

書式
fingerd [-s] [-l] [-p filename]

解説
fingerd ユーティリティは、ネットワークの各サイト上の finger(1) プログラムとのインタフェースを提供する、 で規定されるプロトコルを実現するデーモンプログラムです。 このプログラムはシステムあるいは特定の人について 人間的で親しみやすい状況報告をするものです。 特別なフォーマットは規定されておらず、プロトコルは 1 行ずつ “コマンドライン” のような形式でやりとりされます。 また -p フラグと組み合わせることにより、他のプロトコルの実装のために fingerd を使用可能です。

fingerd ユーティリティは、 TCP の 79 番ポートを見張っている inetd(8) から開始されます。接続されると、 <CRLF> で区切られたコマンドライン 1 行を受け取ります。これは finger(1) に送られ、処理されます。 fingerd ユーティリティは、出力が終わるとすぐに接続を切ります。

もし、そのコマンドラインがヌルの (つまり <CRLF> だけが送られた) 場合、 finger(1) は “デフォルト” の出力を行ないます。デフォルトは、その時にシステムにログインしている全ての 人のリストです。

もし、ユーザ名が指定されると (たとえば eric<CRLF> ) 出力は、その人に関する詳細な情報だけとなります。これには、 ログインしている/いないの情報も含まれます。 コマンドラインの “names” は、 “ログイン名” と “ユーザ名” のどちらでもかまいません。 名前が曖昧な場合は、マッチするものすべてについて表示されます。

fingerd に渡す引数として、 /etc/inetd.conf の中で指定できるオプションは以下のとおりです:

-s  secureモードを有効にします。ユーザ名なしの問い合わせと、他の リモートホストへの問い合わせの転送は拒否されます。

-l  ログをとります。問い合わせをしたホストの名前を syslog(3) を通して LOG_NOTICE の優先度で報告します。

-p  ローカルの情報提供元としてデフォルト以外のプログラムを使います。 fingerd によって起動されるデフォルトのローカルプログラムは、 finger(1) です。カスタマイズされたローカルサーバを指定することにより、 システム管理者はリモートサイトに提供する情報を さらにコトロールできます。 -p が指定されると、 fingerd は、環境変数 FINGERD_REMOTE_HOST をリクエストしているホスト名に設定します。

関連項目
finger(1), inetd(8)

バグ
サーバに TIP や、同じくらい見識の狭い TELNET-protocol ユーザプログラムで直接コネクトすると、 サーバに意味の無いネゴシエーションオプションを送ることになり 不正なコマンドライン解釈を行う可能性があります。 fingerd ユーティリティは、 IAC のものをフィルタリングして除くべきであり、おそらく 受け取った全てのオプションコマンドを否定するよう (IAC 拒否) をするべきです。

歴史
fingerd ユーティリティは 4.3BSD から登場しました。