PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` 3 Elf@s&ddlZddlZddlZdZdZdddddd d d d g Zd Zy:ddlZiZej d#krZded<ej efdddeWnJyddl Z e e j d<Wn&ek rddlZeej d<YnXYnXddZd$ddZd%ddZd&ddZdad'ddZd(dd Zdd Zd)dd Zd!d Zd*d"d ZdS)+Nz_admin$z_role$get_all_interfacesget_interfaces_from_xml get_adminget_userget_interface_dictget_interface_format_text!get_interface_compile_format_text get_xml_fileinterface_compile_testzselinux-pythonTunicodez/usr/share/localezutf-8)Z localedirZcodeset_cCs,g}t|}x|jD]}|j|qW|S)z' Get all interfaces from given xml file)rkeysappend)pathZinterfaces_listidictkr/usr/lib/python3.6/interface.pyr4s cCs0ddlm}g}|s|}nt|}t|}|S)Nr) get_methods)sepolicyrr r)rrZall_interfacesxml_pathrrrr=s cCsg}|ry:t|}t|}x$|jD]}|jdr$|j|q$WWqtk r}z,tjjd|j j t |ftj dWYdd}~XqXn0x.t jD]"}|jdr|j|jddqW|S)z? Get all domains with an admin interface from installed policy.Z_adminz%s: %s Nr)r rrendswithrIOErrorsysstderrwrite __class____name__strexitrrsplit)rZ admin_listrrreirrrrIs  cCsg}|ryRt|}t|}x<|jD]0}|jdr$d|dd tjkr$|j|q$WWqtk r}z,tj j d|j j t |ftjdWYdd}~XqXnPxNtjD]B}tjdt|}t|dkrd|dtjkr|j|dqW|S) z1 Get all domains with SELinux user role interfaceZ_rolez %s_exec_tNz%s: %s rz(.*)%sr)r rrrrZ get_all_typesrrrrrrr r!r"rrefindallUSER_TRANSITION_INTERFACElen)rZ trans_listrrrr$r%mrrrr_s$  #/usr/share/selinux/devel/policy.xmlc CsXddl}ddl}trtSiag}d}||7}|d7}y|jj|rT|jjj|}n|jjj|}x|j dD]}x|j dD]}xV|j dD]H}x"|j dD]} |j | j dqW||j d jdgt|j d<g}qWxV|j d D]H}x"|j dD]} |j | j dqW||j d jd gt|j d<g}qWq~WqnWWntk rRYnXtS) NrzZ z Zlayermodule interfaceZparamnameZsummarytemplate)osZxml.etree.ElementTreeinterface_dictrisfileZetreeZ ElementTreeparseZ fromstringr)Z getiteratorrgetfindtextr) rr2ZxmlZ param_listrZtreelr,r%r$rrrrzs: cCs<t|}d|dj||ddj||djdf}|S)Nz %s(%s) %sz, r r )rjoinr#)r/rrinterface_textrrrrs0cCsLddlm}g}x6||dD]&}|j|j|d|dj|f}qW|S)Nr) test_modulerz%s(%s) z, ) templatesr>r dict_valuesr<)Zinterfaces_dictr/r>Z param_tmpr%r=rrrrs   compiletestcCs6ddlm}d}|tjd||j7}|t||7}|S)Nr)r>rZ TEMPLATETYPE)r?r>r(subZte_test_moduler)r/rr0r>terrrgenerate_compile_tes  rDc Csddl}yddlm}Wn tk r8ddlm}YnX|jj|d}|jj|jdd}|d||\}}|dkrt j j dt j j d|t j d n|SdS) z; Returns xml format of interfaces for given .if policy filerN)getstatusoutput/.zDpython /usr/share/selinux/devel/include/support/segenxml.py -w -m %sz- Could not proceed selected interface file. z %sr) r2commandsrE ImportError subprocessrdirnamebasenamer#rrrr")Zif_filer2rEZbasedirfilenamercoutputrrrr s  c Csdddddg}dg}yddlm}Wn tk rDddlm}YnXddl}d d d d d }t|}|jdd|kp||d|ksjttd|yft |dd}|j t |||j |d|d\} } | dkrt jj | t jj td|Wn<tk r:} zt jj td|| fWYdd} ~ XnXx@|jD]} |jj| rF|j| qFWnt jj td|dS)NZuserdomZkernelZcorenetfilesZdevr1r)rEzcompiletest.ppzcompiletest.tezcompiletest.fczcompiletest.if)pprCZfcifr zCompiling %s interfacerCwz,make -f /usr/share/selinux/devel/Makefile %srQz Compile test for %s failed. z% Compile test for %s has not run. %s z, Compiling of %s interface is not supported.)rHrErIrJr2rr#printr openrrDcloserrEnvironmentErrorvaluesrexistsremove) r/rZexclude_interfacesZexclude_interface_typerEr2Z policy_filesrfdrNrOr$vrrrr s2$ *)r )r)r)r)r-)r-)rA)r-)r(rrZADMIN_TRANSITION_INTERFACEr*__all__ZPROGNAMEgettextkwargs version_infoZinstallbuiltinsr!__dict__rIZ __builtin__r rrrrr3rrrrDr r rrrrsB     *