First a quick note, the LXD snap should have automatically setup an alias from “lxc” to “lxd.lxc” so you don’t need to type “lxd.lxc” constantly
LXD is a daemon and always runs as root, this is unrelated to privileged vs unprivileged containers where the difference is on whether root in the container is real root or not.
Anyone who can talk to LXD can create containers. By default those containers are unprivileged but it’s just a matter of setting security.privileged=true on a LXD container and restarting it to then have it be privileged.
LXD will allow members of the “lxd” group to interact with the daemon, this lets you give non-root users the ability to talk to LXD. Do note that this is pretty much equivalent to handing root access to those users since they can configure LXD to run privileged containers and pass any character/block device or disk path into them.
Anyway, to get this going with the snap package. Just create the group on your system with “groupadd --system lxd”, then add your user to the group and lastly, restart the LXD daemon with “systemctl restart snap.lxd.daemon.service”. The snap will detect that the group exists and pass “–group lxd” to the daemon which will have it allow connections from anyone who’s in the “lxd” group.