How to re-interpret LXD snap instructions for bare metal installs

I understand the convenience of using LXD snaps and have some in production myself. However, I also love this project and want it to be successful, which means it’s needs to work on other distros as well, and under circumstances where using the snap isn’t feasible or convenient. I only mention this because when I was first researching container frameworks the most common thing I read about LXD was “it works on Ubuntu, but not really on other distros”. I know that’s not true because I also have LXD containers in production on Arch linux systems.

To this end, I just watched a fantastic video Stéphane made on using LXD in multi-user environments which looks like it’s going to solve a ton of problems in my work environment. To create the alternative group UNIX socket for LXD, he uses this command:

# snap set lxd

Is there a command line way to do this for a bare metal LXD install? A google search found nothing helpful. Because of the preponderance of demonstrations illustrating how to do things with LXD snaps, it would be nice to have a translation table for people who aren’t using snaps and installed LXD using their distros package manager. Alternatively, I’m OK with editing YAML files, but then need to know which YAML file to edit.


This controls a second socket-activated daemon called lxd-user.

When building from source, you can manually run the lxd-user daemon.
It will create a unix.socket path wherever it is located, you can then use LXD_DIR=/path/to/lxd-user/dir in the environment to have the normal LXC CLI access lxd-user rather than LXD itself.

I can’t find any documentation on lxd-user. When I try to run it mirroring the syntax of lxd, I get an error message:

[root@gecko ~]# lxd-user --group=users --logfile=/var/log/lxd/lxd-user.log
Error: unknown flag: --group

lxd-user doesn’t have a --group flag.

See lxd-user --help.