Created attachment 753192 [details] anaconda.log Description of problem: If an user name with unicode character is specified at user creation screen, anaconda silently finishes the installation without reporting that no user was created due to the unicode character in the username. Version-Release number of selected component (if applicable): F19b RC4 (19.30-1) How reproducible: always Steps to Reproduce: 1. Customize Installation Settings 2. Start Installing 3. Set Root password 4. Create an user with an unicode character in the username. 5. Installation finishes ok. (logs shows that no user was created). 6. Upon reboot, and inspection, one can the user was not created. Actual results: failure to report that the user will not be created. Expected results: either make sure that it is created, or refuse to do it if the underlying toos do not support it (invalid username). Additional info: 21:08:06,626 INFO anaconda: Creating users 21:08:06,627 INFO anaconda: created new libuser.conf at /tmp/libuser.aGAqyX with instPath="/mnt/sysimage" 21:08:06,834 CRIT anaconda: Error when creating new user: name contains non-ASCII characters 21:08:06,838 ERR anaconda: User admin<U+200F> already exists, not creating.
Created attachment 753193 [details] program.log
Created attachment 753194 [details] storage.log
Created attachment 753195 [details] packaging.log
Thanks for your report. Brian, is there anything to suggest this is a problem in libuser? > 21:08:06,834 CRIT anaconda: Error when creating new user: name contains non-ASCII characters > 21:08:06,838 ERR anaconda: User admin<U+200F> already exists, not creating. So this suggests that libuser has reported an error, but anaconda is handling it incorrectly. In particular kickstart.User.execute() logs the second ERR if createUser fails for any reason; then the information about the failure is ignored. (Also utils/handle-sshpw is ignoring the failure completely.) The user name restrictions are intentional, and at least for F19 are definitely not changing. Anaconda * Really needs to handle libuser error returns in a way that is visible to the user * Might consider doing user-friendlier validation in advance; see isUserGroupNameOk in /usr/share/system-config-users/userGroupCheck.py .