a
    œcl_‹›  ã                   @   sÈ   d Z ddlmZmZmZ ddlmZmZmZ ddl	m
Z
 ddlmZ ddlZddlmZmZ ddlmZ dd	lmZ dd
lmZ ddlmZ dZdZG dd„ de
ƒZG dd„ deƒZG dd„ deƒZdS )z*Tests for the Samba3 NT -> posix ACL layeré    )ÚsetntaclÚgetntaclÚcheckset_backend)ÚsecurityÚsmb_aclÚidmap)ÚSmbdBaseTests)Ú	provisionN)ÚsmbdÚpassdb)Úparam)Úauth)ÚSamDB©Úsystem_session_unixz)S-1-5-21-2212615479-2695158682-2101375467z£O:S-1-5-21-2212615479-2695158682-2101375467-512G:S-1-5-21-2212615479-2695158682-2101375467-513D:(A;OICI;0x001f01ff;;;S-1-5-21-2212615479-2695158682-2101375467-512)c                       sô   e Zd Z‡ fdd„Z‡ fdd„Zefdd„Zdd„ Zd	d
„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Z‡  ZS )7ÚPosixAclMappingTestsc                    s€   t t| ƒ ¡  t ¡ }| |  ¡ j¡ | dt	j
 | jd¡¡ || _t	j
 | jd¡| _t| jdƒ d¡ t| jt ¡ d| _d S )Nzxattr_tdb:fileú	xattr.tdbÚtestÚwÚempty)ÚlpÚsession_info)Úsuperr   ÚsetUpÚs3paramZget_contextÚloadZget_loadparmZ
configfileÚsetÚosÚpathÚjoinÚtempdirr   ÚtempfÚopenÚwriter   r   Zsystem_sessionÚsamdb)ÚselfZs3conf©Ú	__class__© ú6/usr/lib/python3/dist-packages/samba/tests/posixacl.pyr   &   s    zPosixAclMappingTests.setUpc                    s:   t  | j|  ¡ ¡ t tj | jd¡¡ tt	| ƒ 
¡  d S )Nr   )r
   Úunlinkr!   Úget_session_infor   r   r   r    r   r   ÚtearDown©r%   r&   r(   r)   r,   0   s    zPosixAclMappingTests.tearDownc                 C   s   t ƒ S )ú0
        Get session_info for setntacl.
        r   )r%   Údomsidr(   r(   r)   r+   5   s    z%PosixAclMappingTests.get_session_infoc                 C   sd   d}|j D ]T}|d|j d|j  7 }|jtjkrB|d|jj 7 }|jtjkr
|d|jj 7 }q
|S )NÚ za_type: %d
za_perm: %o
zuid: %d
zgid: %d
)	ÚaclÚa_typeÚa_permr   ÚSMB_ACL_USERÚinfoÚuidÚSMB_ACL_GROUPÚgid)r%   Ú	posix_aclZaclstrÚentryr(   r(   r)   Úprint_posix_acl;   s    

ÿz$PosixAclMappingTests.print_posix_aclc                 C   s$   t }t| j| j|t|  ¡ dd d S ©NF©Z	use_ntvfs)ÚACLr   r   r!   ÚDOM_SIDr+   ©r%   r1   r(   r(   r)   Útest_setntaclF   s    ÿz"PosixAclMappingTests.test_setntaclc                 C   sZ   t }t| j| j|t|  ¡ dd t| j| j|  ¡ dd}t tj	¡}|  
| |¡|¡ d S )NTr=   ©Zdirect_db_access©r>   r   r   r!   r?   r+   r   r   Údom_sidÚSID_NT_SELFÚassertEqualÚas_sddl©r%   r1   ÚfaclÚanysidr(   r(   r)   Útest_setntacl_smbd_getntaclK   s    ÿz0PosixAclMappingTests.test_setntacl_smbd_getntaclc                 C   sV   t }t| j| j|t|  ¡ dd t | jd|  ¡ ¡ | jt	t
| j| j|  ¡ dd d S )NTr=   é   rB   )r>   r   r   r!   r?   r+   r
   Úset_simple_aclÚassertRaisesÚ	TypeErrorr   r@   r(   r(   r)   Ú'test_setntacl_smbd_setposixacl_getntaclS   s    ÿÿz<PosixAclMappingTests.test_setntacl_smbd_setposixacl_getntaclc                 C   s~   t }t| j| j|t|  ¡ dd t| jd d ƒ\}}| || jdd¡ t| j| j|  ¡ dd}t	 
t	j¡}|  || |¡¡ d S )NTr=   úsystem.fake_access_acló    rB   ©r>   r   r   r!   r?   r+   r   Úwrap_setxattrr   r   rD   rE   rF   rG   ©r%   r1   Úbackend_objÚdbnamerI   rJ   r(   r(   r)   Ú!test_setntacl_invalidate_getntacl_   s    ÿÿz6PosixAclMappingTests.test_setntacl_invalidate_getntaclc                 C   sz   t }t| j| j|t|  ¡ dd t| jd d ƒ\}}| || jdd¡ t| j| j|  ¡ ƒ}t	 
t	j¡}|  || |¡¡ d S )NFr=   rQ   rR   rS   rU   r(   r(   r)   Ú&test_setntacl_invalidate_getntacl_smbdn   s    ÿÿz;PosixAclMappingTests.test_setntacl_invalidate_getntacl_smbdc                 C   s   t }d}t | jd¡ t| j| j|t|  ¡ dd t| jd d ƒ\}}| 	|| jdd¡ t
| j| j|  ¡ dd}t tj¡}|  || |¡¡ d S )NzèO:S-1-5-21-2212615479-2695158682-2101375467-512G:S-1-5-21-2212615479-2695158682-2101375467-513D:(A;;0x001f01ff;;;S-1-5-21-2212615479-2695158682-2101375467-512)(A;;0x001200a9;;;S-1-5-21-2212615479-2695158682-2101375467-513)(A;;;;;WD)éè  Fr=   rQ   rR   rB   )r>   r   Úchmodr!   r   r   r?   r+   r   rT   r   r   rD   rE   rF   rG   )r%   r1   Úsimple_acl_from_posixrV   rW   rI   rJ   r(   r(   r)   Ú+test_setntacl_smbd_invalidate_getntacl_smbd}   s    ÿÿz@PosixAclMappingTests.test_setntacl_smbd_invalidate_getntacl_smbdc                 C   sZ   t }t| j| j|t|  ¡ dd t| j| j|  ¡ dd}t tj	¡}|  
| |¡|¡ d S )NTr=   FrB   rC   rH   r(   r(   r)   Útest_setntacl_getntacl_smbdŽ   s    ÿz0PosixAclMappingTests.test_setntacl_getntacl_smbdc                 C   sZ   t }t| j| j|t|  ¡ dd t| j| j|  ¡ dd}t tj	¡}|  
| |¡|¡ d S )NFr=   rB   rC   rH   r(   r(   r)   Ú test_setntacl_smbd_getntacl_smbd–   s    ÿz5PosixAclMappingTests.test_setntacl_smbd_getntacl_smbdc                 C   sr   t }d}t| j| j|t|  ¡ dd t | jd|  ¡ ¡ t| j| j|  ¡ dd}t	 
t	j¡}|  || |¡¡ d S )NzèO:S-1-5-21-2212615479-2695158682-2101375467-512G:S-1-5-21-2212615479-2695158682-2101375467-513D:(A;;0x001f019f;;;S-1-5-21-2212615479-2695158682-2101375467-512)(A;;0x00120089;;;S-1-5-21-2212615479-2695158682-2101375467-513)(A;;;;;WD)Fr=   rL   rB   )r>   r   r   r!   r?   r+   r
   rM   r   r   rD   rE   rF   rG   )r%   r1   r\   rI   rJ   r(   r(   r)   Ú,test_setntacl_smbd_setposixacl_getntacl_smbdž   s    ÿzAPosixAclMappingTests.test_setntacl_smbd_setposixacl_getntacl_smbdc           	      C   s    t }t tj¡}d}t| j| j|t|  ¡ dd t	 
| j d¡¡}| |¡\}}t | jd|  ¡ |¡ t| j| j|  ¡ dd}t tj¡}|  || |¡¡ d S )NzüO:S-1-5-21-2212615479-2695158682-2101375467-512G:S-1-5-21-2212615479-2695158682-2101375467-513D:(A;;0x001f019f;;;S-1-5-21-2212615479-2695158682-2101375467-512)(A;;0x00120089;;;BA)(A;;0x00120089;;;S-1-5-21-2212615479-2695158682-2101375467-513)(A;;;;;WD)Fr=   úpassdb backendrL   rB   )r>   r   rD   ÚSID_BUILTIN_ADMINISTRATORSr   r   r!   r?   r+   r   ÚPDBÚgetÚ	sid_to_idr
   rM   r   rE   rF   rG   )	r%   r1   ÚBA_sidr\   Ú	s4_passdbÚBA_gidÚBA_typerI   rJ   r(   r(   r)   Ú2test_setntacl_smbd_setposixacl_group_getntacl_smbd©   s    ÿzGPosixAclMappingTests.test_setntacl_smbd_setposixacl_group_getntacl_smbdc                 C   sX   d}t | j| j|t|  ¡ dd t| j| j|  ¡ dd}t t¡}|  | 	|¡|¡ d S )Nao  O:DAG:DUD:P(A;OICI;0x001f01ff;;;DA)(A;OICI;0x001f01ff;;;EA)(A;OICIIO;0x001f01ff;;;CO)(A;OICI;0x001f01ff;;;DA)(A;OICI;0x001f01ff;;;SY)(A;OICI;0x001200a9;;;AU)(A;OICI;0x001200a9;;;ED)S:AI(OU;CIIDSA;WP;f30e3bbe-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(OU;CIIDSA;WP;f30e3bbf-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)Fr=   rB   )
r   r   r!   r?   r+   r   r   rD   rF   rG   )r%   r1   rI   r/   r(   r(   r)   Ú$test_setntacl_smbd_getntacl_smbd_gpo¹   s    ÿ
z9PosixAclMappingTests.test_setntacl_smbd_getntacl_smbd_gpoc                 C   sl   t }t| j| j|t|  ¡ dd t| j| j|  ¡ ƒ}t tj	¡}|  
| |¡|¡ t | jtj|  ¡ ¡}d S r<   )r>   r   r   r!   r?   r+   r   r   rD   rE   rF   rG   r
   Úget_sys_aclr   ÚSMB_ACL_TYPE_ACCESS)r%   r1   rI   rJ   r9   r(   r(   r)   Útest_setntacl_getposixaclÁ   s    ÿz.PosixAclMappingTests.test_setntacl_getposixaclc                 C   s2   t  | jd|  ¡ ¡ |  tt| j| j|  ¡ ¡ d S )NrZ   )r
   rM   r!   r+   rN   rO   r   r   r-   r(   r(   r)   Útest_setposixacl_getntaclÊ   s    z.PosixAclMappingTests.test_setposixacl_getntaclc                 C   s˜   t  | j d¡¡}| t | j¡j¡}| 	t | j¡j
¡}t | jd|  ¡ ¡ t| j| j|  ¡ dd}d||||f }t tj¡}|  || |¡¡ d S )Nra   rL   FrB   z<O:%sG:%sD:(A;;0x001f019f;;;%s)(A;;0x00120089;;;%s)(A;;;;;WD))r   rc   r   rd   Ú
gid_to_sidr   Ústatr!   Úst_gidÚ
uid_to_sidÚst_uidr
   rM   r+   r   r   rD   rE   rF   rG   )r%   rg   Ú	group_SIDÚuser_SIDrI   r1   rJ   r(   r(   r)   Útest_setposixacl_getntacl_smbdÏ   s    z3PosixAclMappingTests.test_setposixacl_getntacl_smbdc                 C   sð   t  | j d¡¡}| t | j¡j¡}t	 
t	j¡}t  | j d¡¡}| |¡\}}|  |tj¡ t	 
t	j¡}| |¡\}}|  |tj¡ t | j|||  ¡ ¡ t | jd|  ¡ ¡ t| j| j|  ¡ dd}	d}
t	 
t	j¡}|  |
|	 |¡¡ d S )Nra   rZ   FrB   zŠO:BAG:SOD:(A;;0x001f01ff;;;BA)(A;;0x001200a9;;;SO)(A;;;;;WD)(A;OICIIO;0x001f01ff;;;CO)(A;OICIIO;0x001200a9;;;CG)(A;OICIIO;0x001200a9;;;WD))r   rc   r   rd   rs   r   rq   r    rt   r   rD   rb   re   rF   r   ÚID_TYPE_BOTHÚSID_BUILTIN_SERVER_OPERATORSr
   Úchownr+   rM   r   rE   rG   )r%   rg   rv   rf   ZBA_idri   ÚSO_sidZSO_idÚSO_typerI   r1   rJ   r(   r(   r)   Ú"test_setposixacl_dir_getntacl_smbdÙ   s    z7PosixAclMappingTests.test_setposixacl_dir_getntacl_smbdc                 C   sÊ   t  t j¡}t | j d¡¡}| |¡\}}| t	 
| j¡j¡}| t	 
| j¡j¡}|  |tj¡ t | jd|  ¡ |¡ t| j| j|  ¡ dd}t ¡ }d||||f }	t  t j¡}
|  |	| |
¡¡ d S )Nra   rL   FrB   zPO:%sG:%sD:(A;;0x001f019f;;;%s)(A;;0x00120089;;;BA)(A;;0x00120089;;;%s)(A;;;;;WD))r   rD   rb   r   rc   r   rd   re   rp   r   rq   r!   rr   rs   rt   rF   r   rx   r
   rM   r+   r   Úget_global_sam_sidrE   rG   )r%   rf   rg   rh   ri   ru   rv   rI   r/   r1   rJ   r(   r(   r)   Ú$test_setposixacl_group_getntacl_smbdë   s    z9PosixAclMappingTests.test_setposixacl_group_getntacl_smbdc                 C   sì   t  | jd|  ¡ ¡ t  | jtj|  ¡ ¡}|  |jd|  	|¡¡ |  |j
d jtj¡ |  |j
d jd¡ |  |j
d jtj¡ |  |j
d jd¡ |  |j
d jtj¡ |  |j
d jd¡ |  |j
d jtj¡ |  |j
d jd¡ d S )	NrL   é   r   é   é   é   é   é   )r
   rM   r!   r+   rl   r   rm   rF   Úcountr;   r1   r2   ÚSMB_ACL_USER_OBJr3   ÚSMB_ACL_GROUP_OBJÚSMB_ACL_OTHERÚSMB_ACL_MASK©r%   r9   r(   r(   r)   Útest_setposixacl_getposixaclù   s    z1PosixAclMappingTests.test_setposixacl_getposixaclc                 C   sì   t  | jd|  ¡ ¡ t  | jtj|  ¡ ¡}|  |jd|  	|¡¡ |  |j
d jtj¡ |  |j
d jd¡ |  |j
d jtj¡ |  |j
d jd¡ |  |j
d jtj¡ |  |j
d jd¡ |  |j
d jtj¡ |  |j
d jd¡ d S )	NrZ   r€   r   r…   r‚   é   rƒ   r„   )r
   rM   r    r+   rl   r   rm   rF   r†   r;   r1   r2   r‡   r3   rˆ   r‰   rŠ   r‹   r(   r(   r)   Ú test_setposixacl_dir_getposixacl
  s    z5PosixAclMappingTests.test_setposixacl_dir_getposixaclc                 C   sh  t  t j¡}t | j d¡¡}| |¡\}}|  |t	j
¡ t | jd|  ¡ |¡ t | jtj|  ¡ ¡}|  |jd|  |¡¡ |  |jd jtj¡ |  |jd jd¡ |  |jd jtj¡ |  |jd jd¡ |  |jd jtj¡ |  |jd jd¡ |  |jd	 jtj¡ |  |jd	 jd¡ |  |jd	 jj|¡ |  |jd
 jtj¡ |  |jd
 jd¡ d S )Nra   i¸  r   r   r   r‚   r…   rƒ   r„   r€   )r   rD   rb   r   rc   r   rd   re   rF   r   rx   r
   rM   r!   r+   rl   r   rm   r†   r;   r1   r2   r‡   r3   rˆ   r‰   r7   r5   r8   rŠ   )r%   rf   rg   rh   ri   r9   r(   r(   r)   Ú"test_setposixacl_group_getposixacl  s$    z7PosixAclMappingTests.test_setposixacl_group_getposixaclc                 C   sÈ  t j}t ¡ }|  |¡}t| j| j|t|ƒ|dd t	| j| j|ƒ}|  
| |¡|¡ t | jtj|¡}t d¡}t d¡}|dkoŠ|dk}|j ¡  }	t t|ƒd ttjƒ ¡}
t tj¡}t tj¡}t tj¡}t tj¡}t | j d¡¡}| |
¡\}}|  
|tj¡ | |¡\}}|  
|tj ¡ | |¡\}}|  
|tj ¡ | |¡\}}|  
|tj ¡ | |¡\}}|  
|tj ¡ |  
|j!d	|  "|¡¡ |  
|j#d
 j$tj%¡ |  
|j#d
 j&d¡ |  
|j#d
 j'j(|¡ |  
|j#d j$tj)¡ |sú|	r|  
|j#d j&d¡ n|  
|j#d j&d¡ |  
|j#d j'j*|¡ |  
|j#d j$tj+¡ |  
|j#d j&d
¡ |  
|j#d j$tj,¡ |s†|	rœ|  
|j#d j&d¡ n|  
|j#d j&d¡ |  
|j#d j$tj)¡ |  
|j#d j&d¡ |  
|j#d j'j*|¡ |  
|j#d j$tj-¡ |  
|j#d j&d¡ |  
|j#d j$tj)¡ |  
|j#d j&d¡ |  
|j#d j'j*|¡ |  
|j#d j$tj%¡ |  
|j#d j&d¡ |  
|j#d j'j(|¡ |  
|j#d j$tj)¡ |  
|j#d j&d¡ |  
|j#d j'j*|¡ |  
|j#d j$tj%¡ |  
|j#d j&d¡ |  
|j#d j'j(|¡ |  
|j#d j$tj)¡ |  
|j#d j&d¡ |  
|j#d j'j*|¡ |  
|j#d j$tj%¡ |  
|j#d j&d¡ |  
|j#d j'j(|¡ |  
|j#d j$tj.¡ |  
|j#d j&d¡ d S )NFr=   ÚNSS_WRAPPER_MODULE_SO_PATHÚNSS_WRAPPER_MODULE_FN_PREFIXr0   Úwinbindú-ra   é   r   r…   r‚   r   rƒ   r„   r€   r   é   é	   é
   é   é   )/r	   Ú
SYSVOL_ACLr   r~   r+   r   r   r!   Ústrr   rF   rG   r
   rl   r   rm   r   ÚgetenvÚsecurity_tokenÚ	is_systemr   rD   ÚDOMAIN_RID_ADMINISTRATORrb   ry   ÚSID_NT_SYSTEMÚSID_NT_AUTHENTICATED_USERSrc   rd   re   r   ÚID_TYPE_UIDrx   r†   r;   r1   r2   r7   r3   r5   r8   r4   r6   r‰   r‡   rˆ   rŠ   )r%   r1   r/   r   rI   r9   Únwrap_module_so_pathÚnwrap_module_fn_prefixÚnwrap_winbind_activeÚis_user_sessionÚLA_sidrf   r{   ÚSY_sidÚAU_sidrg   ÚLA_uidÚLA_typerh   ri   ÚSO_gidr|   ÚSY_gidÚSY_typeÚAU_gidÚAU_typer(   r(   r)   Ú&test_setntacl_sysvol_check_getposixacl5  sŽ    
ÿ

ÿz;PosixAclMappingTests.test_setntacl_sysvol_check_getposixaclc                 C   sT  t j}t ¡ }|  |¡}t| j| j|t|ƒ|dd t	| j| j|ƒ}|  
| |¡|¡ t | jtj|¡}t t|ƒd ttjƒ ¡}t tj¡}t tj¡}t tj¡}	t tj¡}
t | j d¡¡}| |¡\}}|  
|tj¡ | |¡\}}|  
|tj¡ | |¡\}}|  
|tj¡ | |	¡\}}|  
|tj¡ | |
¡\}}|  
|tj¡ |  
|jd|  |¡¡ |  
|jd j tj!¡ |  
|jd j"d¡ |  
|jd j#j$|¡ |  
|jd j tj%¡ |  
|jd j"d¡ |  
|jd j#j&|¡ |  
|jd	 j tj'¡ |  
|jd	 j"d¡ |  
|jd
 j tj(¡ |  
|jd
 j"d¡ |  
|jd j tj%¡ |  
|jd j"d¡ |  
|jd j#j&|¡ |  
|jd j tj)¡ |  
|jd j"d¡ |  
|jd j tj%¡ |  
|jd j"d¡ |  
|jd j#j&|¡ |  
|jd j tj!¡ |  
|jd j"d¡ |  
|jd j#j$|¡ |  
|jd j tj%¡ |  
|jd j"d¡ |  
|jd j#j&|¡ |  
|jd j tj!¡ |  
|jd j"d¡ |  
|jd j#j$|¡ |  
|jd j tj%¡ |  
|jd j"d¡ |  
|jd j#j&|¡ |  
|jd j tj!¡ |  
|jd j"d¡ |  
|jd j#j$|¡ |  
|jd j tj*¡ |  
|jd j"d¡ d S )NFr=   r“   ra   r”   r   r…   r‚   rƒ   r„   r€   r   r   r•   r–   r—   r˜   r™   )+r	   rš   r   r~   r+   r   r   r    r›   r   rF   rG   r
   rl   r   rm   r   rD   rŸ   rb   ry   r    r¡   rc   rd   re   r   r¢   rx   r†   r;   r1   r2   r7   r3   r5   r8   r4   r6   r‰   r‡   rˆ   rŠ   )r%   r1   r/   r   rI   r9   r§   rf   r{   r¨   r©   rg   rª   r«   rh   ri   r¬   r|   r­   r®   r¯   r°   r(   r(   r)   Ú*test_setntacl_sysvol_dir_check_getposixaclÅ  sz    
ÿz?PosixAclMappingTests.test_setntacl_sysvol_dir_check_getposixaclc                 C   s  t j}t ¡ }|  |¡}t| j| j|t|ƒ|dd t	| j| j|ƒ}|  
| |¡|¡ t | jtj|¡}t t|ƒd ttjƒ ¡}t tj¡}t tj¡}t tj¡}	t tj¡}
t t|ƒd ttjƒ ¡}t | j d¡¡}| |¡\}}|  
|tj¡ | |¡\}}|  
|tj¡ | |¡\}}|  
|tj¡ | |	¡\}}|  
|tj¡ | |
¡\}}|  
|tj¡ | |¡\}}|  
|tj¡ |  
|jd|  |¡¡ |  
|j d j!tj"¡ |  
|j d j#d¡ |  
|j d j$j%|¡ |  
|j d j!tj&¡ |  
|j d j#d¡ |  
|j d j$j'|¡ |  
|j d	 j!tj(¡ |  
|j d	 j#d¡ |  
|j d
 j!tj)¡ |  
|j d
 j#d¡ |  
|j d j!tj&¡ |  
|j d j#d¡ |  
|j d j$j'|¡ |  
|j d j!tj*¡ |  
|j d j#d¡ |  
|j d j!tj&¡ |  
|j d j#d¡ |  
|j d j$j'|¡ |  
|j d j!tj"¡ |  
|j d j#d¡ |  
|j d j$j%|¡ |  
|j d j!tj&¡ |  
|j d j#d¡ |  
|j d j$j'|¡ |  
|j d j!tj"¡ |  
|j d j#d¡ |  
|j d j$j%|¡ |  
|j d j!tj&¡ |  
|j d j#d¡ |  
|j d j$j'|¡ |  
|j d j!tj"¡ |  
|j d j#d¡ |  
|j d j$j%|¡ |  
|j d j!tj&¡ |  
|j d j#d¡ |  
|j d j$j'|¡ |  
|j d j!tj"¡ |  
|j d j#d¡ |  
|j d j$j%|¡ |  
|j d j!tj+¡ |  
|j d j#d¡ d S )NFr=   r“   ra   é   r   r…   r‚   rƒ   r„   r€   r   r   r•   r–   r—   r˜   r™   r”   é   ),r	   ÚPOLICIES_ACLr   r~   r+   r   r   r    r›   r   rF   rG   r
   rl   r   rm   r   rD   rŸ   rb   ry   r    r¡   ÚDOMAIN_RID_POLICY_ADMINSrc   rd   re   r   r¢   rx   r†   r;   r1   r2   r7   r3   r5   r8   r4   r6   r‰   r‡   rˆ   rŠ   )r%   r1   r/   r   rI   r9   r§   rf   r{   r¨   r©   ÚPA_sidrg   rª   r«   rh   ri   r¬   r|   r­   r®   r¯   r°   ÚPA_gidÚPA_typer(   r(   r)   Ú,test_setntacl_policies_dir_check_getposixacl"  sŒ    
ÿzAPosixAclMappingTests.test_setntacl_policies_dir_check_getposixaclc                 C   s€  t j}t ¡ }|  |¡}t| j| j|t|ƒ|dd t	| j| j|ƒ}|  
| |¡|¡ t | jtj|¡}t d¡}t d¡}|dkoŠ|dk}|j ¡  }	t t|ƒd ttjƒ ¡}
t tj¡}t tj¡}t tj¡}t tj¡}t t|ƒd ttjƒ ¡}t | j d¡¡}| |
¡\}}|  
|tj ¡ | |¡\}}|  
|tj!¡ | |¡\}}|  
|tj!¡ | |¡\}}|  
|tj!¡ | |¡\}}|  
|tj!¡ | |¡\}}|  
|tj!¡ |  
|j"d	|  #|¡¡ |  
|j$d
 j%tj&¡ |  
|j$d
 j'd¡ |  
|j$d
 j(j)|¡ |  
|j$d j%tj*¡ |s2|	rH|  
|j$d j'd¡ n|  
|j$d j'd¡ |  
|j$d j(j+|¡ |  
|j$d j%tj,¡ |  
|j$d j'd
¡ |  
|j$d j%tj-¡ |s¾|	rÔ|  
|j$d j'd¡ n|  
|j$d j'd¡ |  
|j$d j%tj*¡ |  
|j$d j'd¡ |  
|j$d j(j+|¡ |  
|j$d j%tj.¡ |  
|j$d j'd¡ |  
|j$d j%tj*¡ |  
|j$d j'd¡ |  
|j$d j(j+|¡ |  
|j$d j%tj&¡ |  
|j$d j'd¡ |  
|j$d j(j)|¡ |  
|j$d j%tj*¡ |  
|j$d j'd¡ |  
|j$d j(j+|¡ |  
|j$d j%tj&¡ |  
|j$d j'd¡ |  
|j$d j(j)|¡ |  
|j$d j%tj*¡ |  
|j$d j'd¡ |  
|j$d j(j+|¡ |  
|j$d j%tj&¡ |  
|j$d j'd¡ |  
|j$d j(j)|¡ |  
|j$d j%tj*¡ |  
|j$d j'd¡ |  
|j$d j(j+|¡ |  
|j$d j%tj&¡ |  
|j$d j'd¡ |  
|j$d j(j)|¡ |  
|j$d j%tj/¡ |  
|j$d j'd¡ d S )NFr=   r   r‘   r0   r’   r“   ra   r³   r   r…   r‚   r   rƒ   r„   r€   r   r•   r–   r—   r˜   r™   r”   r´   )0r	   rµ   r   r~   r+   r   r   r!   r›   r   rF   rG   r
   rl   r   rm   r   rœ   r   rž   r   rD   rŸ   rb   ry   r    r¡   r¶   rc   rd   re   r   r¢   rx   r†   r;   r1   r2   r7   r3   r5   r8   r4   r6   r‰   r‡   rˆ   rŠ   )r%   r1   r/   r   rI   r9   r£   r¤   r¥   r¦   r§   rf   r{   r¨   r©   r·   rg   rª   r«   rh   ri   r¬   r|   r­   r®   r¯   r°   r¸   r¹   r(   r(   r)   Ú(test_setntacl_policies_check_getposixacl‹  s     
ÿ

ÿz=PosixAclMappingTests.test_setntacl_policies_check_getposixacl) Ú__name__Ú
__module__Ú__qualname__r   r,   r?   r+   r;   rA   rK   rP   rX   rY   r]   r^   r_   r`   rj   rk   rn   ro   rw   r}   r   rŒ   rŽ   r   r±   r²   rº   r»   Ú__classcell__r(   r(   r&   r)   r   $   s8   
	
 ]ir   c                   @   s   e Zd ZdZefdd„ZdS )ÚSessionedPosixAclMappingTestsú3
    Run same test suite with session enabled.
    c                 C   sŠ   t |ƒt | j ¡ ƒkr>t | jt |ƒ¡}tj|| jdd |S d |tj	¡}tj
tjB tjB }tj| j| j||d}tj|| jdd |S ©r.   ZAdministrator)Úlp_ctxZ	user_namez<SID={0}-{1}>)rÃ   ÚdnZsession_info_flags©r›   r$   Zget_domain_sidr   Úadmin_sessionr   Zsession_info_fill_unixÚformatr   rŸ   Z AUTH_SESSION_INFO_DEFAULT_GROUPSZAUTH_SESSION_INFO_AUTHENTICATEDZ#AUTH_SESSION_INFO_SIMPLE_PRIVILEGESÚuser_session)r%   r/   rÆ   rÄ   ÚflagsrÈ   r(   r(   r)   r+   2  s.    þÿþýþz.SessionedPosixAclMappingTests.get_session_infoN©r¼   r½   r¾   Ú__doc__r?   r+   r(   r(   r(   r)   rÀ   -  s   rÀ   c                   @   s   e Zd ZdZefdd„ZdS )Ú!UnixSessionedPosixAclMappingTestsrÁ   c                 C   sŠ   t |ƒt | j ¡ ƒkr>t | jt |ƒ¡}tj|| jdd |S d |tj	¡}tj
tjB tjB }tj| j| j||d}tj|| jdd |S rÂ   rÅ   )r%   r/   rÆ   rÄ   rÉ   Zsessionr(   r(   r)   r+   Q  s*    þÿþÿþz2UnixSessionedPosixAclMappingTests.get_session_infoNrÊ   r(   r(   r(   r)   rÌ   L  s   rÌ   )rË   Zsamba.ntaclsr   r   r   Zsamba.dcerpcr   r   r   Zsamba.tests.smbd_baser   Zsambar	   r   Zsamba.samba3r
   r   r   r   r   Zsamba.samdbr   Zsamba.auth_utilr   r?   r>   r   rÀ   rÌ   r(   r(   r(   r)   Ú<module>   s*         