ó b=0Yc@s ddlZddlZddlZddlZddlZddlZddlmZmZde fd„ƒYZ de fd„ƒYZ de fd„ƒYZ d e fd „ƒYZ d d d dddgZddddgZdZdZdZdefd„ƒYZdS(iÿÿÿÿN(tS_IRUSRtS_IRGRPt NoSuchUsercBseZd„ZRS(cCs%d|}tj|d|fƒdS(NsNo such user (%s)(t Exceptiont__init__(tselftusertmessage((s*/usr/lib/python2.7/site-packages/clsudo.pyR s (t__name__t __module__R(((s*/usr/lib/python2.7/site-packages/clsudo.pyR st NoSuchGroupcBseZd„ZRS(cCsd|}tj||ƒdS(NsNo such group (%s)(RR(RtgroupR((s*/usr/lib/python2.7/site-packages/clsudo.pyRs (RR R(((s*/usr/lib/python2.7/site-packages/clsudo.pyR stUnableToReadFilecBseZd„ZRS(cCstj|dƒdS(NsCannot read sudoers file(RR(R((s*/usr/lib/python2.7/site-packages/clsudo.pyRs(RR R(((s*/usr/lib/python2.7/site-packages/clsudo.pyR stUnableToWriteFilecBseZd„ZRS(cCstj|dƒdS(NsCannot modify sudoers file(RR(R((s*/usr/lib/python2.7/site-packages/clsudo.pyRs(RR R(((s*/usr/lib/python2.7/site-packages/clsudo.pyR ss/bin/pss /bin/greps /sbin/services%/usr/bin/getcontrolpaneluserspackagess/usr/sbin/lvectls>/usr/local/directadmin/plugins/new_lvemanager/admin/GetDomainss/usr/bin/cl-selectors/usr/bin/pinisets/usr/sbin/lvepss/usr/bin/selectorctlsDefaults:%s !requirettys-%%%s ALL=NOPASSWD: LVECTL_CMDS, SELECTOR_CMDSsDefaults:%%%s !requirettytClsudocBseZdZdZdZdZd„ZeeƒZd„ZeeƒZd„Z ee ƒZ d„Z ee ƒZ d„Z ee ƒZ d „Z ee ƒZ d „Z ee ƒZ d „ZeeƒZd „ZeeƒZd „ZeeƒZd„ZeeƒZRS(s/ Adds CloudLinux users to sudoers file s /etc/sudoerss/etct lve_sudoers_cCsãtj|ƒtj|ƒtjsCtjjddjtƒƒntjsltjjddjt ƒƒntj stjjd|fƒntj s²tjjd|fƒntj sÕtjjt |fƒntjƒdS(s/ Adds username to sudoers file sCmnd_Alias LVECTL_CMDS = s, sCmnd_Alias SELECTOR_CMDS = s%s ALL=NOPASSWD: LVECTL_CMDSs%s ALL=NOPASSWD: SELECTOR_CMDSN(Rt _check_usert _get_contentst has_aliast sudoers_listtappendtjointALIAS_LVECTL_CMDSthas_selector_aliastALIAS_SELECTOR_CMDSt has_rightsthas_selector_rightst has_actiontDEFAULTS_REQUIRETTYt_write_contents(R((s*/usr/lib/python2.7/site-packages/clsudo.pytadd_user3s         cCsŠtj|ƒtj|ƒtjs6tjjdƒntjsYtjjd|fƒntjs|tjjt|fƒntj ƒdS(s/ Adds username to sudoers file sOCmnd_Alias CAGEFS_CMDS = /usr/sbin/cagefsctl, /bin/ps, /bin/grep, /sbin/services%s ALL=NOPASSWD: CAGEFS_CMDSN( RRRthas_cagefs_aliasRRthas_cagefs_rightsRRR(R((s*/usr/lib/python2.7/site-packages/clsudo.pytadd_cagefs_userGs     cCsÀtj|ƒtj|ƒtjsCtjjddjtƒƒntjsltjjddjt ƒƒntj stjjt |fƒntj s²tjjt |fƒntjƒdS(sJ Adds group to sudoers file, grants access to LVE Manager sCmnd_Alias LVECTL_CMDS = s, sCmnd_Alias SELECTOR_CMDS = N(Rt _check_groupt_get_contents_groupRRRRRRRRtGROUP_LVECTL_SELECTORthas_group_actiontGROUP_DEFAULTS_REQUIRETTYR(t group_name((s*/usr/lib/python2.7/site-packages/clsudo.pytadd_lvemanager_groupWs        cCsíyÆttjƒ}|jƒjƒt_|jƒd}t}xr|ttjƒkr±tj|}d|f|ksˆt |f|kr¤tjj |ƒt }q@n|d7}q@W|rÅtj ƒnWn t tfk rètƒ‚nXdS(s5 Removes username from sudoers file is%s ALL=NOPASSWD:iN(topenRtfilepathtreadt splitlinesRtclosetFalsetlenRtremovetTrueRtIOErrortOSErrorR (Rtftidxtremovedtline((s*/usr/lib/python2.7/site-packages/clsudo.pyt remove_useris"  &c Cstj|ƒtj|ƒitd6td6}d}xÝtttjƒƒD]Æ}tj|}x—|jƒD]‰\}}||krj|j |dƒj ƒ}|j dƒ}xG|D]<}||kr°d}d|dj |ƒftj|tt_ q¢ndtj|kr|jtj|ƒ}|r¢tt_q¢q¢ndtj|kr dtj|krÈtj|jd d ƒtj|tj|jdd ƒtj|s"