I'm currently playing a mafia/werewolves game with my cyber-security class.

The basic idea is:

  • on one machine, the moderator starts a server program
  • all the players ssh into the machine and launch a client program
  • the server / clients communicate through named pipes (not accessible with stat)
  • during the bad guy (mafia/werewolf) phase, they vote on someone to kill (communicating through server to other bad guys)
  • during the good guy phase, the townspeople guess / infer who is a bad guy and vote to kill them
  • last group still alive wins

I wrote a bash script to tell me when each user is typing (by watching for nr_voluntary_switch in /proc/####/sched). I run this during the bad guy phase to check who is voting.

This worked until the server started assigning people random names instead of their username. Now the server just notifies us that "'rabid marshmallow' voted" instead of the user's name.

Any ideas on how to tell who people actually are now?

1 Answer 1


Since this is over SSH, you might consider snagging users' unique IP addresses and building your assumptions based on that. Assuming the client devices connecting to the moderator's server are obtaining statically assigned addresses, this would make it easy to assign an individual to an IP address, especially if you can see whom is at what machine.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .