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/tests/__pycache__/smb-notify.cpython-310.pyc
o

�/aeK�@s�ddlZddlZej�dd�dejd<ddlZddlZddlmZddlm	Z	ddlm
Z
ddlmZdd	l
mZdd
l
mZddlmZddlmZej�d
e�dd��ZGdd�de�ZedkrnddlZe��dSdS)�Nz
bin/python�1�PYTHONUNBUFFERED)�TestCase)�
NTSTATUSError)�credentials)�NT_STATUS_NOTIFY_CLEANUP)�libsmb_samba_internal)�param)�security)�ntaclsznotify_test_%d�cs^eZdZ�fdd�Zdd�Z�fdd�Zdd�Zd	d
�Z		ddd
�Zdd�Z	dd�Z
�ZS)�SMBNotifyTestscs�tt|���tj�d�|_t��|_	|j	�
tj�d��tj�d�|_t�
�}|�|j	�|�tj�d��|�tj�d��tjjddd�}|durNd	}tt|��|_t�|j|j|j	|�|_d|_z|j�t�WnY|j�t�dS)
N�SERVER�
SMB_CONF_PATH�NOTIFY_SHARE�USERNAME�PASSWORD�STRICT_CHECKINGT)�
allow_missingr)�superr
�setUp�samba�tests�env_get_var_value�server�s3param�get_context�lp�load�sharer�Credentials�guess�set_username�set_password�bool�int�strict_checking�libsmb�Conn�smb_conn�smb_conn_unpriv�deltree�test_dir�mkdir)�self�credsr&��	__class__��8/usr/lib/python3/dist-packages/samba/tests/smb-notify.pyr's(
zSMBNotifyTests.setUpcCsTt��}|�|j�|�tj�d��|�tj�d��t	�
|j|j|j|�|_
dS)N�USERNAME_UNPRIV�PASSWORD_UNPRIV)rr r!rr"rrrr#r'r(rrr*)r.�creds_unprivr2r2r3�connect_unprivDs
zSMBNotifyTests.connect_unprivcs.tt|���z	|j�t�WdSYdS)N)rr
�tearDownr)r+r,�r.r0r2r3r8Ls
zSMBNotifyTests.tearDowncCstj�||��dd�S)N�/�\)�os�path�join�replace)r.�dirpath�filenamer2r2r3�	make_pathSszSMBNotifyTests.make_pathc
Cs�|jjddd�}|jj|dtjdd�}|jjtdd�}|jj|dtjdd�}|j��|jdd�}|�|�|jdd�}|�|�d	}|�	t|�}|j�
|�|jdd�}|�|�|�|d
d|�|�|d
dtj
�|�t|�d�|jdd�}|�|�|�|d
d|�|�|d
dtj
�|�t|�d�|jj|dtjdd�}|jj|dtjdd�}|j��|jdd�}|�|�|jdd�}|�|�d
}|�	||�}	|�	||�}
|j�
|
�|jdd�}|�|�|�|d
d|
�|�|d
dtj
�|�t|�d�|jdd�}|�|�|�|d
d|	�|�|d
dtj
�|�t|�d�|jj|dtjdd�}|jj|dtjdd�}|j��|jdd�}|�|�|jdd�}|�|�|j�|
�|jdd�}|�|�|�|d
d|
�|�|d
dtj�|�t|�d�|jdd�}|�|�|�|d
d|	�|�|d
dtj�|�t|�d�|jj|dtjdd�}|jj|dtjdd�}|j��|jdd�}|�|�|jdd�}|�|�|j�|�z|jdd�}|��Wntj�y}z|�|jd
t�WYd}~nd}~ww|j��|jdd�}|j�r0|�|�|du�r]|�|d
dt�|�|d
dtj�|�t|�d�|jj|dtjdd�}|j��|jdd�}|�|�|j�|�|jdd�}|�|�|�|d
d|�|�|d
dtj�|�t|�d�|jj|dtjdd�}|j�|�z
|jdd�}|��WdStj�y�}z|�|jd
t�WYd}~dSd}~ww)N����Name�ShareAccessrT��fnum�buffer_size�completion_filter�	recursiveF��wait�dirr�name�action�subdir)r)�create�notifyr'�FILE_NOTIFY_CHANGE_ALLr,�echo�get_changes�assertIsNonerBr-�assertIsNotNone�assertEqual�NOTIFY_ACTION_ADDED�len�rmdir�NOTIFY_ACTION_REMOVED�close�failrr�argsrr&�NOTIFY_ACTION_MODIFIED)r.�	root_fnum�root_notify�
test_dir_fnum�test_dir_notify�changes�dir_name�dir_path�sub_name�sub_path_rel�
sub_path_full�errr2r2r3�test_notifyVs��




��




��




��


	��


�


� ��zSMBNotifyTests.test_notifyNc
Cs�|��t��}t�|j|�}d}|�||�}|�t|�}|j�|�|�	|�}t�
�}	|j|	_|j|	_tj
�
dtjtjtjt|j�f|�}	|	jtjO_|	jtjO_tjtjBtjB}
|j||	|
d�|jj|dd�}|jj|dtjdd�}|jj|dd�}
|jj|
dtjdd�}|j��|jd	d
�}|�|�|j��|jd	d
�}|�|�d}|�||�}|�||�}|j�|�|jdd
�}|� |�|�!|dd
|�|�!|ddtj"�|�!t#|�d�|jj|dtjdd�}|j��|jd	d
�}|�|�|j��|jd	d
�}|�|�|j�$|�|jdd
�}|� |�|�!|dd
|�|�!|ddtj%�|�!t#|�d�|jj|dtjdd�}|j��|jd	d
�}|�|�|j��|jd	d
�}|�|�|j�$|�|jdd
�}|� |�|�!|dd
|�|�!|ddtj%�|�!t#|�d�|jj|
dtjdd�}|jdd
�}|� |�|�!|dd
|�|�!|ddtj%�|�!t#|�d�|jj|dtjdd�}|j��|jd	d
�}|�|�|j��|jd	d
�}|�|�|j�&|
�z|jdd
�}|�'�Wnt(j)�y)}z|�!|j*dt+�WYd}~nd}~ww|j��|jd	d
�}|�|�|j�&|�z
|jdd
�}|�'�WdSt(j)�yk}z|�!|j*dt+�WYd}~dSd}~ww)N�privatez"G:BAD:(A;;0x%x;;;%s)(A;;0x%x;;;%s))�sinforDrErTrHFrMztest-newrrPrQ),r7r
�dom_sidr�	SMBHelperr)rBr,r-�get_acl�
descriptor�type�revision�	from_sddl�SEC_RIGHTS_DIR_ALL�
SID_NT_SYSTEM�str�	owner_sid�SEC_DESC_SELF_RELATIVE�SEC_DESC_DACL_PROTECTED�
SECINFO_GROUP�SECINFO_DACL�SECINFO_PROTECTED_DACL�set_aclrSrTr'rUr*rVrWrXrYrZr[r\r]r^r_r`rrrar)r.�monitor_path�
rel_prefix�
domain_sid�
smb_helper�private_name�private_rel�private_path�private_path_sd_old�private_path_sd_new�set_secinfo�monitor_priv_fnum�notify_priv�monitor_unpriv_fnum�
notify_unprivrg�new_name�new_rel�new_pathrmr2r2r3�_test_notify_privileged_path
s�
����




�




�




�
�



��

 ��z+SMBNotifyTests._test_notify_privileged_pathcCs|jtdd�S�NrC)r�r��r�r,r9r2r2r3�test_notify_privileged_test��z*SMBNotifyTests.test_notify_privileged_testcCs|jdtd�Sr�r�r9r2r2r3�test_notify_privileged_root�r�z*SMBNotifyTests.test_notify_privileged_root)NN)�__name__�
__module__�__qualname__rr7r8rBrnr�r�r��
__classcell__r2r2r0r3r
&s6
�r
�__main__)�sysr<r=�insert�environr�random�samba.testsrrr�samba.ntstatusr�samba.samba3rr'r	r�samba.dcerpcr
rr>�randintr,r
r��unittest�mainr2r2r2r3�<module>s.
	�