During the development of a product I am working on, I want to create / add a user through anaconda with the password as specified by the user / installer.
Following the code in anaconda (users.py) the following is passed through to libuser to create the user: {{{ #if not self.users.createUser(name='admin', # password=self.adminPassword["password"], # isCrypted=self.adminPassword["isCrypted"], # groups=['users', 'wheel'], # homedir=None, # shell='/bin/bash', # uid=None, # algo=self.getPassAlgo(), # lock=False, # root=self.anaconda.rootPath, # gecos='Admin User', # mkmailspool=True, # mkhomedir=True): # log.error("Cannot create Admin User for CLI access.") }}}
Based on my understanding this should:
This works: the user is created, but that is it. To actually get the password set, I have to run the users.setUserPassword() method which does set the password for the user correctly. No groups are created, no group membership is done, no home directory is set.
Reading /usr/share/doc/libuser-python-0.56.13/modules.txt, also indicates that creating the home directory is done my default: {{{ - addUser: Add a new user to the system: Arguments:
A libuser.Entity object with the new user or group's information (required).
A true/false object indicating whether or not the home directory for the user should be created (optional, defaults yes). }}} Based on the above - what should I be calling the libuser addUser method with to ensure that: * The user account home directory gets created * The user account password get's set properly * The user account gets added to the right groups
Rebuilt system with libuser-0.58-3.fc18.src.rpm - addUser now works as expected.
I suspect that there is a problem using the inbuilt CentOS libuser-0.56.13-5.el6.src.rpm version.
Thanks for your report. The "users.createUser" function is a part of anaconda, not libuser.
Do you have a specific reproducer that uses libuser calls?
Closed due to lack of response. Please reopen at pagure.io if this is still relevant.