+
    	:i  c                   s   ^ RI Ht ^ RI Ht ^ RIt^ RI5 ^ RIHt ^ RIt^ RIH	t	H
t
 ]P                  ! ]
! RR4      ]
! RR	4      R
R7      t ]P                  s. RLOt]R8X  d#   ]P"                  ! ]
! RR4      ]
! RR	4      R7       ^ RIHs ^ RIH
t
 ^ RI5 ^ RI5 ^ RI5 ^ RI5 ^ RIHt ^ RI5 ^ RIt^ RI5 ^ RIHt ^ RIt^ RI t R t!^ t"^t#^t$]"\        R4      ]#\        R 4      ]$\        R!4      /t%]"R"]#R#]$R$/t&R"]"R#]#R$]$/t' ! R% R](4      t) ! R& R]*4      t+ ! R' R]*4      t, ! R( R]*4      t-/ t.\        R)4      ].R*&   \        R+4      ].R,&   \        R-4      ].R.&   \        R/4      ].R0&   \        R14      ].R2&   \        R34      ].R3&   \        R44      ].R4&   \        R54      ].R5&   \        R64      ].R6&   \        R74      ].R7&   \        R84      ].R8&   \        R94      ].R9&   \        R:4      ].R:&   R; t/ ! R< R=]*4      t0 ! R> R]*4      t1 ! R? R]*4      t2 ! R@ R]*4      t3 ! RA R]*4      t4 ! RB R]*4      t5 ! RC R]*4      t6 ! RD R]*4      t7 ! RE R]*4      t8 ! RF R]*4      t9]R8X  d   ^ RI:t:]:Pv                  ! ^4       RGt<]6! 4       t=]=P}                  ]<RH4       ]=P~                  ^ ,          t@]@P                  P                  ^ ,          tC]D! ]CP                  4       ]D! RI]@P                  ,          4       ]D! ]=4       ]:P                  ! 4        ]:Pv                  ! ^4      ^ 8X  d   ]D! RJ4       R# ]D! RK]:Pv                  ! ^4      ,          4       ]:P                  ! 4        R# R#   ] d    ]P                  s ELi ; i)M    )absolute_import)print_functionN)*)
cmp_to_key)parse_config_setting
get_configZgeneralZi18n_text_domainZi18n_locale_dirT)domain	localedirZfallbackSignatureMatchSEFilterSEFaultSignatureSEFaultSignatureInfoSEFaultSignatureSetSEFaultSignatureUserSEEnvironmentSEDatabasePropertiesSEFaultUserInfoSEFaultUserSetSEPluginSEEmailRecipientSEEmailRecipientSetZ__main__)r   r   )ngettext)r   )Templatec                 s    W8  W8  ,
          # N )xy   &&=/usr/lib/python3.14/site-packages/setroubleshoot/signature.py<lambda>r   O   s    AEae$    zNever IgnorezIgnore AlwayszIgnore After First AlertZneverZalwaysZafter_firstc                   s&   a  ] tR t^kt o R tRtV tR# )r	   c                s    Wn         W n        R # r   )siginfoscore)selfr    r!      &&&r   __init__ZSignatureMatch.__init__m   s    
r   )r!   r    N)__name__
__module____qualname____firstlineno__r$   __static_attributes____classdictcell__)__classdict__s   @r   r	   r	   k   s      r   c                   s   a a ] tR t^rt oRRRRR /RRR/RRR/R	RR/R
RR/RRR/RRR/RRRR]/RRRR]/RRR/RRR/RRR//tV 3R ltR tR tR t	Rt
VtV ;t# )r   versionXMLForm	attributedefaultc                     R # z1.0r   r   r   r   r   ZSEEnvironment.<lambda>t       ur   platformelementkernelpolicy_type
policy_rpmlocal_policy_rpmenforceselinux_enabledimport_typecastselinux_mls_enabled
policyvershostnameunamec                sL   < \         \        V `  4        V P                  4        R # r   )superr   r$   updater"   	__class__   &r   r$   ZSEEnvironment.__init__   s    mT+-r   c                sh   \        R 4       ^ RIp^ RIp\        4       w  V n        V n        VP                  4       ^,          V n        \        RV P                  ,          4      V n        V P                  V n	        \        VP                  4       4      V n        VP                  4       pV^ 8X  d	   RV n        MRV n        \        VP!                  4       4      V n        \        VP%                  4       4      V n        VP)                  4       V n        RP-                  VP/                  4       4      V n        R# )zupdating SEEnvironmentNz/etc/selinux/%s
PermissiveZ	Enforcing )	log_debugr3   selinuxZget_os_environmentr5   Zselinux_getpolicytyper6   Zget_package_nvr_by_file_pathr7   r8   strZsecurity_policyversr=   Zsecurity_getenforcer9   ZboolZis_selinux_enabledr:   Zis_selinux_mls_enabledr<   noder>   joinr?   )r"   r3   rH   r9   s   &   r   rA   ZSEEnvironment.update   s    *+ &8%9"t{"88:1=67H4K[K[7[\ $g99;<--/a<'DL&DL#G$>$>$@A#'(F(F(H#I  XXhnn./
r   c                s.    V P                  V4      '       * # r   )__eq__)r"   otherr   r   __ne__ZSEEnvironment.__ne__   s    ;;u%%%r   c                s    \        V P                  P                  4       4       F  p\        W4      \        W4      8w  g   K   R # 	  R# )FT)list	_xml_infokeysgetattr)r"   rM   name   && r   rL   ZSEEnvironment.__eq__   s8    ,,./Dt"ge&:: 0 r   )r9   r>   r5   r8   r3   r7   r6   r=   r:   r<   r?   )r%   r&   r'   r(   booleanrP   r$   rA   rN   rL   r)   r*   __classcell__rC   r+      @@r   r   r   r   s     I{I}EY	*9i(	9-y),Y	2Iy)Iy2CWO	96GSy),Y	*)Y'I00& r   c            	       s`   a a ] tR t^t oRRRR]RR /RRRR]RR //t]3V 3R	 lltR
tVt	V ;t
# )r
   filter_typer-   r4   r;   r/   c                     \         # r   )FILTER_NEVERr   r   r   r   SEFilter.<lambda>   s    Yer   countc                     ^ # r    r   r   r   r   r   r\      s    STr   c                8   < \         \        V `  4        Wn        R # r   )r@   r
   r$   rY   )r"   rY   rC      &&r   r$   ZSEFilter.__init__   s    h&(&r   rY   )r%   r&   r'   r(   intrP   r[   r$   r)   r*   rV   rW   rX   r   r
   r
      sB     	9.?iQef)Y(93	9UI
 $0 ' 'r   c                   s   a a ] tR t^t oRRR/RRRR]RR /RRRR]RR	 /R
RRR]RR //tV 3R ltR tRR lt	Rt
VtV ;t# )r   usernamer-   r.   Z	seen_flagr;   r/   c                 r0   Fr   r   r   r   r   SEFaultSignatureUser.<lambda>       ]br   Zdelete_flagc                 r0   re   r   r   r   r   r   rf      s    _dr   filterr4   c                     \        4       # r   )r
   r   r   r   r   rf      s    YaYcr   c                r`   r   )r@   r   r$   rd   r"   rd   rC   ra   r   r$   ZSEFaultSignatureUser.__init__   s    "D24 r   c                s    WP                   9   g   \        \        R V,          4      hVR8X  d   \        \        R4      h\	        WV4       R# )z!item (%s) is not a defined memberrd   z changing the username is illegalN)Z_namesProgramErrorZERR_NOT_MEMBERZERR_ILLEGAL_USER_CHANGEsetattr)r"   Zitemdatar#   r   update_itemZ SEFaultSignatureUser.update_item   sA    {{"~/RUY/YZZ:68Z[[D!r   c                s    \        R \        P                  VR4      : RV: 24       V\        8X  g   V\        8X  g   V\
        8X  d   \        R4       \        VR7      V n        R# \        RV,          4      h)zupdate_filter: filter_type=unknownz data=zupdate_filter: !!!rb   TzBad filter_type (%s))	rG   map_filter_value_to_namegetr[   FILTER_AFTER_FIRSTFILTER_ALWAYSr
   rh   
ValueError)r"   rY   rm   r#   r   update_filterZ"SEFaultSignatureUser.update_filter   sb    =U=Y=YZegp=qswxy,&,,-'*+"{;DK3kABBr   )rh   rd   r   )r%   r&   r'   r(   rU   r
   rP   r$   rn   ru   r)   r*   rV   rW   rX   r   r   r      sh     Y,i.?)Ubc	;0A7IWde9i):HiQcd	I!"	C 	Cr   	directorydirZ	semaphoreZsemzshared memoryZshmzmessage queueZmsgqZmessageZmsgfileZsocketprocessprocess2Z
filesystemrJ   
capabilitycapability2c                 sd    V \        \        P                  4       4      9   d   \        V ,          # V # r   )rO   
class_dictrQ   )tclass   &r   translate_classr      s&    joo'((&!!Mr   c                   s6   a a ] tR t^t oRtV 3R ltRtVtV ;t# )AttributeValueDictionaryZunstructuredc                ,   < \         \        V `  4        R # r   )r@   r   r$   rB   rD   r   r$   Z!AttributeValueDictionary.__init__   s    &68r   r   	r%   r&   r'   r(   rP   r$   r)   r*   rV   rW   rX   r   r   r      s     I9 9r   r   c                   s   a a ] tR t^t oRRRRR /RRR/RRRR	R
/RRRR]/RRRR]/RRR/RRRR]//tV 3R ltRtVt	V ;t
# )r   r,   r-   r.   r/   c                 r0   )z4.0r   r   r   r   r   ZSEFaultSignature.<lambda>   r2   r   hostr4   accessrO   Z	operationscontextr;   tcontextr~   portc                s   < \         \        V `  4        \        VP	                  4       4       F  w  r#\        WV4       K  	  R # r   )r@   r   r$   rO   itemsrl   )r"   kwdskvrC   s   &,  r   r$   ZSEFaultSignature.__init__   s2    .0&DADQ 'r   r   )r%   r&   r'   r(   
AvcContextrc   rP   r$   r)   r*   rV   rW   rX   r   r   r      ss     I{I}GI(9i?Y	+<jIY	+<jI9i*I'8#@I   r   c                   sP   a a ] tR tRt oRRR/RRRRR//tV 3R ltR	 tR
tVtV ;t	# )r   i  analysis_idr-   r4   argsrO   Zargc                sD   < \         \        V `  4        Wn        W n        R # r   )r@   r   r$   r   r   )r"   r   r   rC      &&&r   r$   ZSEPlugin.__init__
  s    h&(&	r   c                sD    \        V P                  V P                  34      # r   )rI   r   r   r"   r   r   __str__ZSEPlugin.__str__  s    D$$dii011r   )r   r   )
r%   r&   r'   r(   rP   r$   r   r)   r*   rV   rW   rX   r   r   r     s3     	9-Ivu7I

2 2r   c                   s  a a ] tR tRt o/ RRRRRR]/bRRRR]/bR	RR/bR
RR/bRRR/bRRRRR/bRRRRR/bRRRR]/bRRRR]/bRRR/bRRRR]/bRRRR]/bRRR/bRRR/bRRR/bRRRR]	/bRRRR]
/bRRRR]
/RRRR]RR /RRR/RRRRRR]/R RR/R!RR/R"RR//Ct. R:OtV 3R# ltR$ tR% tR& tR' tR( tR) tR;R* ltR;R+ ltR, tR- tR. tR/ tR0 tR1 tR2 tR<R3 ltR4 tR5 t R<R6 lt!R7 t"R=R8 lt#R9t$Vt%V ;t&# )>r   i  plugin_listr-   r4   rO   Zpluginr;   audit_eventsourcespathtpathsrc_rpm_listZrpmtgt_rpm_listr   r   r~   r   sigZif_textZ	then_textZdo_textenvironmentfirst_seen_datelast_seen_datereport_countr/   c                 r^   r_   r   r   r   r   r   ZSEFaultSignatureInfo.<lambda>)  s    Z[r   local_idusersuserlevelZfixableZbutton_textc                s>  < \         \        V `  4        \        VP	                  4       4       F  w  r#\        WV4       K  	  ^V n        . V n        Rp\        P                  ! 4       ^ 8X  d   Rp \        V P                  VR7      V P                  n        R#     R# ; i)   TF)use_dbusN)r@   r   r$   rO   r   rl   r   r   osZgetuidZget_rpm_nvr_by_scontextr   r   r8   )r"   r   r   r   r   rC   s   &,   r   r$   ZSEFaultSignatureInfo.__init__7  s    "D24&DADQ '99;!H	0G`h0iD-	s   /&B Bc           	     s"   VP                   V P                   8w  d+   VP                   V n         V ;P                  ^,          un        V P                   F  p\        W\	        W4      4       K  	  V P
                  f   VP
                  V n        R# R# )r   N)r   r   merge_includerl   rR   r   )r"   r    rS   rT   r   update_mergeZ!SEFaultSignatureInfo.update_mergeH  sp    !!T%8%88")"8"8D"&&DD 67 ' :: DJ r   c                s.    V P                   P                  # r   )r   r7   r   r   r   get_policy_rpmZ#SEFaultSignatureInfo.get_policy_rpmT  s    ***r   c                s    V P                   : R V P                  P                  : R V P                  P                  : R V P                  : R R P                  V P                  P                  4      : 2	# Z,)r   r   typer   r~   rK   r   r   r   r   r   get_hash_strZ!SEFaultSignatureInfo.get_hash_strW  sK    #';;0B0BDMMDVDVX\XcXcehememnrnvnvn}n}e~r   c                s    \         P                  ! V P                  4       P                  R 4      4      pVP	                  4       # )zutf-8)hashlibZsha256r   ZencodeZ	hexdigest)r"   Zhash   & r   get_hashZSEFaultSignatureInfo.get_hashZ  s1    ~~d//188AB~~r   c                s    V P                    F  pVP                  V8X  g   K  Vu # 	  \        R V,          4       \        V4      pV P                   P	                  V4       V# )znew SEFaultSignatureUser for %s)r   rd   rG   r   appendr"   rd   r   rT   r   get_user_dataZ"SEFaultSignatureInfo.get_user_data^  sR    JJD}}(  	3h>?#H-

$r   c                sp    \        R V,          4       RpV P                  V4      pVe   VP                  pV# )zfind_filter_by_username %sN)rG   r   rh   )r"   rd   rh   	user_data   &&  r   find_filter_by_usernameZ,SEFaultSignatureInfo.find_filter_by_usernameg  s;    .9:&&x0	 %%Fr   c                sJ    V P                  V4      pVP                  W#4       R # r   )r   ru   )r"   rd   rY   rm   r   s   &&&& r   update_user_filterZ'SEFaultSignatureInfo.update_user_filterp  s     &&x0	2r   c                s    R pV P                  V4      p\        RV: RV: 24       Ve3   Ve   W$n        V P                  V4      p\        RV: RV: RV: 24       V# )displayz evaluate_filter_for_user: found z user's filter = z+evaluate_filter_for_user: found filter for : 
)r   rG   rY   evaluate_filter)r"   rd   rY   actionfs   &&&  r   evaluate_filter_for_userZ-SEFaultSignatureInfo.evaluate_filter_for_usert  s\    ((2XWXYZ=& +))!,FQY[acdefr   c                s    VP                   pR pV\        8X  d   R pMBV\        8X  d   VP                  ^ 8X  d   R pM#RpM V\        8X  d   RpM\        RV,          4      hV;P                  ^,          un        V# )r   Zignorezunknown filter_type (%s))rY   r[   rr   r]   rs   rt   )r"   rh   rY   r   r   r   r   Z$SEFaultSignatureInfo.evaluate_filter  so    ((,&F..||q "!M)F7;GHHr   c                s    \        V\        4      '       d$   \        V4      ^ 8  d   RP                  V4      # R# \	        R4      # )r    rF    N)
isinstancerO   lenrK   default_text)r"   Zrpm_listr   r   format_rpm_listZ$SEFaultSignatureInfo.format_rpm_list  s8    h%%8}q xx))%%r   c                s>    V P                   : R V P                  : R2# )z [ z ])r   r~   r   r   r   format_target_objectZ)SEFaultSignatureInfo.format_target_object  s    "jj$++66r   c                s.   R pV P                   P                  R4      pVR 8w  dI   VP                  R4      R8X  d3   \        R4      V P                  V P
                  P                  3,          pV P                  P                  R8X  d   \        R4      pR # R # )NZSYSCALLZsuccessyesz:%s has a permissive type (%s). This access was not denied.rE   z:SELinux is in permissive mode. This access was not denied.)	r   Zget_record_of_typeZ	get_field_r   r   r   r   r9   )r"   Zpermissive_msgZsyscall_record   &  r   #description_adjusted_for_permissiveZ8SEFaultSignatureInfo.description_adjusted_for_permissive  s    ))<<YGT!n&>&>y&IU&R[\`d`k`kmqmzmzmm  `A  AN##|3[\N 4r   c                s4   / V n         V P                  P                  V P                   R &   V P                  P                  V P                   R&   V P                  V P                   R&   V P
                  V P                   R&   \        P                  P                  V P
                  4      V P                   R&   \        P                  ! RRV P                  4      V P                   R&   V P
                  '       d1   \        P                  ! RR	V P
                  4      V P                   R
&   M\        R4      V n        V P                  V P                   R&   \        P                  P                  V P                  4      V P                   R&   V P                  '       d0   \        P                  ! RR	V P                  4      V P                   R&   V P                  f   RV P                   R&   MV P                  R8X  d   V P                  V P                   R&   MWV P                  R8X  d8   \        P                  P                  V P                  4      V P                   R&   MRV P                   R&   V P                  R8X  d   RV P                   R&   MV P                  V P                   R&   V P                  P                   f   RV P                   R&   M2RP#                  V P                  P                   4      V P                   R&   \%        V P&                  4      ^ 8  d!   V P&                  ^ ,          V P                   R&   V P(                  V P                   R&   \+        V P                   P-                  4       4       F#  w  rVe   K  \/        V4      V P                   V&   K%  	  R# )ZSOURCE_TYPEZTARGET_TYPEZSOURCEZSOURCE_PATHZSOURCE_BASE_PATHz[^a-zA-Z0-9]r   ZMODULE_NAMErF   Z.ZFIX_SOURCE_PATHzN/AZTARGET_PATHZTARGET_BASE_PATHZFIX_TARGET_PATHNZ
TARGET_DIRrw   rx   rv   ZTARGET_CLASSZACCESSZSOURCE_PACKAGEZPORT_NUMBER)template_substitutionsr   r   r   r   r   r   pathZbasenameresubr   r   r~   Zdirnamer   r   rK   r   r   r   rO   r   r   )r"   keyvaluer   r   %update_derived_template_substitutionsZ:SEFaultSignatureInfo.update_derived_template_substitutions  s   &(#59]]5G5G##M259]]5G5G##M204##H-59ZZ##M2:<'':J:J4:::V##$6757VVNBPTP[P[5\##M2:::=?VVCdjj=YD''(9:5DJ59ZZ##M2:<'':J:J4:::V##$67:::=?VVCdjj=YD''(9:::8<D''5{{e#<@JJ++L9&<>GGOODJJ<W++L9<@++L9;;%:ED''7:>++D''788??"48D''147HHTXX__4MD''1t  !A%<@<M<Ma<PD''(8959YY##M2 t::@@BCJC}3?3F++C0 Dr   c                s^    \        V^ ,          P                  V^ ,          P                  4      # r_   )cmppriority)r"   r   r   r#   r   priority_sortZ"SEFaultSignatureInfo.priority_sort  s    1Q4==!A$--00r   c                s   V P                   R
9   ds   \        \        R4      \        R4      \        V P                  P
                  4      4      V P                  RP                  V P                  P
                  4      3,          # V P                   R9   ds   \        \        R4      \        R4      \        V P                  P
                  4      4      V P                  RP                  V P                  P
                  4      3,          # V P                  R9   d   \        \        R4      \        R4      \        V P                  P
                  4      4      V P                  RP                  V P                  P
                  4      \        V P                   4      V P                  P                  3,          # \        \        R4      \        R	4      \        V P                  P
                  4      4      V P                  RP                  V P                  P
                  4      \        V P                   4      V P                  3,          # )ry   z?SELinux is preventing %s from using the %s access on a process.zCSELinux is preventing %s from using the '%s' accesses on a process., z6SELinux is preventing %s from using the %s capability.z:SELinux is preventing %s from using the '%s' capabilities.z=SELinux is preventing %s from %s access on the %s labeled %s.zASELinux is preventing %s from '%s' accesses on the %s labeled %s.z5SELinux is preventing %s from %s access on the %s %s.z9SELinux is preventing %s from '%s' accesses on the %s %s.)ry   rz   )r{   r|   )z(null)ZUnknown)r~   P_r   r   r   r   r   rK   r   r   r   r   r   r   r   summaryZSEFaultSignatureInfo.summary  s   ;;11aYZ\]  _d  ]e  gj  ko  ks  ks  kz  kz  g{  |  @D  @J  @J  LP  LU  LU  VZ  V^  V^  Ve  Ve  Lf  g  g  g;;77aPQST  VR  TS  UX  Y]  Ya  Ya  Yh  Yh  Ui  j  nr  nx  nx  z~  zC  zC  DH  DL  DL  DS  DS  zT  mU  U  U::..aWXZ[  ]`  [a  cf  gk  go  go  gv  gv  cw  x  |@  |F  |F  HL  HQ  HQ  RV  RZ  RZ  Ra  Ra  Hb  ds  tx  t  t  d@  BF  BO  BO  BT  BT  {U  U  U!KLa  QL  OM  OR  SW  S[  S[  Sb  Sb  Oc  d  hl  hr  hr  tx  t}  t}  ~B  ~F  ~F  ~M  ~M  tN  P_  `d  `k  `k  Pl  nr  nx  nx  gy  y  	yr   c           
     s*   \        4       V n        . p^ pV'       d:   V P                   F(  pW4P                  ,          pVP                  VR34       K*  	  MV P                   F  pV P                   F}  pVP
                  VP
                  8X  g   K   W4P                  ,          pVP                  \        VP                  4      4       VP                  V\        VP                  4      34        K  	  K  	  VP                  \        V P                  4      R7       . ROpRP                  V UUu. uF+  w  rGVP                  V P                  P                  V4      NK-  	  upp4      pV F  p	W9   g   K  V F  w  rGRVn        K  	   W23# 	  W23# u uppi )r    r   rF   F)Zallow_ypbind1)Zmozilla_read_contentZ"mozilla_plugin_can_network_connectZmozilla_plugin_use_bluejeansZ$unconfined_mozilla_plugin_transition)Zload_pluginspluginsr   r   r   r   Z	init_argsZtupler   sortr   r   rK   get_do_textr   recordsZ
report_bug)
r"   allr   total_prioritypZsolutionZnoreport_booleansaZdo_textsbs
   &&        r   get_pluginsZ SEFaultSignatureInfo.get_plugins  sR   #~\\**,#89: " !,,A++q}}<&**4E(--$895+?'@A & - 	D$6$678e 88T[\T[DAQ]]4+;+;+C+CQGT[\]"A}#DA#(AL $&& # && ]s   .1F
c                sJ    \        V4      P                  V P                  4      # r   )r   Zsafe_substituter   )r"   txtr   r   
substituteZSEFaultSignatureInfo.substitute  s    },,T-H-HIIr   c                sL    V Uu. uF  q P                  V4      NK  	  up# u upi r   )r   )r"   r   r   rT   r   substitute_arrayZ%SEFaultSignatureInfo.substitute_array  s!    045$555s   !c                s"   V P                   p\        R 4      pV\        \        R4      V P                  P	                  4       4      ,          pV\        \        R4      V P
                  P	                  4       4      ,          pV\        \        R4      V P                  4       4      ,          pV\        \        R4      \        V P                  4      4      ,          pV\        \        R4      \        V P                  4      4      ,          pV\        \        R4      \        V P                  4      4      ,          pV'       d   V\        \        R4      R4      ,          pM9V\        \        R4      \        V P                  P                  4      4      ,          pV\        \        R	4      \        V P                  V P                  4      4      4      ,          pV\        \        R
4      \        V P                  V P                  4      4      4      ,          pV\        \        R4      \        VP                   4      4      ,          pV\        \        R4      \        VP"                  4      4      ,          pV\        \        R4      \        VP$                  4      4      ,          pV\        \        R4      \        VP&                  4      4      ,          pV\        \        R4      \        VP(                  4      4      ,          pV'       d   V\        \        R4      R4      ,          pM/V\        \        R4      \        VP*                  4      4      ,          pV'       dU   VP,                  P/                  4       pRV^&   V\        \        R4      \        RP1                  V4      4      4      ,          pM/V\        \        R4      \        VP,                  4      4      ,          pV\        \        R4      \        V P2                  4      4      ,          pRpV\        \        R4      V P4                  P	                  V4      4      ,          pV\        \        R4      V P6                  P	                  V4      4      ,          pV\        \        R4      \        V P8                  4      4      ,          pVR\        R4      ,           ,          pRpV P:                  P<                   F  pVP>                  R8X  d(   VRVPA                  4       ,           R,           ,          pK;  VRVP>                  : RVPB                  : R2,          pTRP1                  VPD                   Uu. uF  q: RVPF                  V,          : 2NK  	  up4      R,           ,          pK  	  VR V PI                  4       ,           ,          p R!p	\J        PL                  PO                  V	4      '       d   R"p
\Q        V	.\R        \R        R#7      pWPU                  V4      ^ ,          ,          p
\J        PL                  PW                  R$4      '       d@   V
R%,          p
\Q        V	R&.\R        \R        R#7      pWPU                  V4      ^ ,          ,          p
Wj,          pY6R,           ,          pT# u upi     L; i)'zAdditional Information:
zSource ContextzTarget ContextzTarget ObjectsZSourcezSource PathZPortZHostz	(removed)zSource RPM PackageszTarget RPM PackageszSELinux Policy RPMzLocal Policy RPMzSelinux EnabledzPolicy TypezEnforcing Modez	Host NameZPlatformrF   zAlert Countz%Y-%m-%d %H:%M:%S %Zz
First Seenz	Last SeenzLocal IDr   zRaw Audit Messagesr   ZAVCz
type=z msg=r   Z=z
Hash: z/usr/bin/audit2allowz

audit2allow)ZstdinZstdoutz /var/lib/sepolgen/interface_infoz
audit2allow -Rz-R),r   r   Zformat_2_column_name_valuer   Zformatr   r   r   r   r   r   r   r   r   r   r   r7   r8   r:   r6   r9   r>   r?   ZsplitrK   r   r   r   r   r   r   record_typeZto_textZevent_idZ
fields_ordZfieldsr   r   r   ZexistZPopenZPIPEZcommunicateZexists)r"   replaceZenvtextr?   Zdate_formatZavcbufZaudit_recordr   Zaudit2allowZnewbufr   s   &&          r   format_detailsZ#SEFaultSignatureInfo.format_details  s   ,-*1-=+>@T@T@VWW*1-=+>@T@T@VWW*1-=+>@Y@Y@[\\*1X;T[[8QRR*1]+;\$**=UVV*1V9l4996MNN.qy+FFD.qy,txx}}:UVVD*1-B+C\RVRfRfgkgxgxRyEz{{*1-B+C\RVRfRfgkgxgxRyEz{{*1-A+BLQTQ_Q_D`aa*1-?+@,sOcOcBdee*1->+?cNaNaAbcc*1]+;\#//=Z[[*1-=+>S[[@YZZ.q~{KKD.q~|CLL?YZZDIIOO%E"E!H.q}l388TY?>[\\D.q}l399>UVVD*1]+;\$J[J[=\]],*1\?D<P<P<W<WXc<dee*1[>4;N;N;U;UVa;bcc*1Z=,t}}:UVVq-... ,,44L''50$!5!5!77$>>,2J2JLLaLabb#((S_SjSj#kSjaq,2E2Ea2H$ISj#klosss 5 	*t00222	0Kww}}[))*;-tDA--/2277>>"DEE00F{D1dKAmmF3A66F  	) $l	s   "Z*&Z
 B#Z
 
Zc                sR    \         p\        p R s R sV! V/ VB Vs Vs#   Ts Tsi ; i)zdefine.*untranslated\(.*\nc                 s    V^8  d   V # T# )r   r   )r   r   Zzr#   r   r   3SEFaultSignatureInfo.untranslated.<locals>.<lambda>X  s    a!e!2!2r   c                 s    V # r   r   )r   r   r   r   r   Y  s    !r   )r   r   )r"   Zfuncr   ZkwargsZsaved_translateP_Zsaved_translate_s   &&*,  r   untranslatedZ!SEFaultSignatureInfo.untranslatedN  sD     	!2BA(("B A #B As     &c                s8   V P                  4        V P                  4       pV P                  V4      w  rEV EF  w  rg\        R 4      VP                  \        VP                  4      \        V4      ,          ^d,          R,           3,          pW8,          p\        \        V4      ^P4       F  p	V\        R4      ,          pK  	  V\        R4      ,          pV P                  VP                  V P                  P                  V4      4      p
V\        R4      V
,           ,          pV P                  VP                  V P                  P                  V4      4      p
V\        R4      V
^ ,          P                  4       ,           V
R,          ,           ,          pV P                  VP                  V P                  P                  V4      4      p
V\        R4      V
^ ,          P                  4       ,           V
R,          ,           ,          pEK  	  V\        R4      ,          pV# )z0

*****  Plugin %s (%.4s confidence) suggests   g      ?r   r   z
Then :r   NNz
Do
z

)r   r   r   r   r   floatr   Zranger   r   Zget_if_textr   r   Zget_then_textlowerr   )r"   r   r   r   r   r   r   r   ZtitleZir   s   &&&        r   format_textZ SEFaultSignatureInfo.format_text_  s   224||~"&"2"23"7GAJKq}}`efgfpfp`qty  {I  uJ  aJ  NQ  `Q  TV  `V  OX  XEMD3u:r*# +AdGOD//!--0@0@0H0H$"OPCAdGcM!D//!//$2B2B2J2JD"QRCAiL3q6<<>1CG;;D//!--0@0@0H0H$"OPCAhK#a&,,.03r7::D  	&	r   )r   r   r   r   r   r   r   )
r   r   r   r   r   r   r~   r   r   r   r   re   )FF)'r%   r&   r'   r(   r   Z
AuditEventr   rc   r   r   Z	TimeStampr   rP   r   r$   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r)   r*   rV   rW   rX   r   r   r     sH    	9fh@QS[\	9.?L 	9i( 	)Y'	
 	)Y' 	Ivu? 	Ivu? 	Y	+<jI 	Y	+<jI 	9i* 	I'8#@ 		9&79IJ 	Iy) 	i+  	Iy)!" 		9.?O#& 	Iy2CYO'( 	9i1BINI/@#yR[\Y	*)Y8IK_b)Y'Iy)	9-5I:M"
'+@ 3	&&7]-G^1y 'DJ6AF!" r   c                   sp   a a ] tR tRt oRRRRR /RRR/RRR	R
]RR /RRR	RR//tV 3R ltR tRtVt	V ;t
# )r   ix  r,   r-   r.   r/   c                 r0   r1   r   r   r   r   r   SEFaultUserInfo.<lambda>z  r2   r   rd   Zemail_alertr4   r;   c                 r0   re   r   r   r   r   r   r   |  rg   r   email_address_listrO   email_addressc                r`   r   )r@   r   r$   rd   rj   ra   r   r$   ZSEFaultUserInfo.__init__  s    ot-/ r   c                s`    WP                   9   g   V P                   P                  V4       R # R # r   )r   r   )r"   r   r   r   add_email_addressZ!SEFaultUserInfo.add_email_address  s'     7 77##**=9 8r   )rd   )r%   r&   r'   r(   rU   rP   r$   r   r)   r*   rV   rW   rX   r   r   r   x  sU     I{I}EY,	9.?)Ubcy)V_O	I!: :r   c            	       s`   a a ] tR tRt oRRRRR /RRRR	R
R]//tV 3R ltR tR tRt	Vt
V ;t# )r   i  r,   r-   r.   r/   c                 r0   r1   r   r   r   r   r   ZSEFaultUserSet.<lambda>  r2   r   	user_listr4   rO   r   r;   c                r   r   )r@   r   r$   rB   rD   r   r$   ZSEFaultUserSet.__init__  s    nd,.r   c                sT    V P                    F  pWP                  8X  g   K  Vu # 	  R # r   )r   rd   r   rT   r   get_userZSEFaultUserSet.get_user  s$    NND==( # r   c                s|    V P                  V4      e   R # \        V4      pV P                  P                  V4       V# r   )r   r   r   r   r   rT   r   add_userZSEFaultUserSet.add_user  s5    ==".x(d#r   r   )r%   r&   r'   r(   r   rP   r$   r   r   r)   r*   rV   rW   rX   r   r   r     sA     I{I}EiFF<MaI
/ r   c                   s   a a ] tR tRt oRRRRR /RRRR	]RR
 /RRRRRR	]//tV 3R ltR tR t	R t
R tR tR tR]P                  3R ltRtVtV ;t# )r   i  r,   r-   r.   r/   c                 s(    R \         \        3,          # )z%d.%d)ZDATABASE_MAJOR_VERSIONZDATABASE_MINOR_VERSIONr   r   r   r   SEFaultSignatureSet.<lambda>  s    wJ`bxIy?yr   r   r4   r;   c                 ri   r   )r   r   r   r   r   r     s    ^l^nr   signature_listrO   r    c                r   r   )r@   r   r$   rB   rD   r   r$   ZSEFaultSignatureSet.__init__  s    !413r   c              #  s<   "   V P                    F  pVx  K	  	  R # 5ir   r   r"   r    r   r   siginfosZSEFaultSignatureSet.siginfos  s     **GM +s   c                s<    V P                   P                  V4       V# r   )r   r   r   r   r   add_siginfoZSEFaultSignatureSet.add_siginfo  s    ""7+r   c                s<    V P                   P                  V4       R # r   )r   Zremover   r   r   remove_siginfoZ"SEFaultSignatureSet.remove_siginfo  s    ""7+r   c                    . V n         R # r   r   r   r   r   clearZSEFaultSignatureSet.clear  
     r   c                s>    \        \        P                  ! 4       4      # r   )rI   uuidZuuid4r   r   r   generate_local_idZ%SEFaultSignatureSet.generate_local_id  s    4::<  r   c                sb    Vf   R # V P                    F  pVP                  V8X  g   K  Vu # 	  R # r   )r   r   )r"   r   r    rT   r   lookup_local_idZ#SEFaultSignatureSet.lookup_local_id  s3    **G8+ + r   exactc                sp   \        VP                  4       4      pR pVR8X  d   RpM=\        V\        4      '       d   \	        V4      pRV,          pM\        RV,          4      h. pV P                   F  p	Rp
V	P                  pV F?  p\        W4      \        W4      8X  d   V'       d   Rp
K(  V
X,          p
K3  V'       g   K=  Rp
 M	  V'       d&   V
R8X  d   VP                  \        W4      4       K  K  W8  g   K  VP                  \        W4      4       K  	  VP                  \        R 4      R7       V# )Fr   Tg      ?zunknown criteria = %sg        c                 sB    \        VP                  V P                  4      # r   )r   r!   )r   r   r   r   r   Z6SEFaultSignatureSet.match_signatures.<locals>.<lambda>  s    QWWagg1Fr   r   )rO   rQ   r   r   r   rt   r   r   rR   r   r	   r   r   )r"   ZpatZcriteriaZxml_infoZmatch_targetsr   Znum_match_targetsZscore_per_match_targetZmatchesr    r!   r   rS   s   &&&&         r   match_signaturesZ$SEFaultSignatureSet.match_signatures  s   X]]_-wE%(( #M 2%(+<%<"4x?@@**GE++C%3%);; #!77u # & C<NN>'#AB   $NN>'#AB% +& 	$FGHr   r   )r%   r&   r'   r(   r   r   rP   r$   r   r   r   r   r   r   r   r  r)   r*   rV   rW   rX   r   r   r     s~     I{I7yz)Y(9>9Vno9iDUWknI4,!! .5?O?Y?Y    r   c                   sR   a a ] tR tRt oRRR/RRR/RRR//tR	V 3R lltRtVtV ;t# )
r   i  rS   r-   r4   friendly_namefilepathc                sl   < \         \        V `  4        Ve   Wn        Ve   W n        Ve	   W0n        R # R # r   )r@   r   r$   rS   r  r  )r"   rS   r  r  rC   s   &&&&r   r$   ZSEDatabaseProperties.__init__  s8    "D24I$!.$M  r   )r  r  rS   )NNNr   rW   rX   r   r   r     s4     I&)Y/Y	*I% %r   c            	       sZ   a a ] tR tRt oRRR/RRRR]RR //tRV 3R	 lltR
 tRtVt	V ;t
# )r   i  addressr-   r4   rY   r;   r/   c                 rZ   r   )rr   r   r   r   r   ZSEEmailRecipient.<lambda>  s    Ykr   c                sP   < \         \        V `  4        Wn        Ve	   W n        R # R # r   )r@   r   r$   r  rY   )r"   r  rY   rC   r   r   r$   ZSEEmailRecipient.__init__  s'    .0"* #r   c                sd    V P                   : R \        P                  V P                  R4      : 2# )Z:ro   )r  rp   rq   rY   r   r   r   r   ZSEEmailRecipient.__str__  s&    ,,(@(D(DTEUEUW`(abbr   )r  rY   r   )r%   r&   r'   r(   rc   rP   r$   r   r)   r*   rV   rW   rX   r   r   r     s;     Iy)	9.?iQklI
+c cr   c            	       s   a a ] tR tRt oRRRRR /RRRR	R
R]//tRV 3R lltR tR t]	3R lt
R tR tR tRtVtV ;t# )r   i	  r,   r-   r.   r/   c                 r0   )r   r   r   r   r   r   ZSEEmailRecipientSet.<lambda>  s    sr   recipient_listr4   rO   	recipientr;   c                sD   < \         \        V `  4        Ve	   Wn        R # R # r   )r@   r   r$   r  )r"   r  rC   ra   r   r$   ZSEEmailRecipientSet.__init__  s"    !413%"0 &r   c                st    R P                  V P                   Uu. uF  p\        V4      NK  	  up4      # u upi r   )rK   r  rI   )r"   r   r   r   r   ZSEEmailRecipientSet.__str__  s/    xx)<)<=)<AQ)<=>>=s   5c                st    VP                  4       pV P                   F  pWP                  8X  g   K  Vu # 	  R # r   )stripr  r  )r"   r  r  rT   r   find_addressZ SEEmailRecipientSet.find_address  s4    --/,,I+++   - r   c                s    VP                  4       p\        V4      '       g   \        \        R V,          R7      hV P	                  V4      pVe   R# V P
                  P                  \        W4      4       R# )zaddress='%s'ZdetailN)r  Zvalid_email_addressrk   ERR_INVALID_EMAIL_ADDRr  r  r   r   )r"   r  rY   r  s   &&& r   add_addressZSEEmailRecipientSet.add_address  s`    --/"7++5nw>VWW %%g.	 ""#3G#IJr   c                r   r   r  r   r   r   clear_recipient_listZ(SEEmailRecipientSet.clear_recipient_list)  r   r   c                sN   ^ RI pVP                  ! R4      pVP                  ! R4      pVP                  ! R4      pRRRRRRR	RR
RRRRRRR/p \        V4      pT P                  4        TP                  4        EF  p	TP                  RT	4      p	T	P                  4       p	T	'       g   K0  TP                  T	4      p
T
'       g   KK  T
P                  ^4      pT
P                  ^4      pRpT'       d   TP                  T4       F~  p
T
P                  ^4      pT
P                  ^4      pTR8X  d@   \        P                  TP!                  4       R4      pTf   \#        RT: RT: 24       Ki  Kk  \#        RT: RT: 24       K  	   T P%                  Y4       EK  	  TP+                  4        R#   \         d(   p\	        \
        T: RTP                  : 2R7      hRp?ii ; i  \         d9   pTP&                  \(        8X  d   \#        TP                  4        Rp?EK  ThRp?ii ; i)r    Nz#.*z(\S+)(\s+(.+))?z(\w+)\s*=\s*(\S+)ZenabledTZtruer   ZonZdisabledFZfalseZnoZoffr   r	  r   rY   zunknown email filter (z) for address zunknown email option ()r   ZcompileopenIOErrorrk   ERR_FILE_OPENstrerrorr  Z	readlinesr   r  ZsearchZgroupZfinditermap_filter_name_to_valuerq   r   rG   r  Zerrnor
  close)r"   r  r   Z
comment_reZentry_reZkey_value_reZmap_booleanr   eZlineZmatchr  ZoptionsrY   Zoptionr   s   &&              r   parse_recipient_fileZ(SEEmailRecipientSet.parse_recipient_file,  s   ZZ&
::01zz"67 $tdT!5Ue	XXA 	!!#KKMD>>"d+D::<Dt -5#kk!nG#kk!nG"&K%1%:%:7%CE%*[[^F$)KKNE%6.F.J.J5;;=Z^._#.#6$-\bdk.l$m $7 !*X^`g*h i &D$((>1 "> 	
	I  	X}1::5VWW	X< ( $77&<<%ajj11"#G	$s6   F, G!,G7"GG!H$,*HHH$c                sF    \        VR 4      pT P
                   F>  p\        TP                  ,          pTP                  TP                  :R RT: R24       K@  	  TP                  4        R#   \         d(   p\        \        T: RTP                  : 2R7      hRp?ii ; i)Zwr   r	  NZ40z filter_type=r   )r  r  rk   r  r  r  rp   rY   Zwriter  r  )r"   r  r   r  r  rY   s   &&    r   write_recipient_fileZ(SEEmailRecipientSet.write_recipient_filed  s    	XXs#A ,,I293H3HIKGG	0A0A;OP - 	
	  	X}1::5VWW	Xs   A. .B 9"BB r  r   )r%   r&   r'   r(   r   rP   r$   r   r  rr   r  r  r  r  r)   r*   rV   rW   rX   r   r   r   	  s^     I{I{C9iFWYilI
1
? 0B 	K!6p
 
r   zaudit_listener_database.xmlsigszsiginfo.audit_event=%sz	Memory OKzMemory leak %d bytes)r	   r
   r   r   r   r   r   r   r   r   r   r   r   r[   rs   rr   filter_text)HZ
__future__r   r   ZsyslogZ
subprocessZ	functoolsr   ZgettextZsetroubleshoot.configr   r   ZtranslationZugettextr   ZAttributeErrorZ__all__r%   Zinstallr   r   Zsetroubleshoot.errcodeZsetroubleshoot.utilZsetroubleshoot.xml_serializeZsetroubleshoot.html_utilZsetroubleshoot.uuidr   Zsetroubleshoot.audit_datar   ZtypesZstringr   r   r   r   r[   rs   rr   r  rp   r  Zobjectr	   ZXmlSerializer   r
   r   r}   r   r   r   r   r   r   r   r   r   r   r   Zlibxml2ZdebugMemoryZxml_filer  Zread_xml_filer   r    r   r   ZrecordZprintr   ZcleanupParserZ
dumpMemoryr   r   r   <module>r     s   & %,      B!!I?Q)R,6yBS,T+/1A
* zOO:i1CD(4EFH # , $ ! * & " '    	 	$   !N#1_%45 '8  \m% V 3L 3l'| 'C< CB 
kN
5 kN
5 o&
5 '
6 iL
5 vY
6 {
8 )
9 :
: \?
< vY
6 \?
< m,
= 9| 9 |  "2| 2b< bJ:l :"\ .E, EP%< %"c| c e, eV z,H Dx(!!!$G  ((+F	6	#g&9&99;	$K 1"k%)<)<Q)?@B+ a  As   M M0/M0