def setup_users(self): """ Add/Modify configured users """ system_users = Users(self.root_dir) for user in self.xml_state.get_users(): log.info('Setting up user %s', user.get_name()) password = user.get_password() password_format = user.get_pwdformat() home_path = user.get_home() user_name = user.get_name() user_id = user.get_id() user_realname = user.get_realname() user_shell = user.get_shell() user_groups = self.xml_state.get_user_groups(user.get_name()) user_exists = system_users.user_exists(user_name) options = [] if password_format == 'plain': password = self._create_passwd_hash(password) if password: options.append('-p') options.append(password) if user_shell: options.append('-s') options.append(user_shell) if len(user_groups): options.append('-g') options.append(user_groups[0]) if len(user_groups) > 1: options.append('-G') options.append(','.join(user_groups[1:])) if user_id: options.append('-u') options.append('{0}'.format(user_id)) if user_realname: options.append('-c') options.append(user_realname) if not user_exists and home_path: options.append('-m') options.append('-d') options.append(home_path) if user_exists: log.info('--> Modifying user: %s [%s]', user_name, user_groups[0] if len(user_groups) else '') system_users.user_modify(user_name, options) else: log.info('--> Adding user: %s [%s]', user_name, user_groups[0] if len(user_groups) else '') system_users.user_add(user_name, options) if home_path: log.info('--> Setting permissions for %s', home_path) # Emtpy group string assumes the login or default group system_users.setup_home_for_user( user_name, user_groups[0] if len(user_groups) else '', home_path)
def setup_groups(self): """ Add groups for configured users """ system_users = Users(self.root_dir) for user in self.xml_state.get_users(): for group in self.xml_state.get_user_groups(user.get_name()): if not system_users.group_exists(group): log.info('Adding group %s', group) system_users.group_add(group, [])
def setup_users(self) -> None: """ Add/Modify configured users """ system_users = Users(self.root_dir) for user in self.xml_state.get_users(): log.info('Setting up user {0}'.format(user.get_name())) password = user.get_password() password_format = user.get_pwdformat() home_path = user.get_home() user_name = user.get_name() user_id = user.get_id() user_realname = user.get_realname() user_shell = user.get_shell() user_groups = self.xml_state.get_user_groups(user.get_name()) user_exists = system_users.user_exists(user_name) options = self._process_user_options( password_format, password, user_shell, user_groups, user_id, user_realname, user_exists, home_path ) group_msg = '--> Primary group for user {0}: {1}'.format( user_name, user_groups[0] ) if len(user_groups) else '' if user_exists: log.info('--> Modifying user: {0}'.format(user_name)) if group_msg: log.info(group_msg) system_users.user_modify(user_name, options) else: log.info('--> Adding user: {0}'.format(user_name)) if group_msg: log.info(group_msg) system_users.user_add(user_name, options) if home_path: log.info( '--> Setting permissions for {0}'.format(home_path) ) # Emtpy group string assumes the login or default group system_users.setup_home_for_user( user_name, user_groups[0] if len(user_groups) else '', home_path )
def setup(self): self.users = Users('root_dir')