dbfdg 3 nma@ @sDddlZejdddZejZddlTddlmZGdddeZdS) Nzsetroubleshoot-pluginsT)Zfallback)*)Pluginc@sLeZdZedZedZedZdZedZdZ ddZ d d Z d d Z d S)pluginzO SELinux is preventing $SOURCE_PATH from binding to port $PORT_NUMBER. a SELinux has denied the $SOURCE from binding to a network port $PORT_NUMBER which does not have an SELinux type associated with it. If $SOURCE should be allowed to listen on $PORT_NUMBER, use the semanage command to assign $PORT_NUMBER to a port type that $SOURCE_TYPE can bind to (%s). If $SOURCE is not supposed to bind to $PORT_NUMBER, this could signal an intrusion attempt. aI If you want to allow $SOURCE to bind to port $PORT_NUMBER, you can execute # semanage port -a -t PORT_TYPE -p %s $PORT_NUMBER where PORT_TYPE is one of the following: %s. If this system is running as an NIS Client, turning on the allow_ypbind boolean may fix the problem. setsebool -P allow_ypbind=1. zFIf you want to allow $SOURCE_PATH to bind to network port $PORT_NUMBERz!you need to modify the port type.cCsB|djd}t|dkr&td|Std|d|dfSdS)N,zc# semanage port -a -t PORT_TYPE -p %s $PORT_NUMBER where PORT_TYPE is one of the following: %s.z+# semanage port -a -t %s -p %s $PORT_NUMBERr)splitlen_)selfavcZoptionsZportsr //usr/share/setroubleshoot/plugins/bind_ports.py get_do_text2s   zplugin.get_do_textcCstj|t|jddS)Nd)r__init____name__Z set_priority)r r r rr:s zplugin.__init__cCsN|jddddgrJ|jdgrJ|j}|rJ|j|jjdddj|fSdS) NZhi_reserved_port_tZreserved_port_tZport_tZunreserved_port_tZ name_bindr rz, )Zmatches_target_typesZhas_any_access_inZallowed_target_typesZreportZtclassrjoin)r r Z allowed_typesr r ranalyze>s   zplugin.analyzeN) r __module__ __qualname__r ZsummaryZproblem_descriptionZfix_descriptionZfix_cmdZif_textZ then_textrrrr r r rrsr)gettextZ translationr Zsetroubleshoot.utilZsetroubleshoot.Pluginrrr r r rs