404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@3.144.91.176: ~ $
# Copyright 2014-2015, Tresys Technology, LLC
#
# This file is part of SETools.
#
# SETools is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation, either version 2.1 of
# the License, or (at your option) any later version.
#
# SETools is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with SETools.  If not, see
# <http://www.gnu.org/licenses/>.
#
import logging
import re

from .descriptors import CriteriaDescriptor, CriteriaSetDescriptor
from .mixins import MatchName
from .query import PolicyQuery
from .util import match_regex_or_set, match_level, match_range


class UserQuery(MatchName, PolicyQuery):

    """
    Query SELinux policy users.

    Parameter:
    policy            The policy to query.

    Keyword Parameters/Class attributes:
    name            The user name to match.
    name_regex      If true, regular expression matching
                    will be used on the user names.
    roles           The attribute to match.
    roles_equal     If true, only types with role sets
                    that are equal to the criteria will
                    match.  Otherwise, any intersection
                    will match.
    roles_regex     If true, regular expression matching
                    will be used on the role names instead
                    of set logic.
    level           The criteria to match the user's default level.
    level_dom       If true, the criteria will match if it dominates
                    the user's default level.
    level_domby     If true, the criteria will match if it is dominated
                    by the user's default level.
    level_incomp    If true, the criteria will match if it is incomparable
                    to the user's default level.
    range_          The criteria to match the user's range.
    range_subset    If true, the criteria will match if it is a subset
                    of the user's range.
    range_overlap   If true, the criteria will match if it overlaps
                    any of the user's range.
    range_superset  If true, the criteria will match if it is a superset
                    of the user's range.
    range_proper    If true, use proper superset/subset operations.
                    No effect if not using set operations.
    """

    level = CriteriaDescriptor(lookup_function="lookup_level")
    level_dom = False
    level_domby = False
    level_incomp = False
    range_ = CriteriaDescriptor(lookup_function="lookup_range")
    range_overlap = False
    range_subset = False
    range_superset = False
    range_proper = False
    roles = CriteriaSetDescriptor("roles_regex", "lookup_role")
    roles_equal = False
    roles_regex = False

    def __init__(self, policy, **kwargs):
        super(UserQuery, self).__init__(policy, **kwargs)
        self.log = logging.getLogger(__name__)

    def results(self):
        """Generator which yields all matching users."""
        self.log.info("Generating user results from {0.policy}".format(self))
        self._match_name_debug(self.log)
        self.log.debug("Roles: {0.roles!r}, regex: {0.roles_regex}, "
                       "eq: {0.roles_equal}".format(self))
        self.log.debug("Level: {0.level!r}, dom: {0.level_dom}, domby: {0.level_domby}, "
                       "incomp: {0.level_incomp}".format(self))
        self.log.debug("Range: {0.range_!r}, subset: {0.range_subset}, overlap: {0.range_overlap}, "
                       "superset: {0.range_superset}, proper: {0.range_proper}".format(self))

        for user in self.policy.users():
            if not self._match_name(user):
                continue

            if self.roles and not match_regex_or_set(
                    user.roles,
                    self.roles,
                    self.roles_equal,
                    self.roles_regex):
                continue

            if self.level and not match_level(
                    user.mls_level,
                    self.level,
                    self.level_dom,
                    self.level_domby,
                    self.level_incomp):
                continue

            if self.range_ and not match_range(
                    user.mls_range,
                    self.range_,
                    self.range_subset,
                    self.range_overlap,
                    self.range_superset,
                    self.range_proper):
                continue

            yield user

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
diff Folder 0755
__init__.py File 2.79 KB 0644
boolquery.py File 2.19 KB 0644
boundsquery.py File 2.35 KB 0644
categoryquery.py File 1.88 KB 0644
commonquery.py File 2.11 KB 0644
constraintquery.py File 5.5 KB 0644
defaultquery.py File 2.8 KB 0644
descriptors.py File 7.47 KB 0644
devicetreeconquery.py File 2.72 KB 0644
dta.py File 21.4 KB 0644
exception.py File 5.97 KB 0644
fsusequery.py File 3.36 KB 0644
genfsconquery.py File 3.68 KB 0644
ibendportconquery.py File 3.52 KB 0644
ibpkeyconquery.py File 5.22 KB 0644
infoflow.py File 14.59 KB 0644
initsidquery.py File 2.79 KB 0644
iomemconquery.py File 4.44 KB 0644
ioportconquery.py File 4.46 KB 0644
mixins.py File 7.14 KB 0644
mlsrulequery.py File 4.59 KB 0644
netifconquery.py File 2.93 KB 0644
nodeconquery.py File 4.16 KB 0644
objclassquery.py File 3.78 KB 0644
pcideviceconquery.py File 3.04 KB 0644
perm_map File 87.16 KB 0644
permmap.py File 16.1 KB 0644
pirqconquery.py File 2.95 KB 0644
polcapquery.py File 1.64 KB 0644
policyrep.cpython-36m-x86_64-linux-gnu.so File 1.87 MB 0755
portconquery.py File 5.04 KB 0644
query.py File 1.69 KB 0644
rbacrulequery.py File 5.61 KB 0644
rolequery.py File 2.48 KB 0644
sensitivityquery.py File 2.65 KB 0644
terulequery.py File 9.11 KB 0644
typeattrquery.py File 2.62 KB 0644
typequery.py File 3.43 KB 0644
userquery.py File 4.68 KB 0644
util.py File 5.32 KB 0644