HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/samba/__pycache__/vgp_sudoers_ext.cpython-310.pyc
o

�/a��@s`ddlZddlmZddlmZddlmZddlmZm	Z	ddl
mZmZGdd�de�Z
dS)	�N)�
gp_xml_ext)�	b64encode)�NamedTemporaryFile)�Popen�PIPE)�visudo�introc@s(eZdZdd�Z	d	dd�Zdd�ZdS)
�vgp_sudoers_extcCsdS)NzVGP/Unix Settings/Sudo Rights�)�selfr
r
�7/usr/lib/python3/dist-packages/samba/vgp_sudoers_ext.py�__str__szvgp_sudoers_ext.__str__�/etc/sudoers.dcCs�|D]6\}}|j�|�t|�|vr3|t|���D]\}}tj�|�r)t�|�|j�t|�|�q|j�	�q|D�]$}|j
�r`|j�|j�d}	tj�|j
|	�}
|�
|
�}|s[q;|�d�}|�d�}
|
�d�D]�}|�d�j}|�d�j}|�d�}g}|D]
}|�|�d��q�t|�d	kr�d
�dd�|D��}nd
}|�d�dk}|r�dnd}d||||f}t|�����}|j�t|�|�}|�sZt}|d|7}t��1}t|jd��
}|�|�Wd�n1s�wYttdd|jgttd���}Wd�n	1�swY|d	k�rRtdd|d��/}t|jd��
}|�|�Wd�n	1�s1wY|j�t|�||j�Wd�n	1�sLwYn|j �!d|�|j�	�qjq;dS)N�7MACHINE/VGP/VTLA/Sudo/SudoersConfiguration/manifest.xml�
policysetting�data�
sudoers_entry�command�user�listelement�	principalr�,cS�*g|]}|jddkr|jnd|j�qS��typerz%s%%��attrib�text��.0�ur
r
r�
<listcomp>9�
��z8vgp_sudoers_ext.process_group_policy.<locals>.<listcomp>�ALL�password�
 NOPASSWD:��%s ALL=(%s)%s %sz%s
�wz-cz-f)�stdout�stderr�gp_F)�prefix�delete�dirzSudoers apply "%s" failed)"�gp_db�set_guid�str�items�os�path�exists�unlinkr-�commit�
file_sys_path�name�join�parse�find�findallr�extend�lenr�encode�decode�retrieverr�open�writerrr�wait�store�logger�warn)r�deleted_gpo_list�changed_gpo_list�sdir�guid�settings�	attribute�sudoers�gpo�xmlr4�xml_conf�policyr�entryrr�listelements�
principalsr�uname�
nopassword�np_entry�p�old_val�contents�fr(�sudo_validationr
r
r�process_group_policys�







�����
�����	���z$vgp_sudoers_ext.process_group_policycCsi}d}|jr�tj�|j|�}|�|�}|s|S|�d�}|�d�}|�d�D]a}|�d�j}	|�d�j}
|�d�}g}|D]
}
|�|
�d��q>t	|�d	krZd
�dd�|D��}nd
}|�d�dk}|rgdnd}d||
||	f}t
|�|��vrg|t
|�<|t
|��|�q'|S)NrrrrrrrrrrcSrrrrr
r
rr!kr"z(vgp_sudoers_ext.rsop.<locals>.<listcomp>r#r$r%r&r')
r8r3r4r:r;r<r=rr>r?r1�keys�append)rrP�outputrQr4rRrSrrTrrrUrVrrWrXrYrZr
r
r�rsopYs8





�zvgp_sudoers_ext.rsopN)r)�__name__�
__module__�__qualname__r
r_rcr
r
r
rr	s

�=r	)r3�
samba.gpclassr�base64r�tempfiler�
subprocessrr�samba.gp_sudoers_extrrr	r
r
r
r�<module>s