See hack4glarus-2019-summer #6751. This stupid little joke evolved into a game. See the DISCLAIMER and rules below.
systemd-openbsd is a systemd- style init for OpenBSD. It does
not support services, no integrated DHCP server and no support for
emacs.service, but it implements the most important features that
are commonly expected from Linux' systemd. The goal is to ensure that
the system is working continuously and reliably.
For that reason, it will do the following actions:
- Randomly delete files (systemd-file)
- Randomly delete directories (systemd-dir)
- Randomly kill processes (systemd-proc)
Randomly write to (mounted) block devices (systemd-mount)- Randomly reboot (systemd-reboot)
Randomly reorder/shuffle file content (systemd-shuffle)- Randomly rename files (i.e. replace /etc/passwd with /lib/libc.so) (systemd-rename)
- Randomly move files around in the filesystem (systemd-move)
Randomly change file and directory permissions (systemd-change)Randomly panic (systemd-panic)Randomly connect to random IPv{6,4} addresses with tcp, udp, sctp (systemd-connect)Randomly drop network packets (systemd-drop)Randomly replay network packets (systemd-replay)Randomly remove or add pf rules (systemd-pf)Randomly add, change or remove DNS servers (systemd-dns)Randomly change the time to change something random (systemd-time)Randomly change the public ssh key (and back) (systemd-ssh)
Furthermore:
- Run everything except
rcas PID 1.
DON'T USE THIS IN PRODUCTION! DON'T USE IT ON YOUR MACHINE! DON'T TAKE IT SERIOUS! IT MIGHT DELETE YOUR FILES.
First make sure that you've read the DISCLAIMER above.
Now install systemd-openbsd on a dedicated machine:
- Check out the code, edit
init/Makefileand enable the-DDANGEROUSflag, and compile it withmakeunder OpenBSD. - Install and configure a new stock OpenBSD machine, preferably a VM.
- Replace the shipped
/sbin/initwith the binary of this init. - Reboot!
Keep the system running. You can also use it, turn it into a server,
but just make sure that you don't accidentally revert /sbin/init to
the OpenBSD version (e.g. by via sysupgrade).
- Run the machine and watch the reliability features in action.
- You can watch the action in syslog under
/var/log/authlog(or set up remote logging to keep the logs). - If the system becomes unusable, check
/systemd-score.txt.
The system is unusable if there is enough damage that it fails to reboot into multi-user mode.
If you cannot access the system anymore, try to mount the root disk
from elsewhere to read /systemd-score.txt. The goal of the game is
to run the system as long as possible and to obtain the highest
possible score. You can try to make your personal records, play the
game with others, or share your results on Mastodon or Twitter using
the #systemdrocksopenbsd hash tag.
You automatically won the game if you've obtained a Joker. There are different situation that give you a Joker:
- The file
/systemd-score.txtgot corrupted. You won. - The file
/sbin/initgot corrupted. You won.