403Webshell
Server IP : 182.53.201.61  /  Your IP : 216.73.217.175
Web Server : Apache/2.2.15 (Fedora)
System : Linux km10.dyndns.org 2.6.31.5-127.fc12.i686.PAE #1 SMP Sat Nov 7 21:25:57 EST 2009 i686
User : apache ( 48)
PHP Version : 5.3.3
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/python2.6/site-packages/sepolgen/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python2.6/site-packages/sepolgen/interfaces.pyo
Ñò
†·Jc	@s¼dZddkZddkZddkZddkZddkZddklZddd„ƒYZd„Z	d„Z
d„Zd	„Zd
„Z
ddd„ƒYZd
dd„ƒYZdS(s7
Classes for representing and manipulating interfaces.
iÿÿÿÿN(t_tParamcBsSeZdZd„Zd„Zd„ZeeeƒZedd„ƒZd„Z	RS(s;
    Object representing a paramater for an interface.
    cCs1d|_ti|_tiƒ|_t|_dS(Nt(t_Param__namet	refpolicytSRC_TYPEttypetIdSettobj_classestTruetrequired(tself((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pyt__init__$s	cCs1ti|ƒptd|ƒ‚n||_dS(NsName [%s] is not a param(taccesst
is_idparamt
ValueErrorR(Rtname((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pytset_name*scCs|iS(N(R(R((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pytget_name/stfgetcCst|idƒS(i(tintR(R((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pyt<lambda>4scCs*d|iti|idi|iƒfS(Ns0<sepolgen.policygen.Param instance [%s, %s, %s]>t (RRtfield_to_strRtjoinR(R((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pyt__repr__6s(
t__name__t
__module__t__doc__RRRtpropertyRtnumR(((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pyR s			cCs:d}||joÝ||}||ijodS|tijp|tijo”|itijp|itijond}|o|ig}ng}x8ti|i|ƒD]!}|ti	jod}Pq±q±Wti|_qd}n)t
ƒ}||_||_|||i<|o|ii|iƒn|S(Nii(
RRRtTGT_TYPEt	obj_classt	itertoolstchainRtobjectmodeltimplicitly_typed_objectsRRtadd(RRtavtparamstrettptavobjstobj((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pyt__param_insert<s2

 &	
			
cCs!d}t}ti|iƒo0t|iti||ƒdjo
d}qOnti|iƒo0t|iti||ƒdjo
d}q’nti|i	ƒo0t|i	ti
||ƒdjo
d}qÕnxE|iD]:}ti|ƒo$t|tƒdjo
d}qqßqßW|S(sjExtract the paramaters from an access vector.

    Extract the paramaters (in the form $N) from an access
    vector, storing them as Param objects in a dictionary.
    Some attempt is made at resolving conflicts with other
    entries in the dict, but if an unresolvable conflict is
    found it is reported to the caller.

    The goal here is to figure out how interface paramaters are
    actually used in the interface - e.g., that $1 is a domain used as
    a SRC_TYPE. In general an interface will look like this:

    interface(`foo', `
       allow $1 foo : file read;
    ')

    This is simple to figure out - $1 is a SRC_TYPE. A few interfaces
    are more complex, for example:

    interface(`foo_trans',`
       domain_auto_trans($1,fingerd_exec_t,fingerd_t)

       allow $1 fingerd_t:fd use;
       allow fingerd_t $1:fd use;
       allow fingerd_t $1:fifo_file rw_file_perms;
       allow fingerd_t $1:process sigchld;
    ')

    Here the usage seems ambigious, but it is not. $1 is still domain
    and therefore should be returned as a SRC_TYPE.

    Returns:
      0  - success
      1  - conflict found
    ii(
tFalseR
Rtsrc_typeR,RRttgt_typeRR t	OBJ_CLASStpermstPERM(R&R'R(t	found_srctperm((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pytav_extract_paramshs"$"""
cCs1ti|iƒot|itid|ƒSdS(N(R
RtroleR,RtROLEtNone(R6R'((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pytrole_extract_params¡scs¶‡fd†}d}||itiƒo
d}n||itiƒo
d}n||itiƒo
d}nti|i	ƒo*t
|i	tidˆƒo
d}q²n|S(NcsOd}xB|D]:}ti|ƒo$t||dˆƒo
d}qGq
q
W|S(Nii(R
RR,R8(tsetRR(tx(R'(s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pytextract_from_set¦sii(
t	src_typesRRt	tgt_typesRRR0R
Rt	dest_typeR,t	DEST_TYPER8(truleR'R<R(((R's7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pyttype_rule_extract_params¥s


cCsUd}xH|iD]=}ti|ƒo't|tid|ƒo
d}qMqqW|S(Nii(targsR
RR,RRR8(tifcallR'R(targ((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pytifcall_extract_params¾s
tInterfaceVectorcBsAeZdd„Zd„Zd„Zd„Zd„Zd„ZRS(cCsOt|_d|_tiƒ|_h|_|o|i|ƒnt|_dS(NR(	R	tenabledRR
tAccessVectorSetR'tfrom_interfaceR-texpanded(Rt	interface((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pyRËs			c
Cs|i|_xu|iƒD]g}|itiijoqnd|ijoqnti|ƒ}x|D]}|i|ƒqiWqWx+|i	ƒD]}t
||iƒoq‘q‘Wx+|iƒD]}t
||iƒoq¿q¿Wx+|iƒD]}t||iƒoqíqíWdS(Nt	dontaudit(Rtavrulest	rule_typeRtAVRuletALLOWR
tavrule_to_access_vectorstadd_avtrolesR9R't	typerulesRBtinterface_callsRF(RRLtavruletavsR&R6RARD((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pyRJÜs.



cCs1t||iƒdjon|ii|ƒdS(Ni(R5R'R
RS(RR&((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pyRSÿscCsNg}|id|iƒx$|iD]}|it|ƒƒq$Wdi|ƒS(Ns[InterfaceVector %s]s
(tappendRR
tstrR(RtsR&((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pyt	to_strings
cCs
|iƒS(N(R(R((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pyt__str__scCsd|i|ifS(Ns<InterfaceVector %s:%s>(RRH(R((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pyRsN(	RRR8RRJRSR\R]R(((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pyRGÊs	#			tInterfaceSetcBszeZdd„Zd„Zd„Zd„Zd„Zd„Zd„Z	dd„Z
d„Zd	„Zd
„Z
d„ZRS(
cCs(h|_h|_g|_||_dS(N(t
interfacesttgt_type_mapttgt_type_alltoutput(RRb((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pyRs			cCs&|io|ii|dƒndS(Ns
(Rbtwrite(RRZ((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pytos
cCsÀx¹|iiƒD]¨}|id|iƒx;|iiƒD]*}|id|iti|ifƒq:W|idƒ|ii	ƒ}x1|D])}|idi
|ƒƒ|idƒq‹WqWdS(Ns[InterfaceVector %s s%s:%s s]
t,s
(R_tvaluesRcRR'RRRR
tto_listR(RtfdtivtparamtavlR&((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pytto_files(
cCs¿d„}d}x‡|D]}|d }|ddjo(|o|i|ƒn||ƒ}q|o/|idƒ}ti|ƒ}|i|ƒqqW|o|i|ƒn|iƒdS(NcSs|dd!iƒ}t|ƒdjp|ddjotd|ƒ‚ntƒ}|d|_t|ƒdjodSx‚|dD]v}|idƒ}t|ƒdjotd|ƒ‚ntƒ}|d|_ti|d|_||i	|i<q„W|S(	NiiÿÿÿÿiiRGs)Syntax error InterfaceVector statement %st:s-Invalid param in InterfaceVector statement %s(
tsplittlentSyntaxErrorRGRRRtstr_to_fieldRR'(tlinetfieldstifvtfieldR)Rj((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pyt	parse_ifv*s"$	
	
iÿÿÿÿit[Re(R8tadd_ifvRnR
tAccessVectorRStindex(RRhRvRtRrtlR&((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pyt	from_file)s 	
cCs||i|i<dS(N(R_R(RRt((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pyRxLscCs¯x¨|iiƒD]—}tƒ}xR|iD]G}ti|iƒo|ii|ƒtƒ}Pn|i|iƒq)Wx0|D](}|i	i
|gƒ}|i|ƒq{WqWdS(N(R_RfR:R
RR/RaRYR%R`t
setdefault(RRtR>R&RR{((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pyRzOs	
	cCst|ƒ}|i|ƒdS(N(RGRx(RRLRt((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pyR%]scCsQx3ti|iƒ|iƒƒD]}|i|ƒqW|i|ƒ|iƒdS(N(R!R"R_t	templatesR%texpand_ifcallsRz(RtheadersRbti((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pytadd_headersas

cCswti|ƒo\t|dƒ}|t|iƒjodS|i|d}t|tƒo|S|gSn|gSdS(Ni(R
RRRoRCR8t
isinstancetlist(RtidRDRRE((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pyt	map_paramhsc

Cs0|i|i|ƒ}|djodS|i|i|ƒ}|djodS|i|i|ƒ}|djodStiƒ}xD|iD]9}|i||ƒ}	|	djoq‹q‹|i|	ƒq‹Wt	|ƒdjodSxI|D]A}
x8|D]0}x'|D]}|i
i|
|||ƒqWqôWqçWdS(Ni(R†R.R8R/R RRR1tupdateRoR
R%(
RRtR&RDR=R>Rt	new_permsR4R)R.R/R ((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pyt
map_add_avxs2




c	CsN|dfg}|i|i}t|_xt|ƒdjo|idƒ\}}|i|i}||jo<x$|iD]}|i|||ƒqzW|ioq+q¬nx–|i	ƒD]ˆ}	|	i
|ijo|itdƒƒdSy||	i
}
Wn0t
j
o$|itd|	i
ƒƒq¹nX|i|
|	fƒq¹Wq+WdS(NiiÿÿÿÿsFound circular interface classs#Missing interface definition for %s(R8R_RR	RKRotpopR
R‰RVtifnameRdRtKeyErrorRY(RRLt
if_by_nametstackRttcurt
cur_ifcalltcur_ifvR&RDtnewif((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pytdo_expand_ifcalls”s0	



cCsyh}x3ti|iƒ|iƒƒD]}|||i<q%Wx6ti|iƒ|iƒƒD]}|i||ƒq[WdS(N(R!R"R_R~RR“(RR€RRRL((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pyR¸sN(RRR8RRdRlR|RxRzR%R‚R†R‰R“R(((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pyR^s			#						$((((RR
RR!R#tmatchingtsepolgeni18nRRR,R5R9RBRFRGR^(((s7/usr/lib/python2.6/site-packages/sepolgen/interfaces.pyt<module>s	,	9			I

Youez - 2016 - github.com/yon3zu
LinuXploit