| How To... | Why not..? | Scripts | Patches | ![]()  | 
Last update: 2018-12-18
In this post I show you an easy way to provide /dev/urandom for your
Nextcloud instance running on OpenBSD.
This provides high quality random numbers to Nextcloud and silences the
error message that the device is not accessible.
I assume that you have installed Nextcloud from the package that is
available for OpenBSD. Further I assume that you either use httpd(8)
as your web server or that you have a chroot(2)
configuration for your web server that locks it into /var/www.
If you don't have changed it manually your /var partition is mounted
with the option nodev. This means that the directory /var/www/dev
must reside on a dedicated partition which you can mount without the
nodev option. Allocating one from the SSD is a waste of space and
letter in the disklabel(5).
The memory file system mfs (mount_mfs(8)
is here to help. You can create a tiny mfs disk and mount it under
/var/www/dev:
$ doas mount_mfs -s 1M /dev/sd0b /var/www/dev
You can use MAKEDEV(8) to
create the device file /var/www/dev/urandom:
$ cd /var/www/dev
$ doas /dev/MAKEDEV urandom
This will not only create the device file but also the symlink random
which points to urandom.
An entry in fstab(5) will create the file system during system boot:
$ doas vi /etc/fstab
swap /var/www/dev mfs rw,-s=1048576 0 0
I use rc.local(8) to create the device automatically during the system boot. My script looks like this:
#!/bin/ksh
#
# $Header$
echo -n "Create /var/www/dev/urandom: "
cwd=$(pwd)
cd /var/www/dev
/dev/MAKEDEV urandom
cd $cwd
echo "."