The user Objects have an attribute for system accounts: property Boolean SystemAccount Whether or not the account is a system account, such as adm. System accounts aren't returned by ListCachedUsers and should generally be ignored.
It also has a shell property, but that (by default) seems to have no impact on listCachedUsers property String Shell, method SetShell(String path) The user's login shell. ListCachedUsers then is what is used by lightdm to fetch the list: method ListCachedUsers() returns: users: an array of paths for the user objects Returns a subset of the users who exist, typically those who have logged in recently, for populating chooser lists such as those used by GDM's greeter. Currently the accountsservice process scans /etc/passwd for users, filters out those with UID values which are below a threshold point to screen out system users, and sorts the rest by the number of times the users in question appear in /var/log/wtmp. Above a certain length, it's expected that the caller will disregard the list and present only an entry field. The entry field always needs to be available because we know that some results may be missing from this list. Best API def I found so far is from sssd: https://fedorahosted.org/sssd/wiki/DesignDocs/AccountsService Call is from lightdm at load_users in common/user-list.c This can be reproduced more easily by a direct dbus call: $ dbus-send --print-reply=literal --system --dest=org.freedesktop.Accounts /org/freedesktop/Accounts org.freedesktop.Accounts.ListCachedUsers ** Also affects: accountsservice (Ubuntu) Importance: Undecided Status: New ** Also affects: lightdm (Ubuntu) Importance: Undecided Status: New ** Changed in: ceph (Ubuntu) Status: New => Confirmed ** Changed in: base-passwd (Ubuntu) Status: New => Invalid ** Summary changed: - Libvirt Qemu appears in the list of users in Ligthdm and user switecher + System users appears in Ligthdm and user switcher (Accountsservice has no filter for shell types) -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to base-passwd in Ubuntu. https://bugs.launchpad.net/bugs/1667113 Title: System users appears in Ligthdm and user switcher (Accountsservice has no filter for shell types) Status in accountsservice package in Ubuntu: New Status in base-passwd package in Ubuntu: Invalid Status in ceph package in Ubuntu: Confirmed Status in libvirt package in Ubuntu: Confirmed Status in lightdm package in Ubuntu: New Bug description: "Technical" user libvirt Qemu appears in the list of user in Ligthdm, among the real regular users. It probably shouldn't ProblemType: Bug DistroRelease: Ubuntu 17.04 Package: libvirt-bin 2.5.0-3ubuntu2 ProcVersionSignature: Ubuntu 4.9.0-15.16-generic 4.9.5 Uname: Linux 4.9.0-15-generic x86_64 NonfreeKernelModules: zfs zunicode zavl zcommon znvpair ApportVersion: 2.20.4-0ubuntu2 Architecture: amd64 CurrentDesktop: Unity:Unity7 Date: Wed Feb 22 22:09:24 2017 InstallationDate: Installed on 2017-02-01 (21 days ago) InstallationMedia: Ubuntu 17.04 "Zesty Zapus" - Alpha amd64 (20170201) KernLog: SourcePackage: libvirt UpgradeStatus: No upgrade log present (probably fresh install) To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/accountsservice/+bug/1667113/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp