A long time ago, I found a website that listed on its venerable finger
service the GNU/Linux distributions and BSD systems that you can download.
That misuse was so fun and ingenious that I wanted to imitate it.
And I created pfinger, a server and a client for finger.
This project allows me to:
The server is not really a
finger server as it does not allow to gather data on the connected users on the local
or remote machine.
It simply displays some data by using the same protocol used by
finger: and it is almost nothing as it is based on
simple messages on TCP.
To be honest, it is probably what you could see in a first year course to become a developer.
- some security features
- can gather remote content (JSON) before displaying it
- use different source for formatting
- simple text
- file content
- templates with Template-Toolkit
- cache of the templates
- can display in the templates:
.inifile to list the “usernames” (aka the
- provide some statistics about usage
- rework of the documentation
An instance is publicly available here: @finger.t18s.fr
- to use TLS
- to understand UTF8 characters (but the
fingerprotocol does not support other than ASCII)
$ perl pfinger_client.pl @finger.t18s.fr $ perl pfinger_client.pl firstname.lastname@example.org
pfinger daemon must be run behind a HAProxy (or an alternative) instance.
It adds some features I will never implement:
- manage a SSL certificate (even if the
fingerprotocol does not support this)
- add basic security with rate-limit
I use perlbrew to manage the Perl version and the modules installation CPAN.
Of course, there is an Ansible playbook to deploy everything.