finger username@atl.sh on port 79. It’s socket-activated via systemd — no daemon runs until a connection arrives.
How it works
| Script | Triggered by | Purpose |
|---|---|---|
luser | finger username@atl.sh | Look up a specific user |
list | finger @atl.sh | List logged-in users |
nouser | finger nonexistent@atl.sh | Handle unknown users |
log | All queries | Logging |
luser script reads ~/.plan and ~/.project to build the response. If the user has a ~/.efingerd executable script, it runs that instead.
User files
| File | Purpose |
|---|---|
~/.plan | Free-form text — what you’re working on, thinking about |
~/.project | One-line project description |
~/.efingerd | Optional custom script for full control over output |
.plan and .project are created from /etc/skel/ when the account is provisioned. Edit them with any text editor:
Custom finger script
For full control, create an executable~/.efingerd:
chmod +x ~/.efingerd
When present, efingerd runs this script instead of its default luser handler. $1 is the queried username, $2 is the requesting host.
Ansible configuration
| File | Purpose |
|---|---|
roles/services/tasks/finger.yml | Install efingerd + finger client, set script permissions, deploy systemd units |
roles/services/templates/finger.socket.j2 | Systemd socket unit (port 79) |
roles/services/templates/finger@.service.j2 | Systemd service template unit |
finger client package is also installed — it’s needed by efingerd’s luser script to resolve user information.
All scripts in /etc/efingerd/ are set to mode 0755 to ensure they’re executable.
Troubleshooting
finger returns nothing or “no such user”- Verify the user exists:
getent passwd username - Check
~/.planexists and is readable:ls -la ~/.plan - Test locally:
finger username@localhost
- Emoji or non-ASCII in
.plancan cause issues with some clients - The smoke test uses
grep -cinstead of direct output to avoid UTF-8 surrogate errors
- Check:
systemctl status finger.socket - Restart:
sudo systemctl restart finger.socket - Verify port:
ss -tlnp | grep :79