shell bypass 403
3
�^� � @ sV d dl Z d dlZddlmZ ddlmZ ddlmZ ddlm Z G dd� dee�Z
dS ) � N� )�CriteriaSetDescriptor)� MatchName)�PolicyQuery)�match_regex_or_setc s: e Zd ZdZedd�ZdZdZ� fdd�Zdd� Z � Z
S ) � RoleQuerya�
Query SELinux policy roles.
Parameter:
policy The policy to query.
Keyword Parameters/Class attributes:
name The role name to match.
name_regex If true, regular expression matching
will be used on the role names.
types The type to match.
types_equal If true, only roles with type sets
that are equal to the criteria will
match. Otherwise, any intersection
will match.
types_regex If true, regular expression matching
will be used on the type names instead
of set logic.
�types_regexZlookup_typeFc s$ t t| �j|f|� tjt�| _d S )N)�superr �__init__�loggingZ getLogger�__name__�log)�self�policy�kwargs)� __class__� �!/usr/lib64/python3.6/rolequery.pyr
6 s zRoleQuery.__init__c c s� | j jdj| �� | j| j � | j jdj| �� xJ| jj� D ]<}| j|�sLq<| jrrt t
|j� �| j| j| j� rrq<|V q<W dS )z*Generator which yields all matching roles.z'Generating role results from {0.policy}z?Types: {0.types!r}, regex: {0.types_regex}, eq: {0.types_equal}N)
r
�info�formatZ_match_name_debug�debugr ZrolesZ_match_name�typesr �set�types_equalr )r �rr r r �results: s
zRoleQuery.results)r �
__module__�__qualname__�__doc__r r r r r
r �
__classcell__r r )r r r s
r )r �reZdescriptorsr Zmixinsr Zqueryr �utilr r r r r r �<module> s