I moved to OpenBSD full time on my desktop and laptop a couple of months ago, having previously used it on servers (this website is hosted on OpenBSD.amsterdam).
One of the biggest adaptations I had to make was retraining muscle memory to type doas
instead of sudo
.
It didn’t take long to get the point where I now have opendoas
installed on most of my linux machines (or at least alias doas=sudo
).
There’s no question that doas
does exactly what I need from a sudo
replacement with simpler configuration, but there is one feature of sudo
that I’ve found myself missing:
Insults.
sudo
has a marvelous feature where, if enabled, it insults you upon getting your password incorrect or authorization failing for some other reason.
doas
in its effort to be a sudo
replacement without all the bloat, neglects to implement this.
Fortunately, it’s easy enough to work around.
We could probably use sudo
’s insults, but why not use something a little more OpenBSD-esque as well as extending fortune
’s repertoire while we’re at it?
Namely, insults straight from the mouth/keyboard of Theo de Raadt.
The first thing we’ll need to do is build strfile
, it’s source code is included in OpenBSD
but it isn’t usually installed.
If you have OpenBSD src
tree downloaded somewhere, then strfile
can be found under games/fortune/strfile
.
$ pwd
/usr/src/games/fortune/strfile
$ make
$ ls -F
CVS/ strfile* strfile.c strfile.h
Makefile strfile.8 strfile.d strfile.o
9front is a continuation of Plan 9, and includes in its base system a program by the name of theo
which prints out insults by Theo de Raadt when run.
The following commands download and convert the list of insults into a format OpenBSD’s fortune
can use:
$ ftp -o - \
https://code.9front.org/hg/plan9front/raw-file/00bf6c34e13e/lib/theo |
awk '{ print $0; print ".%" }' |
fmt |
sed -e 's/^\.%/%/' > theo
$ strfile theo theo.dat
$ doas cp theo{,.dat} /usr/share/games/fortune/
$ doas chmod -w /usr/share/games/fortune/theo{,.dat}
$ doas chgrp bin /usr/share/games/fortune/theo{,.dat}
Try it out:
$ fortune theo
You are quite a persistant idiot.
Now enabling insults is as simple as adding the following to ~/.kshrc
and making sure that persist
is enabled in doas.conf
:
# ~/.kshrc
alias theo='fortune theo' # optional
doas() {
# This requires persist to be enabled in doas.conf
if ! /usr/bin/doas true; then
fortune theo 1>&2; false
else
/usr/bin/doas "$@"
fi
}
© 2019 Joe Davis.