
    b                         d dl Z d dlmZ d dlmZ d dlmZ d dlmZm	Z	 d dl
mZmZ d dlmZ d Z G d	 d
e          ZdS )    N)
gp_pol_ext)	b64encode)NamedTemporaryFile)PopenPIPE)visudointro)logc                 Z    d}| D ]%}|j         |k    r|j        dk    r|j        dk    c S &dS )Nz'Software\Policies\Centrify\UnixSettingszsudo.enabled   F)keyname	valuenamedata)entriessectiones      B/usr/lib/python3/dist-packages/samba/gp/gp_centrify_sudoers_ext.pyext_enabledr      sG    :G  9AK>$A$A6Q;5    c                   $    e Zd Zd Z	 ddZd ZdS )gp_centrify_sudoers_extc                     dS )NzCentrify/Sudo Rights )selfs    r   __str__zgp_centrify_sudoers_ext.__str__!   s    %%r   /etc/sudoers.dc           	      
   |D ]\  }}| j                             |           t          |           |v r|t          |                                                    D ]`\  }}t          j                            |          rt	          j        |           | j                             t          |           |           a| j         	                                 |D ]}|j
        rd}	| j                             |j                   d}
t          j                            |j
        |
          }|                     |          }|rt          |j                  s|j        D ]"}|j        |	k    r|j                                        rd|j        v r3t)          |j                                                                                  }| j                             t          |           |          }|sst0          }|d|j        z  z  }t3                      5 }t5          |j        d          5 }|                    |           d d d            n# 1 swxY w Y   t9          t:          dd|j        gt<          t<                                                    }d d d            n# 1 swxY w Y   |d	k    rt3          d
d|          5 }t5          |j        d          5 }|                    |           d d d            n# 1 swxY w Y   | j                              t          |           ||j                   d d d            n# 1 swxY w Y   ntC          j"        d|j                   | j         	                                 $d S )N,Software\Policies\Centrify\UnixSettings\SuDoMACHINE/Registry.pol
**delvals.z%s
wz-cz-f)stdoutstderrr   gp_F)prefixdeletedirzSudoers apply failed)#gp_dbset_guidstritemsospathexistsunlinkr&   commitfile_sys_pathnamejoinparser   r   r   r   stripr   r   encodedecoderetriever	   r   openwriter   r   r   waitstorer
   error)r   deleted_gpo_listchanged_gpo_listsdirguidsettings	attributesudoersgpor   pol_filer-   pol_confr   old_valcontentsfr!   sudo_validations                      r   process_group_policyz,gp_centrify_sudoers_ext.process_group_policy$   sW   . 	  	 ND(J%%%4yyH$$*23t99*=*C*C*E*E < <&Iww~~g.. +	'***J%%c$ii;;;;J# #	, #	,C  ",L
##CH---1w||C$5x@@::d++ {83C'D'D !) , ,AyG+++'1;66$$-afmmoo$>$>$E$E$G$G	"&*"5"5c$ii"K"K& J',H$7H!3!5!5 M%)!&#%6%6 !6!$%GGH$5$5$5!6 !6 !6 !6 !6 !6 !6 !6 !6 !6 !6 !6 !6 !6 !6 ).vtT16.J37)F )F )FFJdff !0M M M M M M M M M M M M M M M  /!33%7u?D<@&B &B &B !=EF)-afc):): %:a()(9(9(9%: %: %: %: %: %: %: %: %: %: %: %: %: %: %:$(J$4$4SYY5>56V%= %= %=!= != != != != != != != != != != != != != != !$	*@!& I I I
))+++G#	, #	,sl   J +I	J IJ I?J  J$'J$M K;	/M ;K??M K?1M  MMc                    i }d}d}|j         rt          j                            |j         |          }|                     |          }|s|S |j        D ]}|j        |k    r|j                                        rld|j	        v r0t          |           |                                vrg |t          |           <   |t          |                                        |j                   |S )Nr   r   r    )r1   r,   r-   r3   r4   r   r   r   r5   r   r*   keysappend)r   rE   outputr   rF   r-   rG   r   s           r   rsopzgp_centrify_sudoers_ext.rsopT   s    D) 	57<< 18<<Dzz$''H % 5 59''AFLLNN'#q{22 4yy55,.s4yy)3t99%,,QV444r   N)r   )__name__
__module____qualname__r   rL   rQ   r   r   r   r   r       sL        & & & "., ., ., .,`    r   r   )r,   samba.gp.gpclassr   base64r   tempfiler   
subprocessr   r   samba.gp.gp_sudoers_extr   r	   samba.gp.util.loggingr
   r   r   r   r   r   <module>r[      s   " 
			 ' ' ' ' ' '       ' ' ' ' ' ' " " " " " " " " 1 1 1 1 1 1 1 1 % % % % % %  D D D D Dj D D D D Dr   