User account set to system account after upgrade

Hi!

After the newest upgrade my user account is set to be a system account, which removes it from the GNOME login screen. I had to create a new dummy user, because the system thought there are no user accounts on my system. After that I used the “Your name not listed here?” function of the login screen to login with my old account, which worked as it should.

However, ideally I’d want my account to show up on the login screen again. I tried to edit /var/lib/AccountsService/users/MY_USER_NAME and set SystemAccount=false, but the changes had no effect and were wiped after a reboot. How can I restore the status of “User account” for my old account?

Thank you in advance!

1 Like
grep -e UID_ /etc/login.defs
id ${USER}
% grep -e UID_ /etc/login.defs
UID_MIN                  1000
UID_MAX                 60000
SYS_UID_MIN               201
SYS_UID_MAX               999
% id ${USER}                  
uid=1000(me) gid=1000(me) groups=1000(me),10(wheel)
1 Like
gdbus call --system \
--dest org.freedesktop.Accounts \
--object-path /org/freedesktop/Accounts/User${UID} \
--method org.freedesktop.DBus.Properties.Get \
org.freedesktop.Accounts.User SystemAccount

gdbus call --system \
--dest org.freedesktop.Accounts \
--object-path /org/freedesktop/Accounts/User${UID} \
--method org.freedesktop.DBus.Properties.Get \
org.freedesktop.Accounts.User LocalAccount
% gdbus call --system \
--dest org.freedesktop.Accounts \
--object-path /org/freedesktop/Accounts/User${UID} \
--method org.freedesktop.DBus.Properties.Get \
org.freedesktop.Accounts.User SystemAccount
(<true>,)
% gdbus call --system \
--dest org.freedesktop.Accounts \
--object-path /org/freedesktop/Accounts/User${UID} \
--method org.freedesktop.DBus.Properties.Get \
org.freedesktop.Accounts.User LocalAccount
(<false>,)
1 Like
grep -v -e "^#" -e "^$" /etc/nsswitch.conf
getent passwd ${USER}
% grep -v -e "^#" -e "^$" /etc/nsswitch.conf
passwd: sss files altfiles systemd
shadow:     files sss
group: sss files altfiles systemd
hosts:      files mdns4_minimal [NOTFOUND=return] dns myhostname
bootparams: files
ethers:     files
netmasks:   files
networks:   files
protocols:  files
rpc:        files
services:   files sss
netgroup:   sss
publickey:  files
automount:  files sss
aliases:    files
% getent passwd ${USER}
me:x:1000:1000:me:/home/me:ELF
1 Like

We need someone with Silverblue to verify whether that is correct or not.
On Fedora Workstation I don’t have altfiles, and there’s /bin/bash instead of ELF.

I’ve used lchsh to change my login shell to zsh, maybe that’s why it doesn’t say bash

I have exactly the same issue but so far I did not find a solution. At the moment I have need to type my username when I try to login.
org.freedesktop.Accounts.User also tells me that my account is set to SystemAccount=true and LocalAccount=false but I don’t know how to change this.
changing SystemAccount in /var/lib/AccountsService/users/MY_USER_NAME seem to be resettet after a reboot

I’ve had this issue after downgrades sometimes.

Not sure what causes it.

I had this same issue on Silverblue 32 when switching my shell to zsh.

Switched the shell with:

sudo lchsh {USER}

and at first typed zsh.

This lead to being added to the System Account true in /var/lib/AccountsService/users/MY_USER_NAME

I had to create another user to get the visual login working again.

Experimented with this a bit and found that one should make sure to change the shell to /bin/{SHELL} instead of just {SHELL}.

The whole sequence was then:

sudo lchsh {USER}

And then type:

/bin/zsh

When prompted.

Before I rebooted I also removed the line SystemAccount=true by

vim /var/lib/AccountsService/users/MY_USER_NAME

Removing the line and :wq

After a systemctl reboot my account appeared as normal and I was not readded to /var/lib/AccountsService/users/MY_USER_NAME as SystemAccount=true (the line remains not added to the file).

Hopefully this helps someone with the same issue I had.

2 Likes