コード例 #1
0
    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)
コード例 #2
0
    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, [])
コード例 #3
0
    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
                    )
コード例 #4
0
ファイル: users_test.py プロジェクト: pombredanne/kiwi-1
 def setup(self):
     self.users = Users('root_dir')