403Webshell
Server IP : 3.96.16.70  /  Your IP : 216.73.216.15
Web Server : Apache
System : Linux ip-172-31-26-103.ca-central-1.compute.internal 6.1.163-186.299.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Feb 24 16:35:42 UTC 2026 x86_64
User : ec2-user ( 1000)
PHP Version : 8.4.18
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /usr/lib/python3.9/site-packages/sepolicy/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3.9/site-packages/sepolicy/__pycache__/__init__.cpython-39.pyc
a

���c��@shddlZddlZddlZddlmZddlmZddlZddlZddl	Z	ddl
Z
ddlmZddl
mZddlmZddlmZddlmZddlmZddlmZdd	lmZdd
lmZddlmZdZzFddl Z iZ!ej"d
kr�de!d<e j#efddie!�ddi��Z$e$j Z%WnJzddl&Z&e'e&j(d<Wn&e)�yVddl*Z*e+e*j(d<Yn0Yn0dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6dZ7d Z8d!Z9d"Z:d#Z;d$Z<iZ=d%e=d&<d'e=d(<d)e=d*<d)e=d+<d)e=d,<d-e=d.<d/e=d0<d1e=d2<d3e=d4<d3e=d5<d6e=d7<d6e=d8<d9e=d:<d;e=d<<iZ>e%d=�e>d><e%d?�e>d@<e%dA�e>dB<e%dC�e>dD<e%dE�e>dF<e%dG�e>dH<e%dI�e>dJ<e%dK�e>dL<iZ?d>e?dM<d@e?dN<dBe?dO<dDe?dP<dFe?dQ<dHe?dR<dJe?dS<dLe?dT<da@daAdaBdaCdaDgaEdaFdaGdaHdaIdaJdaKdaLdaMdaNdaOdaPdaQdaRdaSdaTdaUdaVdaWdUdV�ZXd�dXdY�ZYdZd[�ZZd\d]�Z[d^d_�Z\d`da�Z]d�dbdc�Z^ddde�Z_d�dfdg�Z`dhdi�Zadjdk�Zbdldm�Zcdndo�Zddpdq�Zedrds�Zfdtdu�Zggfdvdw�Zhgfdxdy�Zidzd{�Zje�k�fd|d}�Zle�k�fd~d�Zme�k�fd�d��Zne�k�fd�d��Zod�d��Zpd�d��Zqd�d��Zrd�d��Zsd�d��Ztd�d��Zud�d��Zvd�d��Zwd�d��Zxd�d��Zyd�d��Zzd�d��Z{d�d��Z|d�d��Z}d�d��Z~d�d��Zd�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�e�fd�d��Z�d�d��Z�d�dÄZ�d�dńZ�d�dDŽZ�d�dɄZ�d�d˄Z�d�d̈́Z�d�d�dЄZ�d�d�d҄Z�d�dԄZ�d�dքZ�d�d؄Z�d�dڄZ�dS)��N)�	BoolQuery)�PortconQuery)�
SELinuxPolicy)�
ObjClassQuery)�
RBACRuleQuery)�	RoleQuery)�TERuleQuery)�TypeAttributeQuery)�	TypeQuery)�	UserQueryzselinux-python)�T�unicodeZ	localedirz/usr/share/localeZfallback�_��r�����allowZ
auditallowZ
neverallowZ	dontaudit�source�target�permlist�classZ
transitionZ
role_allowZetc_tz/etcZtmp_tz/tmpZunit_file_tz/usr/lib/systemd/systemz/lib/systemd/systemz/etc/systemd/systemZvar_cache_tz
/var/cacheZ	var_lib_tz/var/libZlog_tz/var/logZ	var_run_tz/var/runz/runZ
var_lock_tz	/run/lockz
/var/run/lockZvar_spool_tz
/var/spoolZ	content_tz/var/wwwz	all files�azregular file�fZ	directory�dzcharacter device�czblock device�bzsocket file�sz
symbolic link�lz
named pipe�p�z--z-dz-cz-bz-sz-lz-pcCs>|�dd�d}zt|�|fWSty8d|fYS0dS)Nz/policy.rr)�rsplit�int�
ValueError)Zpolicy_path�	extension�r'�5/usr/lib/python3.9/site-packages/sepolicy/__init__.py�policy_sortkey�s
r)�/cCsNz0|t��}t�d|�}|jtd�|dWSYn0ttd���dS)Nz%s.*��key���zNo SELinux Policy installed)�selinuxZselinux_binary_policy_path�glob�sortr)r%r)�root�path�policiesr'r'r(�get_installed_policy�s
r4cCs2t�dt��|f�}|sdS|jtd�|dS)z?Get the path to the policy file located in the given store namez%s%s/policy/policy.*Nr+r-)r/r.Zselinux_pathr0r))�storer3r'r'r(�get_store_policy�s
�r6cCsRdadadadadadadadadazt	|�a
Wnttd�|��Yn0dS)NzFailed to read %s policy file)
�all_domains�all_attributes�bools�	all_types�role_allowsZusers�roles�
file_types�
port_typesr�_polr%r��policy_filer'r'r(�policy�s
rBcCst|�}|sdSt|�dS�N)r6rB)r5rAr'r'r(�load_store_policy�srDcCst�}t|�dSrC)r4rBr@r'r'r(�init_policy�srEcCs�ts
t�|tkrbtt�}||_t|���}|rTt|�dkrTd|_||_t|���}dd�|D�S|t	kr�t
t�}|r|||_dd�|��D�S|tkr�tt�}|r�||_dd�|��D�S|t
k�rHtt�}|�rdd�|�d�D�}t|�d	k�r�||_n t|�dk�r|d
|d
f|_tj�r6dd�|��D�Sdd�|��D�S|tk�r�tt�}|�rf||_tj�r�d
d�|��D�Sdd�|��D�S|tk�r�tt�}|�r�||_dd�|��D�S|tk�r�tt�}|�r�||_dd�|��D�Std��dS)Nrc	ssB|]:}ttt|����t|�t|j�ttt|����d�VqdS))�aliases�nameZ
permissive�
attributesN)�list�map�strrF�boolZispermissiverH��.0�xr'r'r(�	<genexpr>�s��zinfo.<locals>.<genexpr>css:|]2}t|�ttt|����ttt|����d�VqdS))rGr<�typesN)rKrIrJ�expandrQrMr'r'r(rP�s
��css*|]"}t|�ttt|����d�VqdS))rGrQN)rKrIrJrRrMr'r'r(rP�s��cSsg|]}t|��qSr')r$)rN�ir'r'r(�
<listcomp>��zinfo.<locals>.<listcomp>�-rrcss<|]4}|jjt|j�t|jj�t|jj�|jjd�VqdS))�high�protocol�range�type�lowN)�portsrWrKrX�contextZrange_�type_r[rMr'r'r(rP�s�

�css2|]*}|jjt|j�t|jj�|jjd�VqdS))rWrXrZr[N)r\rWrKrXr]r^r[rMr'r'r(rPs�
�css8|]0}t|j�t|�ttt|j��t|j�d�VqdS))rYrGr<�levelN)rKZ	mls_rangerIrJr<Z	mls_levelrMr'r'r(rPs��css(|] }t|�ttt|j��d�VqdS))rGr<N)rKrIrJr<rMr'r'r(rPs��css|]}t|�|jd�VqdS))rG�stateN)rKr`rMr'r'r(rPs��css"|]}t|�t|j�d�VqdS))rGrN)rKrI�permsrMr'r'r(rP(s��zInvalid type)r?rE�TYPEr
rGrI�results�len�alias�ROLEr�	ATTRIBUTEr	�PORTr�splitr\�mls�USERr�BOOLEANr�TCLASSrr%)�setyperG�qrcr\r'r'r(�info�s����
��
��
�
�rpcCs(t|j�t|j�t|j�t|j�d�}z<i}|jjD]}|j|t|�<q4|jjfi|��|j	k}Wnt
yxd}Yn0||d<zttt|j
��|d<Wnt
y�Yn0zt|j�|d<Wnt
y�Yn0zt|j�|fg|d<Wnt
y�Yn0z|j|d<Wnt
�y"Yn0|S)N)rZrrrT�enabledr�	transtype�boolean�filename)rK�ruletyperr�tclassZconditional�booleansr`ZevaluateZconditional_block�AttributeErrorrIrJra�defaultrt)ZrulerZ	boolstatersrqr'r'r(�_setools_rule_to_dict1s<�
rzc
Cs�ts
t�|si}tttttttg�}|D]}||vr*t	dd�
|���q*d}t|vrbt|t�}d}t
|vrzt|t
�}d}t|vr�t|t��d�}g}g}t|vr�|�t�t|vr�|�t�t|vr�|�t�t|vr�|�t�t|�dk�r2tt||||d�}	t|v�r|t|	_|dd�|	��D�7}t|v�r�gd�}
tt|
|||d�}	t|v�rj|t|	_|d	d�|	��D�7}t|v�r�d
g}tt||||d�}	|	��D]"}|�t|j�t|j�d���q�|S)NzType has to be in %s� �,r)rurrrvcSsg|]}t|��qSr'�rzrMr'r'r(rT�rUzsearch.<locals>.<listcomp>)�type_transitionZtype_changeZtype_membercSsg|]}t|��qSr'r}rMr'r'r(rT�rUr)rr)r?rE�set�ALLOW�
AUDITALLOW�
NEVERALLOW�	DONTAUDIT�
TRANSITION�
ROLE_ALLOWr%�join�SOURCErK�TARGET�CLASSri�appendrdr�PERMSrarcrrr)
rQZseinfoZvalid_typesrnrrrvZtoretZtertypesroZrtypesZratypes�rr'r'r(�search^sz



�


�


��r�cs�i}g}�g��g�z(�tt�fdd�t���dd7�WnYn0z(�tt�fdd�t���dd7�WnYn0tdd�t���fdd�t���}z<|D]2}|�|d|d	d
��||vr�|�|�i}q�Wnty�|YS0|S)Ncs|d�kS�NrGr'�rO)�srcr'r(�<lambda>�rUz"get_conditionals.<locals>.<lambda>rrHcs|d�kSr�r'r�)�destr'r(r��rUcSs|SrCr')�yr'r'r(r��rUcs2|d�vo0|d�vo0t���|t�o0d|vS)Nrrrs)r�issubsetr�r�)�	dest_list�perm�src_listr'r(r��s
��rrs)rrs)rI�filter�get_all_types_inforJ�get_all_allow_rules�updater��KeyError)r�r�rvr�ZtdictZtlistZallowsrSr')r�r�r�r�r�r(�get_conditionals�s0((�


r�cCsJd}|D]}|dddrd}q&qtd�|d�ttdd	�|���fS)
NFrsrrTz-- Allowed %s [ %s ]z || cSs$d|ddd|dddfS)Nz%s=%drsrrr'r�r'r'r(r��rUz.get_conditionals_format_text.<locals>.<lambda>)rr�rrJ)ZcondrqrOr'r'r(�get_conditionals_format_text�sr�cCsttt|��ddS)NrrQ)rIrprg)Z	attributer'r'r(�get_types_from_attribute�sr�c	Cs�g}i}t�D]}|�t|��r|�|�qt�}|D]D}z$||dt||df||<Wq6tyxg||<Yq60q6|S�N�regex�ftype)�get_all_file_types�
startswith�gen_short_namer��
get_fcdict�
file_type_strr�)rn�flist�mpathsr�fcdictr'r'r(�get_file_types�s
$r�c	Cs<|s|Szttt|��dWSttfy6|YS0dS)z�Return the real name of a type

    * If 'name' refers to a type alias, return the corresponding type name.
    * Otherwise return the original name (even if the type does not exist).
    rGN)�nextrprb�RuntimeError�
StopIteration�rGr'r'r(�get_real_type_name�sr�c
	Cs.t�}g}i}ttg|ddgdd��}|dus:t|�dkr>|St�}ddg}|D]�}|d|vrbqPd	|vrt|d	stqP|d�d
�r�|d|vr�qP|d|vr�|d|kr�|�|d�qPt|d�D]}||vr�|�|�q�qP|D]F}	z$||	dt||	df||	<Wq�t	�y&g||	<Yq�0q�|S)
N�open�write�file)rrrrZ	proc_typeZsysctl_typerrq�_tr�r�)
r�r�r�rdr��endswithr�r�r�r�)
rnr=Z
all_writesr�rr�rHrS�trr'r'r(�get_writable_files�s:$r�cs�tj�|�r|gSzt�d|��Wntd|�gYS0|}|�d�r^|dd�d}tj�|��z�ddkr��d7�Wnty�td�Yn0z6t�d|���fdd	�t	�fd
d�t�
���D�WSgYS0dS)Nz%s$zbad reg:z(/.*)?i����r*r-ztry failed got an IndexErrorcsg|]}��|�r|�qSr')�matchrM)�patr'r(rT/rUzfind_file.<locals>.<listcomp>cs�|SrCr'r�)r2r'r(r�/rUzfind_file.<locals>.<lambda>)�osr2�exists�re�compile�printr��dirname�
IndexErrorrJ�listdir)Zregr!r')r�r2r(�	find_files*


(r�cCsVt|�}|��D]@}|�d�r||vr||D] }t|�D]}|Sq.qdS)N�_exec_t)�get_entrypoints�keysr�r�)�domain�exclude_listZexecutable_files�exer2rr'r'r(�find_all_files4sr�cCs`t�}zB|�d�rF||vrF||dD]}t|�D]}|WSq&WntyZYn0dS)Nr�r�)r�r�r�r�)r�r�r�r2rr'r'r(�find_entrypoint_path>sr�c
Cs�zht|d��J}|D]4}|��}|r|d�d�s|d|d�||d<qWd�n1s\0YWn2ty�}z|jtjkr��WYd}~n
d}~00|S)Nr�r�#r)Zequiv�modify)r�rir��OSError�errno�ENOENT)Zedict�fc_pathr��fd�err'r'r(�read_file_equivJs:r�cCs"trtSiatt|ddd�atS)Nz.subsT�r�)�file_equiv_modifiedr��r�r'r'r(�get_file_equiv_modifiedWs
r�cCs&trtSt|�att|ddd�atS)Nz
.subs_distFr�)�
file_equivr�r�r�r'r'r(�get_file_equiv`s
r�c
Cs�trtSgaz:t|dd��}|��}Wd�n1s:0YWn6ty|}z|jtjkrd�gWYd}~Sd}~00|D]b}|��}t|�dkr�q�z4t|�dkr�t|d}nd}t�	|d|f�Wq�t
y�Yq�0q�tS)N�.localr�rrrr)�local_filesr��	readlinesr�r�r�rird�trans_file_type_strr�r�)r�r��fcr�rS�recr�r'r'r(�get_local_file_pathsis,*r�c
Cs�trtSt|d�}|��}|��t|dd�}||��7}|��iaz>t|dd��}||��7}Wd�n1sz0YWn2ty�}z|jtjkr��WYd}~n
d}~00|D]�}|��}zjt|�dkr�t	|d}nd}|d�d�d}|tv�rt|d	�
|d
�n|d
g|d�t|<Wq�Yq�0q�d	dgitd
<d	dgitd<d	dgitd<d	dgitd<d	dgitd<d	dgitd<d	dgitd<d	dgitd<d	dgitd<tS)Nr�z	.homedirsr�rrrr-�:r�r)r�r�z
all log filesZlogfilezall user tmp filesZ
user_tmp_typezall user home filesZuser_home_typezall virtual image filesZvirt_image_typezBall files on file systems which do not support extended attributesZ	noxattrfsz)all sandbox content in tmpfs file systemsZsandbox_tmpfs_typez&all user content in tmpfs file systemsZuser_tmpfs_typezall files on the system�	file_typezAuse this label for random content that will be shared using sambaZ
samba_share_t)r�r�r��closer�r�r�rirdr�r�)r�r�r�r�rSr�r�r�r'r'r(r��sJ
.
r�c	s<z �fdd�ttgddi�D�WSttfy6Yn0dS)Ncsg|]}|d�kr|�qS)rrr'rM�rnr'r(rT�rUz(get_transitions_into.<locals>.<listcomp>r�process�r�r��	TypeErrorrxr�r'r�r(�get_transitions_into�s
 r�c	Cs0zttg|dd��WSttfy*Yn0dS)Nr��rrr�r�r'r'r(�get_transitions�s
r�c	Cs8zdd�ttgd|i�D�WSttfy2Yn0dS)NcSsg|]}|ddkr|�qS)rr�r'rMr'r'r(rT�rUz(get_file_transitions.<locals>.<listcomp>rr�r�r'r'r(�get_file_transitions�s
r�cCs\g}ttgd|i�}|D]>}d|vrz$|dD]}||vr.|�|�q.WqYq0q|S)Nrrs)r�r�r�)rnrsZboollistrr!rr'r'r(�get_boolean_rules�sr�cCstd�S)NZ
entry_type)r�r'r'r'r(�get_all_entrypoints�sr�cs.tttg�dgdgd�}�fdd�|��D�S)Nr��
entrypoint)rurrvracs g|]}|j�krt|j��qSr')rrKrrMr�r'r(rT�rUz(get_entrypoint_types.<locals>.<listcomp>)rr?r�rc)rnror'r�r(�get_entrypoint_types�s�r�c
sht�|�d�d�d�z2tt�fdd�ttgddd����}|d	d
WSttt	fybYn0dS)Nrr�rcs|d�kS)Nrr'r��r�r'r(r��rUz$get_init_transtype.<locals>.<lambda>�init_tr�r�rrr)
r.Z
getfileconrirIr�r�r�r�rxr�)r2�entrypointsr'r�r(�get_init_transtype�s$r�c	Cs\ttdgddgd�}g}|��D]6}z|j|kr<|�|j�Wq tyTYq Yq 0q |S�Nr~r�r�)rurrv)rr?rcryr�rrx)rrror�rSr'r'r(�get_init_entrypoint�s�
r�c	Cs~ttdgddgd�}i}|��D]X}z<t|j�}||vrN||�t|j��nt|j�g||<Wq tyvYq Yq 0q |Sr�)rr?rcrKryr�rrx)ror�rSrrr'r'r(�get_init_entrypoints_str�s�
r�c	CsHz,tdd�ttgd|dd���}t|�dWSttfyBYn0dS)NcSs|dS)Nrrr'r�r'r'r(r�rUz,get_init_entrypoint_target.<locals>.<lambda>r�r�)rrrr)rJr�r�rIr�r�)r�r�r'r'r(�get_init_entrypoint_targetsr�c	Cs\t�}i}t|�D]D}z$||dt||df||<WqtyTg||<Yq0q|Sr�)r�r�r�r�)rnr�r�rr'r'r(r�s$r�cCs�tt�dkrtSt�t��}z4t|�}t��}|�|�t	|j�
��a|��Wn&tj
�d|�t�d�Yn0t��tS)Nrz#could not open interface info [%s]
r)rd�methods�gen_interfaces�defaults�interface_infor��
interfacesZInterfaceSetZ	from_filerIr�r��sys�stderrr��exitr0)�fnr��ifsr'r'r(�get_methods%s
rcCstdurdd�tt�D�atS)NcSsg|]}|d�qSr�r'rMr'r'r(rT=rUz!get_all_types.<locals>.<listcomp>)r:rprbr'r'r'r(�
get_all_types:srcCstdurttt��atSrC)�all_types_inforIrprbr'r'r'r(r�@sr�cCs&tdur"ttttd��dd�atS)NZ
userdomainrrQ)�
user_typesrIrprgr'r'r'r(�get_user_typesFsrcCsttrtSiatttgd�}|��D]L}t|j�}t|j�}|dks"|dkrLq"|tvrdt|�|�q"|gt|<q"tS)N)ruZsystem_r)	r;rr?r�rcrKrrr�)ror�r�Ztgtr'r'r(�get_all_role_allowsMs

rcCsvddl}g}tt��}|D]V}|�dd|�}t|�dkrt|�dd|d��dkr|d|vr|�|d�q|S)Nrz(.*)%sz_exec_t$z_initrc$)r��sortedr�findallrdr�)r�r7rQrS�mr'r'r(�get_all_entrypoint_domainsas
(rcCs�zddlm}Wnty.ddlm}Yn0t��}t��}z"t�|�j	t�|�j	kr`WdSWnt
ytYn0t��dkr�tt
d���t|d�d�dS)Nr)�getstatusoutputzEYou must regenerate interface info by running /usr/bin/sepolgen-ifgenz/usr/bin/sepolgen-ifgenr)Zcommandsr�ImportError�
subprocessr�r��headersr��stat�st_mtimer��getuidr%rr�)rZifilerr'r'r(r�ms
r�cCs�trttfSiaiatt�D]�}|d|dkr>t|d�}ndt|d�t|d�f}|d|dftvr�t|d|df�|�n|gt|d|df<d|vr�|d|dft|d|d|df<q|dt|d|d|df<qttfS)Nr[rWz%s-%srZrXrY)�portrecs�
portrecsbynumrprhrKr�)rS�portr'r'r(�
gen_port_dicts( rcCs"tsttttd��dd�atS)Nr�rrQ)r7rIrprgr'r'r'r(�get_all_domains�srcCs0trtStst�tt�}dd�|��D�atS)NcSs g|]}t|�dkrt|��qS)Zobject_r)rKrMr'r'r(rT�rUz!get_all_roles.<locals>.<listcomp>)r<r?rErrc)ror'r'r(�
get_all_roles�srcCs<ts8ttt��atjr8tD]}d�|d�d��|d<qtS)Nr"rYr{)�selinux_user_listrIrprkr?rjr�rir�r'r'r(�get_selinux_users�src
Cs�trtStt��d�}|��}|��ga|�d�D]V}|��}t|�dks4|�	d�rXq4|�d�}t�
|d|dd�|dd��d��q4tS)	Nr��
rr�r�rr)rGZseuserrj)�login_mappingsr�r.Zselinux_usersconf_path�readr�ri�striprdr�r�r�)r��bufrrOr'r'r(�get_login_mappings�s
*r cCsttdd�t���S)NcSs|dSr�r'r�r'r'r(r��rUzget_all_users.<locals>.<lambda>)rrJrr'r'r'r(�
get_all_users�sr!cCs&trtSttttd��dd�atS)Nr�rrQ)r=rIrrprgr'r'r'r(r��sr�cCs&trtSttttd��dd�atS)NZ	port_typerrQ)r>rIrrprgr'r'r'r(�get_all_port_types�sr"cCststtt��atSrC)r9rIrprlr'r'r'r(�
get_all_bools�sr#cCsd�|dt|���d��S)Nr{r)r�rdri)rZtrimr'r'r(�prettyprint�sr$cCs|SrCr')rr'r'r(�markup�sr%cCsVd||�}|�d�r(|dt|d�S|�d�rD|dt|d�S|�d�r`|dt|d�S|�d�r||d	t|d�S|�d
�r�|dt|d�S|�d�r�|dt|d�S|�d
�s�|�d�r�|dS|�d�r�|dS|�d�r�|dt|d�S|�d��r|dt|d�S|�d��r:|dt|d�S|�d��rX|dt|d�S|�d��r~|d|dtd��S|�d��r�|dt|d�S|�d��r�|dt|d�S|�d��r�|dt|d�S|�d ��r�|dt|d �S|�d!��r|d"t|d!�S|�d#��r2|d$t|d#�S|�d%��rP|d&t|d%�S|�d'��rn|d(t|d'�S|�d)��r�|d*t|d)�S|�d+��r�|d$t|d+�S|�d,��r�|d-t|d,�S|�d.��r�|d/t|d.�S|�d0��r|d1t|d0�S|�d2��r"|d3t|d2�S|�d4��r@|d1t|d4�S|�d5��r^|d1t|d5�S|�d6��r||d1t|d6�S|�d5��r�|d7t|d5�S|�d8��r�|d9t|d8�S|�d:��r�|d;t|d:�S|�d<��r�|d=t|d<�S|�d>��r|d?t|d>�S|�d@��r&|dAS|�dB��rD|dCt|dB�S|dDt|dE�S)FNz+Set files with the %s type, if you want to Z
_var_run_tz8store the %s files under the /run or /var/run directory.Z_pid_tz,store the %s files under the /run directory.Z
_var_lib_tz0store the %s files under the /var/lib directory.Z_var_tz,store the %s files under the /var directory.Z_var_spool_tz2store the %s files under the /var/spool directory.Z_spool_tZ_cache_tZ_var_cache_tz/store the files under the /var/cache directory.Z	_keytab_tz)treat the files as kerberos keytab files.Z_lock_tzEtreat the files as %s lock data, stored under the /var/lock directoryZ_log_tzKtreat the data as %s log data, usually stored under the /var/log directory.Z	_config_tzRtreat the files as %s configuration data, usually stored under the /etc directory.Z_conf_tr�z,transition an executable to the %s_t domain.Z_cgi_content_tz"treat the files as %s cgi content.Z
_rw_content_tz)treat the files as %s read/write content.Z_rw_tZ_write_tZ_db_tz'treat the files as %s database content.Z
_ra_content_tz*treat the files as %s read/append content.Z_cert_tz'treat the files as %s certificate data.Z_key_tztreat the files as %s key data.Z	_secret_tz"treat the files as %s secret data.Z_ra_tZ_ro_tz(treat the files as %s read/only content.Z
_modules_tztreat the files as %s modules.Z
_content_tztreat the files as %s content.Z_state_tz!treat the files as %s state data.Z_files_tZ_file_tZ_data_tztreat the data as %s content.Z_tmp_tz1store %s temporary files in the /tmp directories.Z_etc_tz'store %s files in the /etc directories.Z_home_tz+store %s files in the users home directory.Z_tmpfs_tz&store %s files on a tmpfs file system.Z_unit_file_tz#treat files as a systemd unit file.Z_htaccess_tz#treat the file as a %s access file.ztreat the files as %s data.r�)r�r$rd)rr%Ztxtr'r'r(�get_description�s�







r&cCs"tstttdd�tt����atS)NcSs|dSr�r'r�r'r'r(r�MrUz$get_all_attributes.<locals>.<lambda>)r8rIrrJrprgr'r'r'r(�get_all_attributesJsr'cCs |D]}||tvrdSqdS)NFT)r�)�dictrar�r'r'r(�_dict_has_permsQsr)cCspt�}|�d�r&t|�}|dd�}n|}|d|vrBtd|��|ddkr`|dd�d}n|d}||fS)Nr����zdomain %s_t does not existr-rr)rr�r�r%)rnr7�
domainname�
short_namer'r'r(r�Xs
r�cCststtg�atSrC)�all_allow_rulesr�r�r'r'r'r(r�hs
r�cCststttg��atSrC)�all_transitionsrIr�r�r'r'r'r(�get_all_transitionsnsr/c
s
g}g}t��\}}tdd�t�fdd�t���D]�}|D]�}t|t�sJq:zt�|d�}Wntyv|d}Yn0|d�	|�s�|d�	|�r�|d|f|vr�|d|f|vr�|�
|d|f�q:|d|f|vr:|d|f|vr:|�
|d|f�q:q2||fS)NcSs|dS)Nrsr'r�r'r'r(r�xrUzget_bools.<locals>.<lambda>csd|vo|d�kS)Nrsrr'r�r�r'r(r�xrUrr)r�rJr�r��
isinstance�tupler.Zsecurity_get_boolean_activer�r�r�)rnr9Zdomainboolsr+r,rSrrqr'r�r(�	get_boolsts""
""r2cCstst��datS)Nr)rwr.Zsecurity_get_boolean_namesr'r'r'r(�get_all_booleans�sr3�#/usr/share/selinux/devel/policy.xmlcCsNzt�|�}|��}|��Wn*tyHt|�}|��}|��Yn0|SrC)�gzipr�rr��IOError)r2r�rr'r'r(�
policy_xml�s
r7cCs�trtSddl}ia�z�|jj�t|��}|�d�D�]}|�d�D]�}|�d�D]J}|�d��d�j�	d�}t
�dd|�}|�d	�|�d
�|ft|�d	�<qR|�d�D]J}|�d��d�j�	d�}t
�dd|�}|�d	�|�d
�|ft|�d	�<q�qD|�d�D]F}|�d��d�j�	d�}t
�dd|�}d|�d
�|ft|�d	�<�qq4|�d�D]F}|�d��d�j�	d�}t
�dd|�}d|�d
�|ft|�d	�<�qTWnt
�y�Yn0tS)
NrZlayer�moduleZtunable�descr!rr{rGZdftvalrL�global)�
booleans_dictZxml.etree.ElementTreeZetreeZElementTreeZ
fromstringr7r	�find�textrr��sub�getr6)r2ZxmlZtreer r
rr9rSr'r'r(�
gen_bool_dict�s6"$ "r@cCs*t�}||vrt||d�Std�SdS)Nr�unknown)r@r)rsr;r'r'r(�boolean_category�srBcCsJt�}||vrt||d�S|�d�}d|dd�|dd��fSdS)NrrzAllow %s to %srr{r)r@rrir�)rsr;r9r'r'r(�boolean_desc�s

rCcCsXd}z8td��}|����}Wd�n1s00YWntyRd}Yn0|S)Nr"z/etc/system-releaseZMisc)r��readline�rstripr6)Zsystem_releaserr'r'r(�get_os_version�s
.
rFcCsPdadadadadadadadadada	da	da
dadada
dadadadadSrC)r8r7r:rwr;r9r�r=r�r�rrr>r;r<rrrr'r'r'r(�reinit�s&rG)r*)N)N)r4)r4)�r�r.r/Zsepolgen.defaultsr�Zsepolgen.interfacesr�r�r�r�r5Zsetools.boolqueryrZsetools.portconqueryrZsetools.policyreprZsetools.objclassqueryrZsetools.rbacrulequeryrZsetools.rolequeryrZsetools.terulequeryrZsetools.typeattrqueryr	Zsetools.typequeryr
Zsetools.userqueryrZPROGNAME�gettext�kwargs�version_infoZtranslationr�r�builtinsrK�__dict__r
Z__builtin__r
rbrfrgrhrkrlrmr�r�r�r�r�r�r�r�r�r�ZDEFAULT_DIRSr�r�r?r�r�r�r�r�r:rrr;rrr7r<rrr=r>r9r8rwr;r-r.r)r4r6rBrDrErprzr�r�r�r�r�r�r�r�r�r�r�Zselinux_file_context_pathr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr�rrrr�rrrrr r!r�r"r#r$r%r&r'r)r�r�r/r2r3r7r@rBrCrFrGr'r'r'r(�<module>sf

���
	



m-
K!
$

		.	
	
]

	

Youez - 2016 - github.com/yon3zu
LinuXploit