Skip to content

grawity/rwho

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

RWho

This program is similar to the who command, but maintains a central list of currently logged in accounts across multiple servers.

$ rwho
USER         HOST         LINE       FROM
grawity      ember        {45}       (tmux)
             land         pts/3      2a06:e881:108:2:64e6:9d86:856:b93c
             sky          pts/0      2a02:7b40:50d1:hjkl::1
             star         {13}       (tmux)
nobody       ember        pts/14     2001:778:e27f:0:9618:82ff:fe38:e480
             star         pts/9      star.nullroute.eu.org
             star         pts/1      78-59-7-25.static.zebra.lt

It was originally written in mid-2000s for a public-access Linux "shell account" network (similar to the ~tilde clubs~ of nowadays), back when you still had this sense of community around it... and when letting other people know your IP address didn't matter so much.

Nowadays, of course, it really shouldn't be used without carefully considering the privacy implications.

RWho was greatly inspired by the BSD Unix rwho, though has no direct relationship to it (except for the name).

Features

Data is stored on a central server (currently – in a MySQL database), with hosts sending live and periodic updates.

  • Hosts use HTTP Basic authentication over TLS (Kerberos is also planned). Originally, in the spirit of Unix rwho, no authentication was done at all.

  • "Agents" exist for Linux, BSDs, and Windows Server.

The information can be displayed through a fancy web interface or through the traditional Finger protocol. See it in action via HTTP or Finger.

  • There is support for showing the user's ~/.plan file, either from the filesystem or even from LDAP.

Contents

  • agent/ – new agent service for Linux (requires Python 3)
  • agent-linux/ – old agent service for Linux and BSDs (requires Perl 5)
  • agent-win32/ – old agent service for Windows XP/2003 (requires pywin32)
  • server-php/ – API server for PHP
  • ui-finger/ – a text interface for the Finger protocol (inetd-style)
  • ui-web/ – a slightly fancy HTML interface for Mozilla 1.7 and Internet Explorer 5 (requires PHP 7.4)