After reboot, suddenly "root" is only user available at login screen


After I rebooted my TrueOS laptop, I am suddenly greeted by a login screen that has root as the only possible user - my normal user name has disappeared. Logging in as root I see my user info still in /etc/passwd.

Where do you specify what users can login through the graphical login screen?

Login charlie& bash shell HELP!

That sounds backwards from the normal case. The config file is at /usr/local/etc/pcdm.conf, what does that show? Mostly the bottom section that ash things like SHOW_SYSTEM_USERS and such.
How about zfs list? Does it show /user/home/yourusername dataset mounted?


thank you @mer

for the heck of it, mine;




The only way I can get the same symptom is if SHOW_SYSTEM_USERS=FALSE. Unmounting the users dataset does not remove their name from the login list.


“root” login is only used as a last-ditch fallback for when PCDM cannot find any valid user accounts on the system.
Try running getent passwd and see if your user account is listed - that is how PCDM asks the system for the available user accounts.





getent passwd shows my user ID


/usr/home/MYNAME is mounted OK


Try adding a SHOW_SYSTEM_USERS=TRUE line down near the bottom, like it is in @RodMyers sample.


The “SHOW_SYSTEM_USERS” option defaults to “True”, and is simply the option for whether to provide a graphical “list” of user accounts you can select, or if you have to manually type in the username (good for network-enabled user management systems or systems with a huge number of users).


Thanks (yes, you are correct). So the SHOW_SYSTEM_USERS simply provides a drop down list, if it’s false you get a text entry box to type in username and password, ALLOW_ROOT does exactly that; if not true you get invalid username/password displayed.

So something else is going on I guess.


Yes, just to be sure I added the SHOW_SYSTEM_USERS=TRUE, no change.


Double check your user ID/account info and ensure that it is still a valid login account (not set to “/nologin”, your stated home directory exists, desired shell exists, etc).

EDIT: Make sure the uid >= 1000 as well - on Linux they use lower numbers for login-uid’s, but on FreeBSD it is 1000+


OK… UID is 1001, but login shell was /bin/bash. Fixed that to /usr/local/bin/bash, but that didn’t solve the situation. Are “approved” shells listed somewhere?


Is bash installed? “which bash” or "pkg info | grep -i bash"
The standard for allowed login shells is in /etc/shells


To the record: in old days, suddenly the system got broken because the user full name had non-ASCII characters.


bash exists as /usr/local/bin/bash, and is listed in /etc/shells. No non-ascii chars in user name.


No more suggestions/ideas?


grab the latest ISO/IMG, and install into a new BE (boot environment).

see if this makes a difference.


I am using GELI, and I see there is an issue with the current bootloader.