
    Id?                         d dl Z d dlmZmZ d dlmZ d dlmZmZ d dl	m
Z
 d ZdZ ede j                  d	   d
d      Zd Z G d dee      Zy)    N)
gp_pol_extgp_file_applier)NamedTemporaryFile)PopenPIPE)logc                     |j                  t        j                        }|D ]E  }t        j                  j	                  ||       }t        j                  j                  |      sC|c S  y )N)splitospathseppathjoinisfile)
executabler   pathspfs        9/usr/lib/python3/dist-packages/samba/gp/gp_sudoers_ext.pyfind_executabler      sQ    JJrzz"E GGLLJ'77>>!H     a
  
### autogenerated by samba
#
# This file is generated by the gp_sudoers_ext Group Policy
# Client Side Extension. To modify the contents of this file,
# modify the appropriate Group Policy objects which apply
# to this machine. DO NOT MODIFY THIS FILE DIRECTLY.
#

visudoPATH:z	/usr/sbin)r   c                    g }|D ]  }t         }|d|z  z  }t               5 }t        |j                  d      5 }|j	                  |       d d d        t
        t        d      t        t
        dd|j                  gt        t              j                         }d d d        dk(  rdt        dd	| 
      5 }t        |j                  d      5 }|j	                  |       d d d        |j                  |j                         d d d        t        j                  d|        |S # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   axY w# 1 sw Y   NxY w)Nz%s
wz#visudo not found, please install itz-cz-f)stdoutstderrr   gp_F)prefixdeletedirzSudoers apply failed)intror   opennamewriter   FileNotFoundErrorr   r   waitappendr   error)sudo_dirsudo_entriesretr   contentsr   r   sudo_validations           r   sudo_applier_funcr/   ,   s@   
C 1FQJ! 	9Qaffc" "a!"~'(MNN64qvv6#D226$& 	9 a#5+0(02 #56!&&#& &!GGH%&

166"# # II,a0'1( J!" "	9 	9& &# #sG   D1D%
AD14E	D=#E	%D.*D11D:	=EE		E	c                   "    e Zd Zd Z	 ddZd Zy)gp_sudoers_extc                      y)NzUnix Settings/Sudo Rights )selfs    r   __str__zgp_sudoers_ext.__str__E   s    *r   c           	         |D ]J  \  }}t        |       |v s|t        |          j                         D ]  \  }}| j                  |||        L |D ]  }|j                  sd}	d}
t        j
                  j                  |j                  |
      }| j                  |      }|sSg }|j                  D ]H  }|j                  |	k(  s|j                  j                         s.|j                  |j                         J | j                  |j                        } | j                  | }| j!                  |j                  ||t"        ||       | j%                  |j                  |g        y )Nz1Software\Policies\Samba\Unix Settings\Sudo RightsMACHINE/Registry.pol)keep)stritemsunapplyfile_sys_pathr   r   r   parseentrieskeynamedatastripr(   generate_attributer$   generate_value_hashapplyr/   clean)r4   deleted_gpo_listchanged_gpo_listsdirguidsettings	attributesudoersgposectionpol_filer   pol_confr+   e
value_hashs                   r   process_group_policyz#gp_sudoers_ext.process_group_policyH   sM   . 	;ND(4yH$*23t9*=*C*C*E ;&IwLLy':;	;
 $ 	7C  Q1ww||C$5$5x@::d+!!)) 4AyyG+$++AFF34
 !33CHH=	 6T55|D


388Y
<M/ 

3889+
6+	7r   c                    i }d}|j                   rt        j                  j                  |j                   |      }| j	                  |      }|s|S |j
                  D ]  }|j                  j                  d      d   }|j                  d      s3|j                  j                         sN||j                         vrg ||<   ||   j                  |j                          |S )Nr7   \zSudo Rights)r<   r   r   r   r=   r>   r?   r
   endswithr@   rA   keysr(   )r4   rM   outputrO   r   rP   rQ   keys           r   rsopzgp_sudoers_ext.rsopf   s    )77<< 1 18<Dzz$'H%% /iiood+B/<<.166<<>&++-/&(s3K&&qvv./ r   N)z/etc/sudoers.d)__name__
__module____qualname__r5   rS   r[   r3   r   r   r1   r1   D   s    + "7<r   r1   )r   samba.gp.gpclassr   r   tempfiler   
subprocessr   r   samba.gp.util.loggingr   r   r"   environr   r/   r1   r3   r   r   <module>rd      sT   " 
 8 ' " %		 


6*K8
:00Z 0r   