None of my users.users.* entries appear in the list of users for login in any login manager. I currently use lightdm for logging in and my only option is to manually enter my username every time but this is the same in every other login manager. Where have I gone wrong?
It also tells me that no users are listed in gnome-control-center under details > users (says none are found). Yet I am able to log in with all users to see this!
My configuration is available, the users are really basic entries in a separate file with but are very basic and look like:
I had the suggestion to nuke /var/lib/AccountsService but doing so and having it regenerate the directory has left the users sub-directory empty. It feels like my users file is being ignored somewhere.
The users were being skipped by accountsservice because the shells were set to an entry outside of those listed in /etc/shells (see here for what happens).
/var/run has been deprecated (in favour of /run) but not removed from my 19.03 config when pushing to a new 19.09 machine. Recommendation to instead use users.defaultUserShell = pkgs.<preferred-shell> instead of strings containing paths and so my config now does this!
I was experiencing this same issue and the proposed solutions don’t work.
Two observations: I use zsh, and my /var/lib/AccountsService/users/<user> file seemed to be stuck with SystemAccount=true (when I tried to change it to false, it would reset to its original value after reboot.)
I resolved this by placing the following in my configuration.nix:
environment.shells = with pkgs; [ bashInteractive zsh ];
What this does is updates /etc/shells to contain both bash and zsh as valid login shells. For whatever reason, if a user’s login shell isn’t in this list, GNOME forces it to be treated as a “SystemAccount”.