+
     6g   c                   sz    ^ RI t ] P                  ! RRR7      t]P                   t^ RI5 ^ RIHt  ! R R]4      tR# )	i    Nzsetroubleshoot-pluginsT)Zfallback)Z*)Pluginc                   s   a  ] tR t^t o ]! R4      t]! R4      t]! R4      t]! R4      t]! R4      t	R t
R tR tR	tV tR
# )pluginz^
    SELinux policy is preventing an httpd script from writing to a public
    directory.
    z
    SELinux policy is preventing an httpd script from writing to a public
    directory.  If httpd is not setup to write to public directories, this
    could signal an intrusion attempt.
    a  
    If httpd scripts should be allowed to write to public directories you need to turn on the $BOOLEAN boolean and change the file context of the public directory to public_content_rw_t.  Read the httpd_selinux
    man page for further information:
    "setsebool -P $BOOLEAN=1; chcon -t public_content_rw_t <path>"
    You must also change the default file context labeling files on the system in order to preserve public directory labeling even on a full relabel.  "semanage fcontext -a -t public_content_rw_t <path>"
    zNIf you want to allow $SOURCE_PATH to be able to write to shared public contentzyou need to change the label on $TARGET_PATH to public_content_rw_t, and potentially turn on the allow_httpd_sys_script_anon_write boolean.c                s    R V,          pV# )zo# semanage fcontext -a -t public_content_rw_t $TARGET_PATH
# restorecon -R -v $TARGET_PATH
# setsebool -P %s %s )selfavcZargsZdo_texts   &&& 5/usr/share/setroubleshoot/plugins/allow_anon_write.pyget_do_textZplugin.get_do_text/   s         c                sJ    \         P                  ! V \        4       R V n        R# )ZgreenN)r    __init____name__level)r   s   &r   r   Zplugin.__init__5   s    h'
r   c                sf   VP                  R .4      '       Ed   VP                  VP                  4      '       d   VP                  R.4      '       d   V P	                  R4      # VP                  R.4      '       d   V P	                  R	4      # VP                  R.4      '       d   V P	                  R
4      # VP                  R.4      '       d   V P	                  R4      # VP                  R.4      '       d   V P	                  R4      # VP                  R.4      '       d   V P	                  R4      # R# )Zpublic_content_tZhttpd_tZhttpd_sys_script_tZftpd_tZnfsd_tZrsync_tZsmbd_tN)Zallow_httpd_anon_write1)Z!allow_httpd_sys_script_anon_writer   )Zallow_ftpd_anon_writer   )Zallow_nfsd_anon_writer   )Zallow_rsync_anon_writer   )Zallow_smbd_anon_writer   )Zmatches_target_typesZall_accesses_are_inZcreate_file_permsZmatches_source_typesZreport)r   r   s   &&r   analyzeZplugin.analyze9   s   $$&8%9::''(=(=>>''44{{#BCC'')=(>??{{#MNN''
33{{#ABB''
33{{#ABB''44{{#BCC''
33{{#ABBr   )r
   N)r	   Z
__module__Z__qualname__Z__firstlineno___ZsummaryZproblem_descriptionZfix_descriptionZif_textZ	then_textr   r   r   Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r   r   r      si       	G
   	   	O `aG  `  aI r   r   )ZgettextZtranslationr   Zsetroubleshoot.utilZsetroubleshoot.Pluginr    r   r   r   r   <module>r      s:   &  84H ! (5V 5r   