403 Forbidden


Disable Functions:
Path : /usr/share/lve/modlscapi/user/
File Upload :
Command :
Current File : //usr/share/lve/modlscapi/user/lsphpchecker.pyc

�
w1fc@s3ddlZddlZddlZddlZddlmZmZid�d6d�d6d�d6d	�d
6d�d6Zid
d6dd6dd6dd
6dd6Zidd6dd6d d6Z	da
d�Zdefd��YZ
defd��YZd�Zd�Zdekr/eejd�ndS(!i����N(tPopentPIPEcCs
||kS(N((txty((s-/usr/share/lve/modlscapi/user/lsphpchecker.pyt<lambda>stgtcCs
||kS(N((RR((s-/usr/share/lve/modlscapi/user/lsphpchecker.pyRstgtecCs
||kS(N((RR((s-/usr/share/lve/modlscapi/user/lsphpchecker.pyRstltcCs
||kS(N((RR((s-/usr/share/lve/modlscapi/user/lsphpchecker.pyRstltecCs
||kS(N((RR((s-/usr/share/lve/modlscapi/user/lsphpchecker.pyRsteqtmores
more or equaltlesss
less or equaltequalitMitGtTicCstj|IJdS(sC
    Wrapper for logging errors.
    Simple logging to stderr.
    N(tsyststderr(tmsg((s-/usr/share/lve/modlscapi/user/lsphpchecker.pyt	log_error&stCastcBs;eZdZed��Zed��Zed��ZRS(s3
    Class with functions for cast to any type
    cCs'idd6dd6j|tj|��S(NitOffitOn(tgetRt	to_number(t_v((s-/usr/share/lve/modlscapi/user/lsphpchecker.pytto_bool2scCsnt|�sdS|dj�r-d|}ntj|d �}|dkrPdS|tj|dj�d�S(Ni����s%sMi(tlentNonetisdigitRRtBYTES_CONVERSION_TABLERtupper(Rt_num((s-/usr/share/lve/modlscapi/user/lsphpchecker.pytto_mb6s
cCs-yt|�SWnttfk
r(dSXdS(N(tintt
ValueErrort	TypeErrorR(R((s-/usr/share/lve/modlscapi/user/lsphpchecker.pyRDs(t__name__t
__module__t__doc__tstaticmethodRR!R(((s-/usr/share/lve/modlscapi/user/lsphpchecker.pyR.st
PhpCheckercBsheZdZdZd
Zd
Zd�Zd�Zd�Z	d�Z
d�Zd�Zd�Z
d	�ZRS(s"
    docstring for PhpChecker
    s./usr/share/lve/modlscapi/user/lsphpchecker.inicCs�tt|�j�tjd�}tdkr|jtjd��|jtjd��|jtjd��t|�}n||_|j�dS(s.
        Initialize php versions list
        s/usr/local/bin/lsphpis/opt/alt/php*/usr/bin/lsphps&/opt/cpanel/ea-php*/root/usr/bin/lsphps/usr/bin/lsphpN(	tsuperR)t__init__tglobtquicktextendtsortedt_PhpChecker__php_binaryt_load_sample_options(tselftphp_list((s-/usr/share/lve/modlscapi/user/lsphpchecker.pyR+Ts	cCskxd|jD]Y}tjj|�r
|j||�}|rcx#|D]}d|||fGHqAWqcq
q
WdS(s/
        Check configurations for user
        s
%s: %s: %sN(R0tostpathtexistst_check_php_options(R2tusertphp_pathtcheck_resulttmessage((s-/usr/share/lve/modlscapi/user/lsphpchecker.pyt
check_userds
cCsZg}|j||�}|j||�}||j|d�7}||j|d�7}|S(s�
        Load and check specified php version options
        @param `php_path` str: path to php binary
        @param `user` str: username
        tapctsuhosin(t_load_php_optionst_detect_danger_modulest_check_options(R2R9R8twarningstoptionstmodules((s-/usr/share/lve/modlscapi/user/lsphpchecker.pyR7oscCsm|dkr-t|dgdtdt�}n.td|dd||fgdtdt�}|j�\}}i}t}x�|jd�D]�}d	|kr�t}q�n|r�|s�t}q�n|jd
�}	t|	�dkr�td|�q�nd
|	dkrd}
|	d}n|	djd
d�\}
}|
|krLi||
<n|	d||
|	d<q�q�W|S(s:
        Load php options from CLI phpinfo output
        ts-itstdoutRs/bin/sus-cs[ ! -f %s ] || %s -is
s(Directive => Local Value => Master Values => isInvalid option line - %st.it
__common__i(RRtcommunicatetFalsetsplittTrueRR(R2R9R8tptoutterrRCtoption_valuetlinetvaluestmoduletkey((s-/usr/share/lve/modlscapi/user/lsphpchecker.pyR?�s8%	

cCs�|dkr-t|dgdtdt�}n.td|dd||fgdtdt�}|j�\}}i}x[|jd�D]J}|j�}|jd	�r�t|d
<q�|jd�r�t|d<q�q�W|S(
sZ
        Detect unstable and potential danger php modules from php version output
        REs-iRFRs/bin/sus-cs[ ! -f %s ] || %s -is
swith the ionCube PHP Loadertioncube_loaderswith Zend Guard Loadertzend_guard_loader(RRRIRKtstript
startswithRL(R2R9R8RMRNRORDRQ((s-/usr/share/lve/modlscapi/user/lsphpchecker.pyR@�s%	
cCs!|s@t|t�s@t|t�s@t|j|�t�rDgS||jkrWgSg}||}x||j|j�D]g\}}||kr{|j|||�r{|jd|tj|dd�|d||f�q{q{Wt	|�r|j
dd|�|j
dd|�n|S(s:
        Check php options based on sample config
        s9%s must be %s %s (current value: %s) (no value means Off)tcheckREtvalueis[%s]schange %s options to default(t
isinstancetdictt
basestringRt_PhpChecker__samplet	iteritemst_validate_valuetappendt
CHECK_KEYSRtinsert(R2tconfigRStresultRCRTt
check_info((s-/usr/share/lve/modlscapi/user/lsphpchecker.pyRA�s"
 #	c	Csci|_y+t|jd�}x|D]}|j�}d}d}yk|jdd�\}}d|kr�|jd�\}}|jd�\}}n|jdd�d	}Wn#ttfk
r�d
|GHq%nX||jkr�i|j|<ni|j�d6|d6|d
6|j||j�<q%W|j�Wn(tt	fk
r^t
d|j�nXdS(s%
        Load sample options
        trtnumberRt=it,t:RGisInvalid sample string %sRZttypeRYs
Error read %sN(R^topentSAMPLE_CONFIG_PATHRWRKR#t
IndexErrortclosetOSErrortIOErrorR(	R2tfRQt
value_typet
check_typeRTRZt	type_infoRS((s-/usr/share/lve/modlscapi/user/lsphpchecker.pyR1�s.	
	&cCs�t|t�stS|jdd�}|jdd�}|d}d|}tt|�r�tt|�|�}tt|�|�}n|tkr�tSt|||�S(s�
        Validate option value.
        @param value_type `str`|default:"number" : value type
        @param value1 `str|int`: value1 for compare
        @param value2 `str|int`: value2 for compare
        @return int : -1, 0, 1
        RlRhRYRRZsto_%s(R[R\RJRthasattrRtgetattrtCHECK(R2RZtruleRtRutcheck_valuet	cast_func((s-/usr/share/lve/modlscapi/user/lsphpchecker.pyR`s

N(R%R&R'RnRR0R^R+R<R7R?R@RAR1R`(((s-/usr/share/lve/modlscapi/user/lsphpchecker.pyR)Ls				.			cCsd	}}y�tdd�}x�|D]�}|jd�rO|jd�rOq#n|j�}|sgq#nyJ|ddkr�t|d�}n#|ddkr�t|d�}nWq#ttfk
r�td�Pq#Xq#W|j�Wn$t	t
fk
rtjdIJnX||fS(
s:
    Load min and max UID from /etc/login.defs config
    s/etc/login.defsRgtUID_MINtUID_MAXiisInvalid UID_MIN/UID_MAX valuess8Can`t read UID_MIN and UID_MAX from /etc/login.defs fileN(
RRmRXRKR"R#RoRRpRrRqRtstrerr(tmin_uidtmax_uidRsRQtdata((s-/usr/share/lve/modlscapi/user/lsphpchecker.pytload_min_max_uids*

 
	c	Cs�t|�dkrJ|ddkrJdtjdGHdGHdGHdGHdGHdSt|�dkr�|dd	ks||dd
kr�|dd	kr�danda|d}nt�}tdkr�|jd
�n�|r)x�|D]H}y tj|�}|j|�Wq�tk
r!t	d|�q�Xq�WnWt
�\}}xEtj�D]7}|j|krE|j|krE|j|j
�qEqEWdS(s
    Run check
    ithelps!%s [help] [quick] [users list...]s   help       - show this helps9   fast       - check all lsphp without switching to usersD   medium     - check all users but only /usr/local/bin/lsphp configs_   users list - list of needed users or empty. i this case users list will be taken from passwdNtfasttmediumiiREsUser %s doesn`t exists(RRtargvR-R)R<tpwdtgetpwnamtKeyErrorRR�tgetpwalltpw_uidtpw_name(t
users_listtcheckertusernameR8R}R~((s-/usr/share/lve/modlscapi/user/lsphpchecker.pytmain;s4"2	
	

t__main__i(R,R4R�Rt
subprocessRRRyRbRR-RtobjectRR)R�R�R%R�(((s-/usr/share/lve/modlscapi/user/lsphpchecker.pyt<module>s*




	�		&

404 Not Found
[ LogOut ]