0

In Ubuntu/Debian based distributions it has always been possible to allow the use of "." in usernames by modifying the NAME_REGEX field in /etc/adduser.conf. The value that I have always found that works is:

NAME_REGEX="^[a-z][-a-z0-9_.]*$?$"

I have tried this in elementary OS v7 and it allows me to create a user with a "." in their username using adduser but the UI doesn't recognise the new user. If I try to add a user using the GUI User Accounts tool it rejects a username with a ".".

It is a while since I used it but I recall this used to work correctly in v6.1. Is the GUI tool using a different configuration file to describe what characters are permitted in a username?

-Andy.

1 Answer 1

0

To the best of my knowledge, this cannot be changed in elementary OS 7+ as periods in names can result in the following issues:

  • scripts that use chown can malfunction due to a 20+ year old issue where a period can be used in place of a colon when assigning ownerships
    How long does a "legacy" decision need to be supported? 😵‍💫
  • some systemd operations that are expected to run as a user may run under root instead if the username contains a period
    This seems like more of a critical bug than something that should be used to justify a naming convention.

Doing a quick scan of the various configuration files used by elementary OS does not reveal a regex or character list that may be used for user names, which leads me to believe it's built into the UI itself. Any change to the UI code would be eliminated the next time an update from the OS team is rolled out 😕

1
  • I am aware of those limitations and can live within them. It is only physical users that need a period (to match usernames on legacy systems). Anything that is controlled by systemd is a service and has its own account without the period.
    – AndyP
    Commented Apr 18, 2023 at 8:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.