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

/U?a�@sDddlmZmZddlmZddlmZddlZGdd�de�Z	dS)�)�BlackboxTestCase�BlackboxProcessError)�param)�CredentialsNcs\eZdZ�fdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Z�ZS)�SmbCaclsBlockboxTestBasecs�tt|���t��|_tjd|_tjd|_	tjd|_
t�|_|j�
|j�|j�|j	�|j�|j
�t�dd�|_t�dd�|_tj�tjd|j�|_dS)	N�SERVER�USER�PASSWORD�TESTDIR�smbcacls�SHARE�tmp�
LOCAL_PATH)�superr�setUp�s3param�get_context�lp�os�environ�server�user�passwdr�creds�guess�set_username�set_password�getenv�testdir�share�path�join�dirpath)�self��	__class__��?/usr/lib/python3/dist-packages/samba/tests/blackbox/smbcacls.pyrs
zSmbCaclsBlockboxTestBase.setUpc
Cs�z$|�dd|j|jfdd|jg�}|�|�}d|��vr"td��WdStyz}zJtdt|��td|j	�t
j�|j	�rht
�
|j	�D]&}t
j�|j	|�}t
j�|�rbd	dl}|�|�qHt
�|�qHWYd}~dSWYd}~dSd}~ww)
N�	smbclient�//%s/%s�-czdeltree %s/*�NT_STATUS_OBJECT_PATH_NOT_FOUNDz'deltree: failed without setting errcodezremote remove failed: %sz2falling back to removing contents of local dir: %sr)�build_test_cmdrrr�check_output�decode�	Exception�print�strr"rr �exists�listdirr!�isdir�shutil�rmtree�unlink)r#�smbclient_args�out�e�entry�fullpathr5r&r&r'�tearDown)s($
����z!SmbCaclsBlockboxTestBase.tearDowncCs2|��D]\}}td||fdd�td�qdS)Nz%s=%s,�)�end��itemsr0)r#�ace�key�valuer&r&r'�ace_dump?s
�z!SmbCaclsBlockboxTestBase.ace_dumpcCsd|��D]+\}}|dkr
q||vrtd|�dS|||kr/td|||||f�dSqdS)N�user_domzno entry for: %sFzmismatch: %s:%s != %s:%sTr@)r#�left�rightrCrDr&r&r'�ace_cmpDs�z SmbCaclsBlockboxTestBase.ace_cmpcCs�|�d�}i}|ddkrtd|��d|dvr'|d�d�\|d<|d<nd	|dvr;|d�d	�\|d<|d<n|d|d<|d
�d	�\|d<|d<|d
<|S)N�:r�ACLzinvalid ace string:%�\�rFr�/��type�inherit�permissions)�splitr/)r#rB�parts�resultr&r&r'�
ace_parse_strPs
 z&SmbCaclsBlockboxTestBase.ace_parse_strcCs"|d|j|jfg}|�|�|S)Nz-U%s%%%s)rr�extend)r#�cmd�argsr&r&r'r,^s
z'SmbCaclsBlockboxTestBase.build_test_cmdcCs2d|j|jfg}|�|�|�|�d|��}|S)Nr)r)rrrWr-r,)r#rY�
cacls_argsr9r&r&r'�	smb_caclscs
z"SmbCaclsBlockboxTestBase.smb_caclsc
	Cs�|���d}tj�|j|�}tj�|�\}}d}t|�rH|j�ddd�}|�tj�D]}|d|}|�	dd|j
|jfdd|g�}|�|�q)|�	dd|j
|jfdd	||fg�}|�|�}	Wd�|S1skwY|S)
Nr>rNrL�
r(r)r*zmkdir %sz
put  %s %s)
�mktemprr r!rrS�len�replace�sepr,rrr-)
r#�
remotepath�tmpfile�filepathr"�filename�remote_path�segr8r9r&r&r'�create_remote_test_fileis 
"&
��z0SmbCaclsBlockboxTestBase.create_remote_test_filec
Cs(|�dd|j|jf|g�}z|�|�}Wnty.}z
tt|��WYd}~dSd}~ww|��}g}|�d�D]}|�	d�rF|�
|�q:|D]H}	|�|	�}
|d|
dkr�|d|
dkr�td|
d�|�|
|�s�td	�|�
|
�td
�|�
|�qItd|
d�|�
|�dSqIdS)
Nrr)F�
rKrrPzfound ACE for %szdifferences between file ACE: zand expected ACE: zmatched ACE for %sT)r,rrr-rr0r1r.rS�
startswith�appendrVrIrE)r#rarB�
smbcacls_args�outputr:�out_str�aces�line�acl�acl_acer&r&r'�file_ace_checkys@����

�
 

�z'SmbCaclsBlockboxTestBase.file_ace_check)
�__name__�
__module__�__qualname__rr=rErIrVr,r[rgrr�
__classcell__r&r&r$r'rsr)
�samba.testsrr�samba.samba3rr�samba.credentialsrrrr&r&r&r'�<module>s