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: //lib/python3/dist-packages/samba/netcmd/__pycache__/dsacl.cpython-310.pyc
o

�/a�%�@s�ddlmZddlmZddlmZddlmZm	Z	ddl
mZmZm
Z
mZmZmZmZmZmZmZmZmZmZddlZddlmZddlZddlmZddlmZmZm Z m!Z!Gd	d
�d
e�Z"Gdd�de�Z#Gd
d�de �Z$dS)�N)�security)�SamDB)�
ndr_unpack�ndr_pack)
�GUID_DRS_ALLOCATE_RIDS�GUID_DRS_CHANGE_DOMAIN_MASTER�GUID_DRS_CHANGE_INFR_MASTER�GUID_DRS_CHANGE_PDC�GUID_DRS_CHANGE_RID_MASTER�GUID_DRS_CHANGE_SCHEMA_MASTER�GUID_DRS_GET_CHANGES�GUID_DRS_GET_ALL_CHANGES� GUID_DRS_GET_FILTERED_ATTRIBUTES�GUID_DRS_MANAGE_TOPOLOGY�GUID_DRS_MONITOR_TOPOLOGY�GUID_DRS_REPL_SYNCRONIZE�GUID_DRS_RO_REPL_SECRET_SYNC)�
SCOPE_BASE)�system_session)�Command�CommandError�SuperCommand�Optionc
@s�eZdZdZdZdZejejej	d�Z
edddedd	d
�eddgd
�ed�eddddgdd�edddd�edddd�edddd�gZ
dd�Zd+dd�Zd d!�Zd"d#�Zd$d%�Zd,d'd(�Z	d-d)d*�ZdS).�
cmd_dsacl_setz)Modify access list on a directory object.�%prog [options]z+ The access control right to allow or deny ��	sambaopts�credopts�versionopts�-H�--URL�%LDB URL for database or target server�URL�H��help�type�metavar�destz--car�choice�
z
change-ridz
change-pdczchange-infrastructurez
change-schemaz
change-naming�
allocate_ridszget-changeszget-changes-allzget-changes-filteredztopology-manageztopology-monitorz	repl-synczro-repl-secret-sync)r&�choicesr%z--action�allow�denyzDeny or allow access�
--objectdn�#DN of the object whose SD to modify�string�r%r&z--trusteednz!DN of the entity that gets accessz--sddlz1An ACE or group of ACEs to be added on the objectcCs8|j|dtd�}t|�dksJ�ttj|ddd�S)N�(objectClass=*)��base�
expression�scope�r�	objectSid)�searchr�lenrr�dom_sid)�self�samdb�	trusteedn�res�rA�4/usr/lib/python3/dist-packages/samba/netcmd/dsacl.py�find_trustee_sidUs
�zcmd_dsacl_set.find_trustee_sidNcCsLt|tj�sJ�t��}t�||�|_t�t|�tj	d�|d<|�
|�dS)N�nTSecurityDescriptor)�
isinstancer�
descriptor�ldb�Message�Dn�dn�MessageElementr�FLAG_MOD_REPLACE�modify)r=r>�	object_dn�desc�controls�mrArArB�modify_descriptor[s
�zcmd_dsacl_set.modify_descriptorcC�>|j|tdgd�}t|�dksJ�|ddd}ttj|�S�NrD)r5r7�attrsr8r�r:rr;rrrF�r=r>rNr@rOrArArB�read_descriptord��zcmd_dsacl_set.read_descriptorcC�,|j|��dtd�}ttj|ddd�S�Nr3r4rr9�r:�	domain_dnrrrr<�r=r>r@rArArB�get_domain_sidl�
�zcmd_dsacl_set.get_domain_sidc	Cs�|�||�}tj�d||�|��}t�d|���}|D]U}|�|�|��}t�d|�}|D]}d|vr:|�|d�}q.||vr@q|�	d�dkr\|d|�
d��|||�
d�d�}n||}tj�||�|��}|�|||�qdS)zAdd new ace explicitly.zD:z\(.*?\)�ID��(rN)rXrrF�	from_sddlr_�re�findall�as_sddl�replace�find�indexrR)	r=r>rN�new_acerO�new_ace_list�	desc_sddl�	desc_aces�acerArArB�add_aceqs$�*�zcmd_dsacl_set.add_aceFcCsV|�||�}|�|�|��}|r|j�d|�n|j�d|�|j�|d�dS)Nznew descriptor for %s:
zold descriptor for %s:
�
�rXrgr_�outf�write)r=r>rN�newrOrmrArArB�	print_acl�szcmd_dsacl_set.print_aclc
Cs|��}
|�|
�}|dur!|dus|dus|dus|dur!|��St|t�||
d�}ttttt	t
ttt
ttttd�
}
|�||�}|rE|}n$|dkrTd|
|t|�f}n|dkrcd|
|t|�f}ntd|��|�||�|�|||�|j||dd	�dS)
N��url�session_info�credentials�lpr*r-z(OA;;CR;%s;;%s)r.z(OD;;CR;%s;;%s)zWrong argument '%s'!T)ru)�get_loadparm�get_credentials�usagerrr
r	rrrrrr
rrrrrrC�strrrvrp)r=�car�action�objectdnr?�sddlr#rrrr{�credsr>�cars�sidrkrArArB�run�sB
��zcmd_dsacl_set.run)N)F�NNNN)�__name__�
__module__�__qualname__�__doc__�synopsis�car_help�options�SambaOptions�CredentialsOptions�VersionOptions�takes_optiongroupsrr�
takes_optionsrCrRrXr_rprvr�rArArArBr.sF��
������
	

�rc@sleZdZdZdZejejejd�Z	e
dddeddd	�e
d
ddd
�gZdd�Z
dd�Zdd�Z	ddd�ZdS)�
cmd_dsacl_getz(Print access list on a directory object.rrrr r!r"r#r$r/r0r1r2cCrSrTrVrWrArArBrX�rYzcmd_dsacl_get.read_descriptorcCrZr[r\r^rArArBr_�r`zcmd_dsacl_get.get_domain_sidcCs@|�||�}|�|�|��}|j�d|�|j�|d�dS)Nzdescriptor for %s:
rqrr)r=r>rNrOrmrArArBrv�szcmd_dsacl_get.print_aclNc	Cs4|��}|�|�}t|t�||d�}|�||�dS)Nrw)r|r}rrrv)	r=r�r#rrrr{r�r>rArArBr��s
�zcmd_dsacl_get.runr�)r�r�r�r�r�r�r�r�r�r�rrr�rXr_rvr�rArArArBr��s&�����r�c@s(eZdZdZiZe�ed<e�ed<dS)�	cmd_dsaclzDS ACLs manipulation.�set�getN)r�r�r�r��subcommandsrr�rArArArBr��s

r�)%�samba.getopt�getoptr��samba.dcerpcr�samba.samdbr�	samba.ndrrr�samba.dcerpc.securityrrrr	r
rrr
rrrrrrGrre�
samba.authr�samba.netcmdrrrrrr�r�rArArArB�<module>s<

/