qR d Z ddlZddlZddlZddlZddlmZmZmZm Z m
Z
mZ ddlm
Z
ej e Z G d de
Zd Zd Zd Zd
Z e
ed d
Zd Zd Zd Zd Zd ZdS )u
This program is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License,
or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
Copyright © 2019 Cloud Linux Software Inc.
This software is also available under ImunifyAV commercial license,
see
N)atomic_rewriteis_systemd_bootcheck_exit_code check_runretry_onrun)KWConfigc e Zd ZdZdZdZdS )PureFTPBaseConfigz^\s*?{}\s+(.*?)\s*?$z{} {}z/etc/pure-ftpd.confN)__name__
__module____qualname__SEARCH_PATTERN
WRITE_PATTERNDEFAULT_FILENAME U/opt/imunify360/venv/lib/python3.11/site-packages/imav/malwarelib/subsys/pure_ftpd.pyr r ) s ,NM,r r c K t sMt ddgt j t j t j d {V t ddd d S t g d d {V t g d d {V d S )
Nstartimunify360-purestdinstdoutstderr"/etc/init/imunify360-pure.override Fbackup) systemctlenabler )r r r r r
subprocessDEVNULLr r r r r uploadscript_enabler% / s C
'($%%
;RNNNNNNBBBCCCCCCCCCAAABBBBBBBBBBBr c K t sMt ddgt j t j t j d {V t ddd d S t g d d {V t g d d {V d S )
Nstopr r r zstart on manual
Fr )r r' r )r disabler r" r r r uploadscript_disabler) > s E
&'$%%
0
@@@AAAAAAAAACCCDDDDDDDDDDDr c K t s1t ddg d {V \ } }} d| v S t g d d {V \ }} } |dk S )Nstatusr z
start/running)r r+ r r )r r decode)_outrcs r uploadscript_statusr0 Q s x):;<<<<<<<< 3#**,,..GGGHHHHHHHHAqQwr c < K t st ddg d {V d S t g d d {V d S # t $ rM} | j r:| j d dk r)t
dt | n Y d } ~ d S d } ~ ww xY w)Nz/etc/init.d/pure-ftpdrestart)r r2 z pure-ftpdr z-%s
Service pure-ftpd is probably deactivated.)r r r Exceptionargsloggerwarningrepr)errs r r2 r2 [ s 6 BCCCCCCCCCCC AAABBBBBBBBBBB x
CHQK1,,Dd3ii s A
BABB
) max_triesc n g d} t j ddg } t | j d dk r;t fd| D r d j d S n9# t $ r Y n.t $ r!}t d | d }~ww xY wd S )
N)z7/opt/alt/python35/share/imunify360/scripts/pure_scan.shz=/opt/alt/python35/share/imunify360/scripts/pureftpd-on-uploadz0/usr/share/imunify360/scripts/pureftpd-on-uploadexecmdline)attrsTz/usr/sbin/pure-uploadscriptc 3 P K | ] }j d o|j d vV !dS )r> N)info).0scriptprocs r z*thirdparty_uploadscript..| sW I I )$Kty7K)KI I I I I Ir z&File not found during process iter: %s)
psutilprocess_iternextrA alljoin
StopIterationFileNotFoundErrorr6 r7 )imunify_scriptsiterD s @r thirdparty_uploadscriptrQ k s O
E9#5 6 6 6B
6 688D y#@@@S I I I I-I I I F F@ xx ) 4555 E NNCQGGG
6 4s A; ;
B1 B1B,,B1c ~ t j d ot j dt j S )Nz/usr/sbin/pure-ftpd)ospathisfileaccessX_OKr r r detectrX s3
7>>/00 RYrw6 6 r c t g}| r!| j | | j |S )N)r is_installedpure_ftp_conf_clsappend)
hosting_panelconfigss r get_pureftpd_configsr_ sA !G""$$8+7}6777Nr c K t | }|D ]S} |d d "# t $ r%}t d| Y d }~Ld }~ww xY wt d {V d S )NCallUploadScriptyes'Error when accessing pureftp config: %s)r_ setOSErrorr6 r7 r2 r] r^ clsrP s r enable_scan_in_configrh s "=11G I I IC"##''.... I I INNDaHHHHHHHH I ))OOOOOOOOOs 6
A% A A%c t | }|D ]q} |d }|| dk r dS ># t $ r'}t d| Y d }~ dS d }~ww xY wdS )Nra noFrc T)r_ getstripre r6 r7 )r] r^ rg valuerP s r scan_in_config_enabledrn s "=11G C*++//11E}
5 5uu !6 NNDaHHH555555 4s 7A
BA<<Bc @ K t yt | }|D ]S} |d d "# t $ r%}t d| Y d }~Ld }~ww xY wt
d {V t d {V d S )Nra rj rc )rQ r_ rd re r6 r7 r2 r) rf s r disable_purescanrp s (&}55 M MC
M&''++D1111
M
M
MH!LLLLLLLL
M ii
s A
A3A..A3)__doc__loggingrS r# rG defence360agent.utilsr r r r r r defence360agent.utils.kwconfigr getLoggerr r6 r r% r) r0 r2 rM rQ rX r_ rh rn rp r r r rv s *
4 3 3 3 3 3 8 $ $- - - - - - - -C C CE E E&
r*** +*0
!
!
!
!
!r