ASCII doesn't have Greek characters
The DF code map is not pure ASCII, so Unicode was necessary.
I set up a public Dwarf Fortress running account: ssh to
demented.no-ip.org, username
dwarfort, password
dwarfort. This is a screen session, so press
ctrl-F to fit it to your terminal, and when you're done, press
ctrl-a d to detach.
Here's how I did it.
First, chmod +s $(which screen). This will make screen run as suid root and is sadly necessary to make multi-user mode work.
Second, add two new users, "dwarfort" and "dwarfort_watch". Set dwarfort_watch's login shell to /sbin/nologin. We'll come back to dwarfort's login shell later.
Third, create a file called ".screenrc" in dwarfort's home folder. Put
this into it. This will unbind almost all normal screen commands (except for detach, which we need), and allow multiuser read-only access from dwarfort_watch.
Fourth, create two shellscript files in dwarfort's home folder,
attach.sh (this is our "login shell", make it executable), and
reown.sh. This one is a bit more complicated. I'll explain its purpose in a bit. It is important that you make it read-only (but executable) and owned by root!
Fifth, edit your
/etc/sudoers file and add the following entries:
dwarfort ALL=(dwarfort_watch) NOPASSWD: ALL
dwarfort ALL=(ALL) NOPASSWD: /home/dwarfort/reown.sh
The first line allows dwarfort to execute commands as dwarfort_watch.
The second line allows dwarfort to execute reown as root. This is okay because reown.sh can't be changed and the command inside it will only change the ownership of files that already belong to dwarfort anyway. The reasoning for this is a bit complex, but it involves not being able to trivially change the ownership of your /dev/pts/[number] file from a non-interactive script (I ran into confusing permission errors trying this). If anybody has a better way, let me know.
Sixth, in /etc/passwd, set dwarfort's login shell to "/home/dwarfort/attach.sh".
Seventh, symlink or copy your Dwarf Fortress files into a "df" folder in /home/dwarfort, or change the path in the shellscript.
Anyway, this is what happens:
The first person who logs in gets a screen session started that contains a Dwarf Fortress game. The session offers no further access to screen commands aside from detach. It is usable as normal.
Subsequent people to connect are asked whether they want to observe or quit. If they want to observe, their terminal ownership is transferred to dwarfort_watch, and screen is connected in read-only mode to the running game. Since this will break automatic resize handling for the original player, he can use the ctrl-F key combo to re-fit the window.
Have fun!