4]c@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl TdZ ddl Z ddl mZmZmZeddlmZddlZeje deje yeje dedd WnMek r?eje dd n*ek rhddlZeejd YZ9d?e4fd@YZ:dAe4fdBYZ;dCe4fdDYZ<dEe4fdFYZ=dGe4fdHYZ>dIe4fdJYZ?dKe4fdLYZ@dS(MiN(t*tpolicycoreutils(t boolean_desctboolean_categoryt gen_bool_dict(tIPs/usr/share/localetunicodetcodesetsutf-8t_ts all filestas regular files--tfs-dt directorytds-cscharacter devicetcs-bs block devicetbs-stsockettss-ltls symbolic linktps-ps named pipetanytblocktchartdirtfiletsymlinktpipetloggercBs_eZdZddddddddZddddddddZdZdZRS(cCs%tj|_g|_g|_dS(N(tauditt audit_opentaudit_fdtlog_listtlog_change_list(tself((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyt__init__os R c Csd} ||kr)|| d7}d} n||krL|| d7}d} n||kro|| d7}d} n|jj|jtjtjdt||d||||||dddgdS(Nt-tsenamet,troletrangeiR (RtappendRRtAUDIT_ROLE_ASSIGNtsystargvtstr( R!tmsgtnameR$tseroletseranget oldsenamet oldserolet oldserangetsep((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pytlogts      c CsT|jj|jtjtjdt||d||||||dddgdS(NiR (RR(RRtAUDIT_ROLE_REMOVER*R+R,( R!R-R.R$R/R0R1R2R3((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyt log_removescCs5|jj|jtjt|ddddgdS(NtsemanageR (R R(RRtAUDIT_USER_MAC_CONFIG_CHANGER,(R!R-((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyt log_changescCsfx%|jD]}tj||gq Wx%|jD]}tj||gq2Wg|_g|_dS(N(RRtaudit_log_semanage_messageR taudit_log_user_comm_message(R!tsuccessR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pytcommits  (t__name__t __module__R"R5R7R:R>(((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRns   cBs_eZdZddddddddZddddddddZdZdZRS(cCs g|_dS(N(R(R!((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR"sR c Csd||f} |dkr-| d|7} n|dkrJ| d|7} n|dkrg| d|7} n|dkr| d|7} n|dkr|dkr| d|7} n|dkr|dkr| d|7} n|jj| dS( Ns %s name=%sR s sename=s oldsename=s role=s old_role=s MLSRange=s old_MLSRange=(tNoneRR(( R!R-R.R$R/R0R1R2R3tmessage((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR5s    c Cs&|j||||||||dS(N(R5( R!R-R.R$R/R0R1R2R3((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR7scCs|jjd|dS(Ns %s(RR((R!R-((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR:scCsJ|dkrd}nd}x(|jD]}tjtj||q%WdS(Nis Successful: sFailed: (RtsyslogtLOG_INFO(R!R=RBR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR>s   (R?R@R"R5R7R:R>(((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs   t nullloggercBsVeZddddddddZddddddddZdZdZRS(R c CsdS(N(( R!R-R.R$R/R0R1R2R3((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR5sc CsdS(N(( R!R-R.R$R/R0R1R2R3((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR7scCsdS(N((R!R-((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR:scCsdS(N((R!R=((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR>s(R?R@R5R7R:R>(((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyREs cCsfd}d}|d|d}|d|d}|d|dd|d}tjd |d |S( Nss[0-9]*sc[0-9]*s(\.s)?s(\,s)*s(-s(:t^t$(tretsearch(trawt sensitivitytcategoryt cat_ranget categoriestreg((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pytvalidate_levels icCsd}|dkr%d||f}n|}tj|\}}|dkrP|S|ri|t|}n|dkry|S|SdS(Nsa:b:c:is%s%siR (tselinuxtselinux_raw_to_trans_contexttlen(RJtprependtfillertcontexttrcttrans((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyt translates   cCsd}|dkr%d||f}n|}tj|\}}|dkrP|S|ri|t|}n|dkry|S|SdS(Nsa:b:c:is%s%siR (RQtselinux_trans_to_raw_contextRS(RXRTRURVRWRJ((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyt untranslates   tsemanageRecordscBskeZeZd Zd ZdZdZdZ dZ dZ dZ dZ dZdZRS( cCsdt|_|j||_tj\}}|dksE||krTt|_n t|_dS(NR ( tFalsetnoreloadt get_handletshRQtselinux_getpolicytypeRtmylogRE(R!tstoreRWt localstore((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR"s  cCs|st|_ndS(N(tTrueR^(R!tload((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyt set_reloadscCsFtjrtjSt}|s4ttdntj rf|dkrft||t|t_nt |st |ttdnt |}|t krt |ttdnt |}|dkrt |ttdnt|atdkr6t |ttdn|t_tjS(Ns Could not create semanage handleR s:SELinux policy is not managed or store cannot be accessed.sCannot read policy store.is'Could not establish semanage connections!Could not test MLS enabled status(R\thandletsemanage_handle_createt ValueErrorRt transactiontsemanage_select_storetSEMANAGE_CON_DIRECTRctsemanage_is_managedtsemanage_handle_destroytsemanage_access_checktSEMANAGE_CAN_READtsemanage_connecttsemanage_mls_enabledtis_mls_enabled(R!RcRhRW((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR_s2               cCsttddS(NsNot yet implemented(RjR(R!((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyt deleteall"scCs5tjrttdn|jtt_dS(Ns(Semanage transaction already in progress(R\RkRjRtbeginRe(R!((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pytstart%s  cCsAtjr dSt|j}|dkr=ttdndS(Nis$Could not start semanage transaction(R\Rktsemanage_begin_transactionR`RjR(R!RW((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRv+s   cCsttddS(NsNot yet implemented(RjR(R!((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyt customized2scCs}tjr dS|jr)t|jdnt|j}|dkri|jjdtt dn|jjddS(Nis%Could not commit semanage transactioni( R\RkR^tsemanage_set_reloadR`tsemanage_commitRbR>RjR(R!RW((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR>5s   cCs5tjsttdntt_|jdS(Ns$Semanage transaction not in progress(R\RkRjRR]R>(R!((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pytfinishAs  N(R?R@R]RkRARhRcR"RgR_RuRwRvRyR>R|(((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR\s  $     t moduleRecordscBs_eZdZdZdZeedZdZdZ dZ dZ dZ RS( cCstj||dS(N(R\R"(R!Rc((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR"Jsc Csg}t|j\}}}|dkr?ttdnx t|D]}t||}t|j|\}}|dkrttdnt|j|\}}|dkrttdnt|j|\}} |dkr ttdnt |j|\}} |dkrEttdn|j ||| | fqLW|j ddd t |j dd |S( NisCould not list SELinux modulessCould not get module namesCould not get module enabledsCould not get module prioritysCould not get module lang_exttkeycSs|dS(Ni((tt((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pytistreversecSs|dS(Ni((R((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRjs( tsemanage_module_list_allR`RjRR'tsemanage_module_list_nthtsemanage_module_info_get_namet semanage_module_info_get_enabledt!semanage_module_info_get_priorityt!semanage_module_info_get_lang_extR(tsortRe( R!RRWtmlisttnumbertitmodR.tenabledtprioritytlang_ext((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pytget_allMs,     cCsd|j}t|dkr"dSgg|D]}|ddkr,|^q,D]}d|d^qLS(Niis-d %s(RRS(R!tALLRtx((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRyms cCs|j}t|dkr"dS|rOdtdtdtdfGHnx`|D]X}|ddkr{td}n|rqVnd}d |d|d |d |fGHqVWdS( Nis %-25s %-9s %s s Module NametPrioritytLanguageitDisabledR s%-25s %-9s %-5s %sii(RRSR(R!theadingt locallistRRtdisabled((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pytlistss ' cCs|sttdntjj|sFttd|nt|j|}|dkr}ttd|nt|j|}|dkr|jndS(NsYou did not define module name.sModule does not exists %s is3Invalid priority %d (needs to be between 1 and 999)( RjRtostpathtexiststsemanage_set_default_priorityR`tsemanage_module_install_fileR>(R!tmoduleRRW((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pytadds  cCs|sttdnx|jD]}t|j\}}|dkrdttdnt|j||}|dkrttdnt|j||}|dkr(|rttd|qttd|q(q(W|jdS(NsYou did not define module name.isCould not create module keysCould not set module key namesCould not enable module %ssCould not disable module %s(RjRtsplittsemanage_module_key_createR`tsemanage_module_key_set_nametsemanage_module_set_enabledR>(R!RtenabletmRWR~((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyt set_enableds   cCsZtjj|s+ttd|nt|j|}|dkrV|jndS(NsModule does not exists %s i(RRRRjRRR`R>(R!RRW((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pytmodifys  cCs|sttdnt|j|}|dkrRttd|nxW|jD]I}t|j|}|dkr_|dkr_ttd|q_q_W|jdS(NsYou did not define module name.is3Invalid priority %d (needs to be between 1 and 999)is*Could not remove module %s (remove failed)(RjRRR`Rtsemanage_module_removeR>(R!RRRWR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pytdeletes cCskgg|jD]}|ddkr|^qD]}|d^q0}x|D]}|j|tqMWdS(Nii(RRRe(R!RRRR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRusF ( R?R@R"RRyReR]RRRRRRu(((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR}Hs     tdontauditClasscBseZdZdZRS(cCstj||dS(N(R\R"(R!Rc((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR"scCsQ|dkr!ttdn|jt|j|dk}|jdS(Ntontoffs'dontaudit requires either 'on' or 'off'(RR(RjRRvtsemanage_set_disable_dontauditR`R>(R!t dontauditRW((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyttoggles   (R?R@R"R(((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs tpermissiveRecordscBsDeZdZdZeedZdZdZdZ RS(cCstj||dS(N(R\R"(R!Rc((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR"scCsg}t|j\}}}|dkr?ttdnxat|D]S}t||}t|}|rL|jdrL|j|j ddqLqLW|S(NisCould not list SELinux modulest permissive_i( tsemanage_module_listR`RjRR'Rtsemanage_module_get_namet startswithR(R(R!RRWRRRRR.((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs  !cCsggtjtjD]}|dr|^qD]}|d^q0}t|dkr\dS|j}|rdtdGHnx|D] }|GHqW|rdS|rdtdGHnx"|D]}||kr|GHqqWdS(Nt permissiveR.is %-25s sCustomized Permissive TypessBuiltin Permissive Types(tsepolicytinfotTYPERSRR(R!RRRtyRRyR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRsF     cCsddl}|tjkr7ttd|nyddlj}Wn#tk rottdnXd|}d|}t|j |t ||d}|dkr|j n|dkrttd|ndS( Nis%s is not a domain typesThe sepolgen python module is required to setup permissive domains. In some distributions it is included in the policycoreutils-devel patckage. # yum install policycoreutils-devel Or similar for your distro.s permissive_%ss(typepermissive %s)tcilis?Could not set permissive domain %s (module installation failed)( tglobRtget_all_domainsRjRtsepolgen.moduleRt ImportErrortsemanage_module_installR`RSR>(R!tsetypeRRR.tmodtxtRW((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs    !   cCs`xO|jD]A}t|jd|}|dkr ttd|q q W|jdS(Ns permissive_%sis5Could not remove permissive domain %s (remove failed)(RRR`RjRR>(R!R.tnRW((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR s  cCs;|j}t|dkr7|jdj|ndS(Nit (RRSRtjoin(R!R((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRus ( R?R@R"RReR]RRRRu(((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs     t loginRecordscBseZddZdZdZdd dZdd dZdZdZ dZ d Z e d Z d Zee d ZRS(R cCs8tj||d|_d|_d|_d|_dS(N(R\R"RAR1R3R$R0(R!Rc((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR"s    c Cstj|\}|_|_|dkr3d}nt}|j|jd\}}|j|\}\}} tdkr|rt|}q|}nt|j |\}} |dkrt t d|nt |j | \}} |dkrt t d|n| r:t | |j|||S|ddkrytj|dWqt t d|dqXn1ytj|Wnt t d |nXt|j \}} |dkrt t d |nt|j | |}|dkr+t t d |n|rnt|j | |}|dkrnt t d |qnnt|j | |}|dkrt t d |nt|j | | }|dkrt t d|nt | t| dS(NR tuser_uiisCould not create a key for %ss2Could not check if login mapping for %s is definedt%sLinux Group %s does not existsLinux User %s does not exists%Could not create login mapping for %ssCould not set name for %ssCould not set MLS range for %ss!Could not set SELinux user for %ss"Could not add login mapping for %s(RQtgetseuserbynameR1R3tseluserRecordstgetRtR[tsemanage_seuser_key_createR`RjRtsemanage_seuser_existstsemanage_seuser_key_freet_loginRecords__modifytgrptgetgrnamtpwdtgetpwnamtsemanage_seuser_createtsemanage_seuser_set_nametsemanage_seuser_set_mlsrangetsemanage_seuser_set_senametsemanage_seuser_modify_localtsemanage_seuser_free( R!R.R$R0trectuserrecRWR2tRANGER/tkRtu((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyt__add s\        !      cCsKy+|j|j||||jWntk rF}|nXdS(N(Rvt_loginRecords__addR>Rj(R!R.R$R0terror((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR]s  c CsWtj|\}|_|_|dkrF| rFttdnt}|j|j\}\}}|dkr|j|\}\}} n|} |r||_n ||_t |j |\}} |dkrttd|nt |j | \}} |dkr2ttd|n| sQttd|nt |j | \}} |dkrttd|nt | |_t| |_|rt|j | t|n|dkrt|j | |||_n |j|_t|j | | }|dkr?ttd|nt| t| dS( NR sRequires seuser or serangeisCould not create a key for %ss2Could not check if login mapping for %s is defineds#Login mapping for %s is not definedsCould not query seuser for %ss%Could not modify login mapping for %s(RQRR1R3RjRRRR0RR`Rtsemanage_seuser_querytsemanage_seuser_get_mlsrangetsemanage_seuser_get_senameRR[RR$RRR( R!R.R$R0RRRRWR2R/RRR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyt__modifyesF            cCsKy+|j|j||||jWntk rF}|nXdS(N(RvRR>Rj(R!R.R$R0R((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs  c Cstj|\}|_|_t}|j|j\}\}}t|j|\}}|dkrtt d|nt |j|\}}|dkrtt d|n|stt d|nt |j|\}}|dkrtt d|n|s:tt d|nt |j|}|dkrqtt d|nt |tjd\}|_|_|j|j\}\}} dS(NisCould not create a key for %ss2Could not check if login mapping for %s is defineds#Login mapping for %s is not defineds<Login mapping for %s is defined in policy, cannot be deleteds%Could not delete login mapping for %st __default__(RQRR1R3RRRR`RjRRtsemanage_seuser_exists_localtsemanage_seuser_del_localRR$R0( R!R.RRRRWR2RRR/((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyt__deletes,      cCsEy%|j|j||jWntk r@}|nXdS(N(Rvt_loginRecords__deleteR>Rj(R!R.R((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs   cCst|j\}}|dkr6ttdny<|jx!|D]}|jt|qJW|jWntk r}|nXdS(NisCould not list login mappings(tsemanage_seuser_list_localR`RjRRvRtsemanage_seuser_get_nameR>(R!RWtulistRR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRus   cCsi}tjd|_xtj|jD]\}}}||jkr,x|D]v}y\t|d|}|jjjd}|j |d|d|df||RjRb(R!R.RRR0RR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRjs cCs+d}d}dj|}|dkrt|dkr| r|dkrtdkrmttdqttdnt|j|\} } | dkrttd|nt|j| \} } | dkrttd|n| sttd |nt|j| \} } | dkrXttd |nt | }t |j| \} } | dkrdj| }n|rt |j| t |n|dkrt |j| t |n|dkrt|j| |nt|dkr{x*| D]"}||krt| |qqWx3|D](}|| krLt|j| |qLqLWnt|j| | } | dkrttd |nt| t| d j|j}d j|j}|jjd d|d|d|d|d|d|dS(NR Riis&Requires prefix, roles, level or rangesRequires prefix or rolessCould not create a key for %ss-Could not check if SELinux user %s is definedsSELinux user %s is not definedsCould not query user for %ss Could not modify SELinux user %sR%R R$R1R/R0R2R3(RRSRtRjRRR`RRRRRR[RRtsemanage_user_del_roleRRRRRRbR5(R!R.RRR0RR2R3tnewrolesRWRRRtrlistRR&((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRssV1               cCsay1|j|j||||||jWn)tk r\}|jjd|nXdS(Ni(RvRR>RjRb(R!R.RRR0RR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs c Cst|j|\}}|dkr=ttd|nt|j|\}}|dkrzttd|n|sttd|nt|j|\}}|dkrttd|n|sttd|nt|j|\}}|dkr2ttd|nt|}t|j|\}}dj |}t |j|}|dkrttd|nt |t ||j jd d |d |d |dS( NisCould not create a key for %ss-Could not check if SELinux user %s is definedsSELinux user %s is not defineds7SELinux user %s is defined in policy, cannot be deletedsCould not query user for %sR%s Could not delete SELinux user %sR R1R3R2(RR`RjRRtsemanage_user_exists_localRRRRtsemanage_user_del_localRRRbR7( R!R.RWRRRR3RR2((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs2        cCsUy%|j|j||jWn)tk rP}|jjd|nXdS(Ni(Rvt_seluserRecords__deleteR>RjRb(R!R.R((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs  cCst|j\}}|dkr6ttdnyW|jx<|D]4}y|jt|WqJtk r}qJqJXqJW|jWn)tk r}|j jd|nXdS(NisCould not list login mappings( tsemanage_user_list_localR`RjRRvR!tsemanage_user_get_nametOSErrorR>Rb(R!RWRRR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRus     cCsi}|r't|j\}|_nt|j\}|_|dkr`ttdnx|jD]}t|}t|j|\}}|dkrttd|ndj|}t |t |t ||f|t| 9 !   t portRecordscBseZgZddZdZdZdZdZdZdZ dZ d Z e d Z e d Zd Zee d ZRS(R cCsLtj||y$tjtjddd|_Wntk rGnXdS(Nt port_typeittypes(R\R"RRt ATTRIBUTEt valid_typest RuntimeError(R!Rc((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR"'s $ c Cs7|dkrt}n'|dkr*t}nttd|dkr]ttdn|jd}t|dkrt|d}}n t|d}t|d}|d krttd nt|j|||\}}|dkr'ttd i|d 6|d 6n||||fS(NttcptudpsProtocol udp or tcp is requiredR sPort is requiredR#iiis Invalid Ports1Could not create a key for %(PROTOTYPE)s/%(PORT)st PROTOTYPEtPORT( tSEMANAGE_PROTO_TCPtSEMANAGE_PROTO_UDPRjRRRStinttsemanage_port_key_createR`( R!tporttprototproto_dtportsthightlowRWR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyt__genkey.s$       'c Cstdkr*|r!t|}q*d}n|dkrKttdntj||jkr|ttd|n|j||\}}}}tj rt |j |\} } nt |j |\} } | dkr ttdi|d6|d 6n| r6ttd i|d6|d 6nt |j \} } | dkr~ttd i|d6|d 6nt| |t| ||t|j \} } | dkrttd i|d6|d 6nt|j | d } | dkr+ttdi|d6|d 6nt|j | d} | dkrsttdi|d6|d 6nt|j | |} | dkrttdi|d6|d 6n|r t|j | |} | dkr ttdi|d6|d 6q nt|j | | } | dkrTttdi|d6|d 6nt|j || } | dkrttdi|d6|d 6nt| t|t| |jjd|tj|d d||fdS(NiR R sType is requireds'Type %s is invalid, must be a port typeis8Could not check if port %(PROTOCOL)s/%(PORT)s is definedtPROTOCOLR3s*Port %(PROTOCOL)s/%(PORT)s already defineds/Could not create port for %(PROTOCOL)s/%(PORT)ss2Could not create context for %(PROTOCOL)s/%(PORT)stsystem_us<Could not set user in port context for %(PROTOCOL)s/%(PORT)stobject_rs<Could not set role in port context for %(PROTOCOL)s/%(PORT)ss<Could not set type in port context for %(PROTOCOL)s/%(PORT)ssBCould not set mls fields in port context for %(PROTOCOL)s/%(PORT)ss4Could not set port context for %(PROTOCOL)s/%(PORT)ss(Could not add port %(PROTOCOL)s/%(PORT)ss8resrc=port op=add lport=%s proto=%s tcontext=%s:%s:%s:%s(RtR[RjRRtget_real_type_nameR.t_portRecords__genkeyR\Rktsemanage_port_exists_localR`tsemanage_port_existstsemanage_port_createtsemanage_port_set_prototsemanage_port_set_rangetsemanage_context_createtsemanage_context_set_usertsemanage_context_set_roletsemanage_context_set_typetsemanage_context_set_mlstsemanage_port_set_contsemanage_port_modify_localtsemanage_context_freetsemanage_port_key_freetsemanage_port_freeRbR:Rtgetprotobyname( R!R8R9R0ttypeRR:R=R<RWRRtcon((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRHs^     '' '  ' ' ' ' * ' '   cCs.|j|j|||||jdS(N(Rvt_portRecords__addR>(R!R8R9R0RT((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs c CsF| rI|dkrItdkr4ttdqIttdn|rtj||jkrttd|n|j||\}}}}t|j|\} } | dkrttdi|d6|d 6n| sttd i|d6|d 6nt |j|\} } | dkrattd i|d6|d 6nt | } |rt |j| t |nd }|dkrt |j| |nt|j|| } | dkrttd i|d6|d 6nt|t| |jjd|tj|dd||fdS(NR isRequires setype or serangesRequires setypes1Type %s is invalid, must be a file or device typeis9Could not check if port @%(PROTOCOL)s/%(PORT)s is definedR?R3s*Port @%(PROTOCOL)s/%(PORT)s is not defineds*Could not query port %(PROTOCOL)s/%(PORT)sR s+Could not modify port %(PROTOCOL)s/%(PORT)ss;resrc=port op=modify lport=%s proto=%s tcontext=%s:%s:%s:%sR@RA(RtRjRRRBR.RCRER`tsemanage_port_querytsemanage_port_get_conRMR[RLRORQRRRbR:RRS( R!R8R9R0RRR:R=R<RWRRRU((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs6  '' '   '  cCs.|j|j|||||jdS(N(Rvt_portRecords__modifyR>(R!R8R9R0R((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs c Cs[t|j\}}|dkr6ttdn|jx |D]}t|}t|}t|}t|}d||f}|j ||\} } }}|dkrttd|nt |j| }|dkrttd|nt | ||kr&|}n|j j d|tj|fqGW|jdS(NisCould not list the portss%s-%ssCould not create a key for %ssCould not delete the port %ss&resrc=port op=delete lport=%s proto=%s(tsemanage_port_list_localR`RjRRvtsemanage_port_get_prototsemanage_port_get_proto_strtsemanage_port_get_lowtsemanage_port_get_highRCtsemanage_port_del_localRQRbR:RRSR>( R!RWtplistR8R9t proto_strR=R<tport_strRR:((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRus*            'c Cs|j||\}}}}t|j|\}}|dkrittdi|d6|d6n|sttdi|d6|d6nt|j|\}}|dkrttdi|d6|d6n|sttdi|d6|d6nt|j|}|dkrSttdi|d6|d6nt||jj d|t j |fdS( Nis8Could not check if port %(PROTOCOL)s/%(PORT)s is definedR?R3s)Port %(PROTOCOL)s/%(PORT)s is not definedsBPort %(PROTOCOL)s/%(PORT)s is defined in policy, cannot be deleteds+Could not delete port %(PROTOCOL)s/%(PORT)ss&resrc=port op=delete lport=%s proto=%s( RCRER`RjRRDR_RQRbR:RRS( R!R8R9RR:R=R<RWR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs  '' '' ' cCs(|j|j|||jdS(N(Rvt_portRecords__deleteR>(R!R8R9((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs c Csi}|r't|j\}|_nt|j\}|_|dkr`ttdnx~|jD]s}t|}t|}t|}t |}t |} t |} t |} ||f|| | | fBst ibpkey_typeiR,(R\R"tsetRRR-R.(R!Rc((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR"?s 4cCs|dkr!ttdn|jd}t|dkr\t|dd}}n&t|dd}t|dd}|dkrttdnt|j|||\}}|dkrttd||fn||||fS( NR sSubnet Prefix is requiredR#iiis Invalid Pkeys Could not create a key for %s/%s(RjRRRSR6tsemanage_ibpkey_key_createR`(R!tpkeyt subnet_prefixtpkeysR<R=RWR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR>Fs   c Cshtdkr0|dkr!d}q0t|}n|dkrQttdntj||jkrttd|n|j||\}}}}t|j |\}} |dkrttd||fn| rttd||fnt |j \}} |dkrHttd ||fnt |j | |t | ||t |j \}} |dkrttd ||fnt|j | d }|dkrttd ||fnt|j | d }|dkr+ttd||fnt|j | |}|dkrkttd||fntdkr|dkrt|j | |}|dkrttd||fqnt|j | | }|dkrttd||fnt|j || }|dkrFttd||fnt| t|t| dS(NiR R sType is requireds)Type %s is invalid, must be a ibpkey typeis*Could not check if ibpkey %s/%s is definedsibpkey %s/%s already defineds!Could not create ibpkey for %s/%ss"Could not create context for %s/%sR@s.Could not set user in ibpkey context for %s/%sRAs.Could not set role in ibpkey context for %s/%ss.Could not set type in ibpkey context for %s/%ss4Could not set mls fields in ibpkey context for %s/%ss&Could not set ibpkey context for %s/%ssCould not add ibpkey %s/%s(RtR[RjRRRBR.t_ibpkeyRecords__genkeytsemanage_ibpkey_existsR`tsemanage_ibpkey_createt!semanage_ibpkey_set_subnet_prefixtsemanage_ibpkey_set_rangeRIRJRKRLRMtsemanage_ibpkey_set_contsemanage_ibpkey_modify_localRPtsemanage_ibpkey_key_freetsemanage_ibpkey_free( R!RpRqR0RTRR=R<RWRRRU((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRYsX           "    cCs.|j|j|||||jdS(N(Rvt_ibpkeyRecords__addR>(R!RpRqR0RT((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs c Cs|dkrN|dkrNtdkr9ttdqNttdn|rtj||jkrttd|n|j||\}}}}t|j|\}} |dkrttd||fn| s ttd||fnt |j|\}} |dkrNttd ||fnt | } tdkr|dkrt |j| t |n|dkrt |j| |nt|j|| }|dkrttd ||fnt|t| dS( NR isRequires setype or serangesRequires setypes)Type %s is invalid, must be a ibpkey typeis*Could not check if ibpkey %s/%s is definedsibpkey %s/%s is not definedsCould not query ibpkey %s/%ssCould not modify ibpkey %s/%s(RtRjRRRBR.RsRtR`tsemanage_ibpkey_querytsemanage_ibpkey_get_conRMR[RLRyRzR{( R!RpRqR0RRR=R<RWRRRU((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs2       cCs.|j|j|||||jdS(N(Rvt_ibpkeyRecords__modifyR>(R!RpRqR0R((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs c Cs#t|j\}}|dkr6ttdn|jx|D]}t|j|\}}t|}t|}d||f}|j||\}}}}|dkrttd|nt |j|}|dkrttd|nt |qGW|j dS(NisCould not list the ibpkeyss%s-%ssCould not create a key for %ssCould not delete the ibpkey %s( tsemanage_ibpkey_list_localR`RjRRvt!semanage_ibpkey_get_subnet_prefixtsemanage_ibpkey_get_lowtsemanage_ibpkey_get_highRstsemanage_ibpkey_del_localRzR>( R!RWR`tibpkeyRqR=R<tpkey_strR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRus"       cCs9|j||\}}}}t|j|\}}|dkrattd||fn|sttd||fnt|j|\}}|dkrttd||fn|sttd||fnt|j|}|dkr+ttd||fnt|dS(Nis*Could not check if ibpkey %s/%s is definedsibpkey %s/%s is not defineds4ibpkey %s/%s is defined in policy, cannot be deletedsCould not delete ibpkey %s/%s(RsRtR`RjRtsemanage_ibpkey_exists_localRRz(R!RpRqRR=R<RWR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs   cCs(|j|j|||jdS(N(Rvt_ibpkeyRecords__deleteR>(R!RpRq((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs ic Csi}|r't|j\}|_nt|j\}|_|dkr`ttdnx|jD]}t|}t|}|dkrqjnt|}t |j|\}}t |} t |} ||f|| | |fBstibendport_typeiR,(R\R"RnRRR-R.(R!Rc((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR"?s 4cCs|dkr!ttdnt|}|dksE|dkrZttdnt|j||\}}|dkrttd||fn|||fS(NR sIB device name is requirediisInvalid Port Numberis*Could not create a key for ibendport %s/%s(RjRR6tsemanage_ibendport_key_createR`(R!t ibendportt ibdev_nameR8RWR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR>Fs   c Csbtdkr0|dkr!d}q0t|}n|dkrQttdntj||jkrttd|n|j||\}}}t|j |\}}|dkrttd||fn|rttd||fnt |j \}} |dkrEttd ||fnt |j | |t | |t |j \}} |dkrttd ||fnt|j | d }|dkrttd ||fnt|j | d }|dkr%ttd||fnt|j | |}|dkrettd||fntdkr|dkrt|j | |}|dkrttd||fqnt|j | | }|dkrttd||fnt|j || }|dkr@ttd||fnt| t|t| dS(NiR R sType is requireds-Type %s is invalid, must be an ibendport typeis-Could not check if ibendport %s/%s is definedsibendport %s/%s already defineds$Could not create ibendport for %s/%ss"Could not create context for %s/%sR@s1Could not set user in ibendport context for %s/%sRAs1Could not set role in ibendport context for %s/%ss1Could not set type in ibendport context for %s/%ss7Could not set mls fields in ibendport context for %s/%ss)Could not set ibendport context for %s/%ssCould not add ibendport %s/%s(RtR[RjRRRBR.t_ibendportRecords__genkeytsemanage_ibendport_existsR`tsemanage_ibendport_createt!semanage_ibendport_set_ibdev_nametsemanage_ibendport_set_portRIRJRKRLRMtsemanage_ibendport_set_contsemanage_ibendport_modify_localRPtsemanage_ibendport_key_freetsemanage_ibendport_free( R!RRR0RTRR8RWRRRU((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRTsX            "    cCs.|j|j|||||jdS(N(Rvt_ibendportRecords__addR>(R!RRR0RT((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs c Cs|dkrN|dkrNtdkr9ttdqNttdn|rtj||jkrttd|n|j||\}}}t|j|\}}|dkrttd||fn|sttd||fnt |j|\}} |dkrKttd ||fnt | } tdkr|dkrt |j| t |n|dkrt |j| |nt|j|| }|dkrttd ||fnt|t| dS( NR isRequires setype or serangesRequires setypes-Type %s is invalid, must be an ibendport typeis-Could not check if ibendport %s/%s is definedsibendport %s/%s is not definedsCould not query ibendport %s/%ss Could not modify ibendport %s/%s(RtRjRRRBR.RRR`tsemanage_ibendport_querytsemanage_ibendport_get_conRMR[RLRRR( R!RRR0RRR8RWRRRU((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs2       cCs.|j|j|||||jdS(N(Rvt_ibendportRecords__modifyR>(R!RRR0R((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs cCst|j\}}|dkr6ttdn|jx|D]}t|j|\}}t|}|jt||\}}}|dkrttdt |fnt |j|}|dkrttd||fnt |qGW|j dS(NisCould not list the ibendportss Could not create a key for %s/%ds$Could not delete the ibendport %s/%d( tsemanage_ibendport_list_localR`RjRRvt!semanage_ibendport_get_ibdev_nametsemanage_ibendport_get_portRR,t ibdevnametsemanage_ibendport_del_localRR>(R!RWR`RRR8R((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRus    !  cCs6|j||\}}}t|j|\}}|dkr^ttd||fn|sttd||fnt|j|\}}|dkrttd||fn|sttd||fnt|j|}|dkr(ttd||fnt|dS(Nis-Could not check if ibendport %s/%s is definedsibendport %s/%s is not defineds7ibendport %s/%s is defined in policy, cannot be deleteds Could not delete ibendport %s/%s(RRR`RjRtsemanage_ibendport_exists_localRR(R!RRRR8RWR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs   cCs(|j|j|||jdS(N(Rvt_ibendportRecords__deleteR>(R!RR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs ic Csi}|r't|j\}|_nt|j\}|_|dkr`ttdnx|jD]v}t|}t|}|dkrqjnt|}t |j|\}}t |} ||f|| |f(R!RRR9R0Rg((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs c Cs4|j|||\}}}| rF|dkrFttdn|r}tj||jkr}ttd|nt|j|||\}}|dkrttd|nt|j|\}}|dkrttd|n|sttd|nt |j|\}} |dkrYttd|nt | } |rt |j| t |n|dkrt |j| |nt|j|| }|dkrttd |nt|t| |jjd ||tj|j|d d ||fdS( NR sRequires setype or seranges'Type %s is invalid, must be a node typeisCould not create key for %ss%Could not check if addr %s is definedsAddr %s is not definedsCould not query addr %ssCould not modify addr %ssFresrc=node op=modify laddr=%s netmask=%s proto=%s tcontext=%s:%s:%s:%sR@RA(RRjRRRBR.RR`Rtsemanage_node_querytsemanage_node_get_conRMR[RLRRRRbR:RRSR( R!RRR9R0RRWRRRRU((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs6        cCs1|j|j||||||jdS(N(RvRR>(R!RRR9R0R((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs cCs|j|||\}}}t|j|||\}}|dkrattd|nt|j|\}}|dkrttd|n|sttd|nt|j|\}}|dkrttd|n|sttd|nt|j|}|dkrPttd|nt||j j d||t j |j |fdS(NisCould not create key for %ss%Could not check if addr %s is definedsAddr %s is not defineds/Addr %s is defined in policy, cannot be deletedsCould not delete addr %ss1resrc=node op=delete laddr=%s netmask=%s proto=%s(RRR`RjRRtsemanage_node_exists_localtsemanage_node_del_localRRbR:RRSR(R!RRR9RWRR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs&     cCs+|j|j||||jdS(N(Rvt_nodeRecords__deleteR>(R!RRR9((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs cCst|j\}}|dkr6ttdn|jxN|D]F}|jt|j|dt|j|d|jt |qGW|j dS(Nis!Could not deleteall node mappingsi( tsemanage_node_list_localR`RjRRvRtsemanage_node_get_addrtsemanage_node_get_maskRtsemanage_node_get_protoR>(R!RWtnlistR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRus   Dc Csi}|r't|j\}|_nt|j\}|_|dkr`ttdnx|jD]}t|}t|j|}t|j|}|j t |}t |t |t |t|f||d|d|f(R!RR0Rg((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRks c Cs| r(|dkr(ttdnt|j|\}}|dkrettd|nt|j|\}}|dkrttd|n|sttd|nt|j|\}}|dkrttd|nt|}|r,t|j|t|n|dkrNt |j||nt |j||}|dkrttd|nt |t ||j jd |d d ||fdS( NR sRequires setype or serangeisCould not create key for %ss*Could not check if interface %s is definedsInterface %s is not definedsCould not query interface %ssCould not modify interface %ss7resrc=interface op=modify netif=%s tcontext=%s:%s:%s:%sR@RA(RjRRR`Rtsemanage_iface_querytsemanage_iface_get_ifconRMR[RLRRRRbR:( R!RR0RRWRRRRU((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRps0        cCs+|j|j||||jdS(N(RvRR>(R!RR0R((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs cCsNt|j|\}}|dkr=ttd|nt|j|\}}|dkrzttd|n|sttd|nt|j|\}}|dkrttd|n|sttd|nt|j|}|dkr,ttd|nt||jj d|dS(NisCould not create key for %ss*Could not check if interface %s is definedsInterface %s is not defineds4Interface %s is defined in policy, cannot be deletedsCould not delete interface %ss"resrc=interface op=delete netif=%s( RR`RjRRtsemanage_iface_exists_localtsemanage_iface_del_localRRbR:(R!RRWRR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs$     cCs%|j|j||jdS(N(Rvt_interfaceRecords__deleteR>(R!R((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs  cCsrt|j\}}|dkr6ttdn|jx!|D]}|jt|qGW|jdS(Nis(Could not delete all interface mappings(tsemanage_iface_list_localR`RjRRvRtsemanage_iface_get_nameR>(R!RWRR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRus   cCsi}|r't|j\}|_nt|j\}|_|dkr`ttdnxQ|jD]F}t|}t|t|t |t |f|t |x;|D]3}d |||d||d||dfGHqWdS( Nis %-30s %s sSELinux InterfaceRs%-30s %s:%s:%s:%s iiis%-30s %s:%s:%s ( RRRRSRRRtRYR](R!RRRRR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs  H (R?R@R"RRRRRRRuR]RRyReR(((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR&s  A  "     tfcontextRecordscBseZgZddZdZdZdZddZdZddddZ dddd Z d Z d Z d Zd ZdZedZdZeedZRS(R cCstj||yJtjtjddd|_|jtjtjddd7_Wntk rmnXi|_i|_t |_ yt t j d}xl|jD]^}|j}t|dkrqn|jdrqn|j\}}||j|(R!t subs_filettmpfileRR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR> s   " $ c Cs|j|dkr?|ddkr?ttd|n|dkrt|ddkrtttd|n|t|jjkrttd|n|j|xp|j|jfD]\}xS|D]K}|j|drttdi|d6|d6||d 6qqWqW|j j d t j d |d t j d |d f||j|(R!RRtfdictR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyt add_equal# s    :8  cCs|j|t|jjkr>ttd|n||j|(R!RR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyt modify_equal: s   8R@cCst|j\}}|dkr:ttd|n|dkrOd}nt|j||}|dkrttd|nt|j|d}|dkrttd|ntdkr t|j|d }|dkr ttd |q n|S( NisCould not create context for %sR R@s)Could not set user in file context for %sRAs)Could not set role in file context for %siR s/Could not set mls fields in file context for %s(RIR`RjRRJRKRtRM(R!RR RWRU((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyt createconC s        cCs|dks!|jddkr6ttdn|jddkr`ttdnx|j|jfD]|}xs|D]k}|j|drtj||||}ttd i|d 6|d 6||d 6|d 6qqWqsWdS(NR s isInvalid file specificationRis)File specification can not include spacesRsjFile spec %(TARGET)s conflicts with equivalency rule '%(SOURCE)s %(DEST)s'; Try adding '%(DEST1)s' insteadRRRtDEST1(tfindRjRRRRRHtsub(R!RRRR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRY s! c Cs|j||dkr"d}ntdkrLt|}|sLd}qLn|dkrmttdn|dkrtj||jkrttd|nt|j |t |\}}|dkrttd |nt |j |\}}|dkr+ttd |n|sqt |j |\}}|dkrqttd |qqn|rt ||j|||||St|j \}} |dkrttd |nt|j | |}|dkr|j||} t|j | |}|dkrAttd |n|rt|j | |}|dkrttd |qnt|j | | }|dkrttd|qnt| t |t|j || }|dkr ttd|n|dkr%t| nt |t| |sHd}n|jjdtjd|dt||d||fdS(NR R@iR sSELinux Type is requireds<>s1Type %s is invalid, must be a file or device typeisCould not create key for %ss1Could not check if file context for %s is defineds$Could not create file context for %ss)Could not set type in file context for %ss/Could not set mls fields in file context for %ss!Could not set file context for %ss!Could not add file context for %ss6resrc=fcontext op=add %s ftype=%s tcontext=%s:%s:%s:%sRRA(RRtR[RjRRRBR.tsemanage_fcontext_key_createR`t file_typestsemanage_fcontext_existstsemanage_fcontext_exists_localtsemanage_fcontext_key_freet_fcontextRecords__modifytsemanage_fcontext_createtsemanage_fcontext_set_exprR RLRMtsemanage_fcontext_set_contsemanage_fcontext_set_typetsemanage_fcontext_modify_localRPtsemanage_fcontext_freeRbR:RRtftype_to_audit( R!RRTtftypeR0R RWRRtfcontextRU((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRe sf       $               cCs1|j|j||||||jdS(N(Rvt_fcontextRecords__addR>(R!RRTRR0R ((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR s c Csa|r3|dkr3|dkr3ttdn|dkrptj||jkrpttd|n|j|t|j|t|\}}|dkrttd|nt |j|\}}|dkrttd|n|s>t |j|\}}|s>ttd|q>nyt |j|\}} WnWt k ryt |j|\}} Wqt k rttd |qXnX|dkrt| } | dkr|j|} n|r t|j| t|n|dkr.t|j| |n|dkrPt|j| |nt|j| | }|dkrttd |qn:t|j| d}|dkrttd |nt|j|| }|dkrttd |nt|t| |s$d }n|jjd tjd|dt||d||fdS(NR s"Requires setype, serange or seusers<>s1Type %s is invalid, must be a file or device typeisCould not create a key for %ss1Could not check if file context for %s is defineds"File context for %s is not defineds#Could not query file context for %ss!Could not set file context for %ss$Could not modify file context for %sR@s9resrc=fcontext op=modify %s ftype=%s tcontext=%s:%s:%s:%sRRA(R s<>(RjRRRBR.RRR`RRRtsemanage_fcontext_query_localR$tsemanage_fcontext_querytsemanage_fcontext_get_conRAR RMR[RJRLRRRRRbR:RRR( R!RRRR0R RWRRRRU((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR s\$                cCs1|j|j||||||jdS(N(RvRR>(R!RRRR0R ((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR s cCsKt|j\}}|dkr6ttdn|jx|D]}t|}t|}t|}t|j|t |\}}|dkrttd|nt |j|}|dkrttd|nt ||j j dtjd|dtt|fqGWi|_t|_|jdS(Nis Could not list the file contextssCould not create a key for %ss$Could not delete the file context %ss$resrc=fcontext op=delete %s ftype=%sR(tsemanage_fcontext_list_localR`RjRRvtsemanage_fcontext_get_exprtsemanage_fcontext_get_typetsemanage_fcontext_get_type_strRRtsemanage_fcontext_del_localRRbR:RRRtfile_type_str_to_optionRReRR>(R!RWtflistRRRt ftype_strR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRu s&         5  cCs|t|jjkr[|jj|t|_|jjdtj d|ddSt |j |t |\}}|dkrt td|nt|j |\}}|dkrt td|n|sWt|j |\}}|dkrt td|n|r>t td|qWt td|nt|j |}|dkrt td|nt||jjd tj d|dt|fdS( Ns!resrc=fcontext op=delete-equal %sRisCould not create a key for %ss1Could not check if file context for %s is defineds;File context for %s is defined in policy, cannot be deleteds"File context for %s is not defineds$Could not delete file context for %ss$resrc=fcontext op=delete %s ftype=%s(RRRtpopReRRbR:RRRR`RRjRRRR&RR(R!RRRWRR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR s. #     cCs(|j|j|||jdS(N(Rvt_fcontextRecords__deleteR>(R!RR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR/ s c Cs|r!t|j\}|_nt|j\}|_|dkrZttdnt|j\}}|dkrttdnt|j\}}|dkrttdn|j|7_|j|7_ddlm}|}x|jD]}t |}t |} t | } t |} | rzt | t| t| t| f||| ft|jjD]$}|jd|j||fqWn|S(Nis-a -f %s -t %s -r '%s' '%s'iiis-a -f %s -t %s '%s's -a -e %s %s(RReRRR(R'RSR(R!Rt fcon_dictRRR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRyT s  <5%c Cs|j|}t|j}t|dkr%|r`dtdtdtdfGHnx|D]}||rtrd|d|d||d||d||dt||d tfGHqd |d|d||d||d||dfGHqgd |d|dfGHqgWnt|jr|s|rNtd GHnx6t|jjD]}d ||j|fGHqdWqnt|j r|rtdGHnx6t|j jD]}d ||j |fGHqWndS(Nis%-50s %-18s %s sSELinux fcontextRTRs%-50s %-18s %s:%s:%s:%s iiis%-50s %-18s %s:%s:%s s%-50s %-18s <>s, SELinux Distribution fcontext Equivalence s%s = %ss% SELinux Local fcontext Equivalence ( RRRRSRRtRYR]RR(R!RRR3RRR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRd s,'  O; N(R?R@R.R"R>R R R RRARRRRRuR+RR]RRyReR(((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRs" &    G >   !  tbooleanRecordscBseZddZdZd edZdZdZdZ edZ dZ d Z d Z eeed ZRS( R cCstj||i|_d|jdR=tsemanage_bool_set_activetsemanage_bool_modify_localtsemanage_bool_key_freetsemanage_bool_free(R!R.tvalueRWRRR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyt__mod s0   .   cCs|j|rt|}x|jjdD]}|j}t|dkr\q2ny|jd\}}Wn5tk rttdi|d6|d6nX|j|j|jq2W|j n|j|||j dS(Ns it=s)Bad format %(BOOLNAME)s: Record %(VALUE)stBOOLNAMEtVALUE( RvRRRRRSRjRt_booleanRecords__modRR>(R!R.RJtuse_fileRRtboolnameR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR s    (  cCsItj|}t|j|\}}|dkrLttd|nt|j|\}}|dkrttd|n|sttd|nt|j|\}}|dkrttd|n|sttd|nt|j|}|dkr;ttd|nt |dS(NisCould not create a key for %ss(Could not check if boolean %s is definedsBoolean %s is not defineds2Boolean %s is defined in policy, cannot be deletedsCould not delete boolean %s( RQR@RAR`RjRRBtsemanage_bool_exists_localtsemanage_bool_del_localRH(R!R.RWRR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR s$    cCs%|j|j||jdS(N(Rvt_booleanRecords__deleteR>(R!R.((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR s  cCs~t|j\}|_|dkr9ttdn|jx*|jD]}t|}|j|qMW|jdS(NisCould not list booleans( tsemanage_bool_list_localR`tblistRjRRvtsemanage_bool_get_nameRTR>(R!RWtbooleanR.((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRu s   cCsi}|r't|j\}|_nt|j\}|_|dkr`ttdnx|jD]}g}t|}|jt||j r||j kr|jt j ||jt j |n"|j|d|j|d|||R=RQtsecurity_get_boolean_pendingtsecurity_get_boolean_active(R!RRRWRXRJR.((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR s"  cCstj|}t|S(N(RQR@R(R!R.((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pytget_desc scCstj|}t|S(N(RQR@R(R!R.((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyt get_category scCsrg}|jt}t|j}|jx:|D]2}||r8|jd||d|fq8q8W|S(Ns -m -%s %si(RReRRRR((R!RRRR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyRy s   &cCs=tdtdf}|rx|j|}t|j}x2|D]*}||rFd|||dfGHqFqFWdS|j|}t|j}t|dkrdS|rdtdtdtd td fGHnxQ|D]I}||rd ||||d|||d|j|fGHqqWdS( NRRs%s=%siis%-30s %s %s %s sSELinux booleantStatetDefaultt Descriptions%-30s (%-5s,%5s) %s(RRRRRSR](R!RRRPton_offRRR((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR s"  0  N(R?R@R"RORAR]RRTRRuRR]R^RyReR(((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyR4 s        (ARRtstringRQttempfileRRHR*RtshutilRR8tPROGNAMERRRRtIPyRtgettexttbindtextdomaint textdomaintinstallRet TypeErrorRtbuiltinsR,t__dict__RtRCRtSEMANAGE_FCONTEXT_ALLtSEMANAGE_FCONTEXT_REGtSEMANAGE_FCONTEXT_DIRtSEMANAGE_FCONTEXT_CHARtSEMANAGE_FCONTEXT_BLOCKtSEMANAGE_FCONTEXT_SOCKtSEMANAGE_FCONTEXT_LINKtSEMANAGE_FCONTEXT_PIPER'RRt audit_closeRRR$RRERPRYR[R\R}RRRRR*RkRRRRR4(((s7/usr/lib64/python2.7/site-packages/seobject/__init__.pyts                                                    ""   ^{ H