Go to the previous, next section.
GNU Finger is the collective name for a set of programs:
fingerserver. Returns the output from the server.
in.fingerdon the host specified in the command line. This is the only program you need to know anything about if you're a regular user. You should refer to this program as the finger client to avoid possible confusion.
in.cfingerdon the clients specified in the `fingerdir/clients' file, to obtain finger data. This client data is saved in the file `fingerdir/userdata'.
fingerdshould run on the host specified in the `fingerdir/serverhost' file.
fingerdshould be started at boot time.
inetd. Should be attached to the `finger' service via `/etc/inetd.conf'.
in.fingerdbehaves somewhat differently depending on what host it runs on: on the server host it reads the `fingerdir/userdata' database, on all other hosts it forwards all requests (unless `.local' is the target) to
in.fingerdon the host specified in `fingerdir/serverhost'.
in.fingerd reads the `fingerdir/userdata' database, various
system files, and makes SMTP connections to the host specified in the
fingerdby sampling the status on the client and forwarding it to
fingerd. It should be configured to respond to the `cfinger' service specified in the `clients' configuration file, or port 2003 if nothing else is specified.
When the GNU Finger server receives a request for information about a user it looks to see if the user has a `.fingerrc' file in the home directory. If such a file exists, and is executable, then this file is executed, and the normal finger output is passed to it as input. Its output becomes what is returned for the request. Thus, it can be used to:
fingerby ignoring its input. Below is a sample script which could be put in `~price-info/.fingerrc'.
#! /bin/sh # # This sample script replaces the output of GNU Finger # echo Hack-O-Matic Consulting Services, Inc. " " `date` cat <<ETX Hi, thanks for asking us about prices on our newly introduced support services for Free Software. Below is a list of new services; for a list of our previous services, please send mail to this address and someone will contact you. Please don't forget to tell us how to reach you. ETX cat ~/info/new-stuff
#! /bin/sh # # This sample filter replaces the "Project:" tag with # "Working on:" # sed -e 's/^Project:$/Working on:/g'
Then when `finger -l email@example.com' is run, the output could look something like:
Jan Brittenson (bson) Home: /home/fsf/bson Shell: /usr/local/bin/bash No mail. Jan Brittenson (bson) is not presently logged in. Last seen at wombat.gnu.ai.mit.edu on Tue Sep 1 15:08:12 1992 No plan. Working on: 1. Hacking GNU Finger 2. Making friends
Various special targets can be added as executable files in the directory `fingerdir/targets'. Each file name in this directory starts with a letter describing when to execute it, followed by a hyphen and the target name. The three letters are:
For instance, the special-target file `x-.help' is run for either `finger .help' or `finger -l .help', whereas the special- target file `l-prices' is run only for `finger -l prices'.
The special-target file is run as super-user, and is given no input. By convention, all GNU Finger sites should support at least:
When invoked, the GNU Finger client looks to see if a `--port' option was specified on the command line. If so, then this becomes the port number or service used. Otherwise, the client looks to see what name it was started under, removes any leading directory path, and any trailing suffixes. A suffix is the part of a filename that follows a dot, including the dot itself. This is the service name used. For instance, if GNU Finger is installed as `/usr/local/bin/finger.new', then the service `finger' is used. If it's installed as `/usr/local/bin/gfinger', then the service `gfinger' is used. This behavior can be changed by the system administrator during installation.
Go to the previous, next section.