FINGERD(8)

名称
fingerd - リモートユーザ情報サーバ

書式
fingerd [-s] [-l] [-u] [-h] [-m] [-p] [-S] [-g] [-P filename]

解説
fingerd は、各ネットワークサイト上で name と finger プログラムとの インタフェースを提供する、 で規定されるプロトコルを実現するデーモンプログラムです。 このプログラムは、システムあるいは特定の人について、 人間的で親しみやすい状況報告をすることになっています。 プロトコルには特別なフォーマットは規定されておらず、1 行ずつ コマンドラインのような形式でやりとりされます。

fingerd は inetd(8) によって起動され、 TCP の 79 番ポートで要求を待ちます。接続されると、 fingerd は <CRLF> で区切られたコマンドラインを 1 つ受け取ります。これは、ローカルマシン上の finger(1) に送られ、処理されます。 fingerd は、出力が終わるとすぐに接続を切ります。

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

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

以下のオプションを /etc/inetd.conf 内のサーバプログラムへの引数を記述する部分に書くことで、そのオプションを fingerd に渡すことができます:

-s  他のリモートホストへの問い合わせの転送を行わないようになります。

-l  ログをとります。問い合わせをしてきたホストの名前と実際のリクエストを、 syslog(3) を通して LOG_NOTICE の優先度で報告します。`\W' と `\w' 形式のリクエストの 場合に返される出力は、長くなります。 空のリクエストを受け取った場合は、現在ログインしている全てのユーザを返します。 これ以外の全てのリクエストは、特定のユーザを調べます。 詳細は RFC1196 を参照してください。

-u  ユーザ名無しの問い合わせが拒絶されます。

-h  リモートホストの名前を、オフィスの位置や電話番号を表示せずに、 短縮形で表示します。

-m  user の名前のマッチングをしないようにします。 User は大抵はログイン名ですが、 -m オプションが与えられていない場合には、ユーザの real name とのマッチングも 行われます。

-p  finger(1) が “.plan” や “.project” を表示しないようにします。

-S  ユーザ情報をショートモードで表示します。各ユーザにつき 1 行出力されます。 このオプションは、リモートのクライアントから送られてくる “Whois switch” を上書きします。

-g  ユーザの real name 以外の gecos 情報を表示しません。

-P  ローカルな情報提供者として別のプログラムを使います。 fingerd で実行されるデフォルトのローカルプログラムは finger(1) です。 カスタマイズしたローカルサーバを指定することで、 どのような情報をリモートサイトに提供するかをもっと自由に制御できるように なるでしょう。

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

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

歴史
fingerd コマンドは 4.3BSD から登場しました。