ó
E®Uc           @   sÌ   d  Z  d d l m Z m Z m Z d d l m Z m Z m Z m	 Z	 d d l
 m Z d d l m Z d d l m Z d d l Z d d l Z d d l m Z m Z d d	 l m Z d
 e f d „  ƒ  YZ d S(   s*   Tests for the Samba3 NT -> posix ACL layeriÿÿÿÿ(   t   setntaclt   getntaclt   checkset_backend(   t   xattrt   securityt   smb_aclt   idmap(   t   LoadParm(   t   TestCaseInTempDir(   t	   provisionN(   t   smbdt   passdb(   t   paramt   PosixAclMappingTestsc           B   sû   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s)   d } t  |  j |  j | d d t ƒd  S(   Ns£   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)s)   S-1-5-21-2212615479-2695158682-2101375467t	   use_ntvfs(   R    t   lpt   tempft   False(   t   selft   acl(    (    s8   /usr/lib/python2.7/dist-packages/samba/tests/posixacl.pyt   test_setntacl*   s    c         C   so   d } t  |  j |  j | d d t ƒt |  j |  j d t ƒ} t j t j ƒ } |  j | j	 | ƒ | ƒ d  S(   Ns£   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)s)   S-1-5-21-2212615479-2695158682-2101375467R   t   direct_db_access(
   R    R   R   t   TrueR   R   t   dom_sidt   SID_NT_SELFt   assertEqualst   as_sddl(   R   R   t   faclt   anysid(    (    s8   /usr/lib/python2.7/dist-packages/samba/tests/posixacl.pyt   test_setntacl_smbd_getntacl.   s
    c         C   s|   d } t  |  j |  j | d d t ƒt j |  j d ƒ y, t |  j |  j d t ƒ} |  j t ƒ Wn t	 k
 rw n Xd  S(   Ns£   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)s)   S-1-5-21-2212615479-2695158682-2101375467R   i   R   (
   R    R   R   R   R
   t   set_simple_aclR   t
   assertTrueR   t	   TypeError(   R   R   R   (    (    s8   /usr/lib/python2.7/dist-packages/samba/tests/posixacl.pyt'   test_setntacl_smbd_setposixacl_getntacl5   s    c         C   s£   d } t  |  j |  j | d d t ƒt |  j d  d  ƒ \ } } | j | |  j d d ƒ t |  j |  j d t ƒ} t j	 t j
 ƒ } |  j | | j | ƒ ƒ d  S(   Ns£   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)s)   S-1-5-21-2212615479-2695158682-2101375467R   s   system.fake_access_aclt    R   (   R    R   R   R   R   t   Nonet   wrap_setxattrR   R   R   R   R   R   (   R   R   t   backend_objt   dbnameR   R   (    (    s8   /usr/lib/python2.7/dist-packages/samba/tests/posixacl.pyt!   test_setntacl_invalidate_getntaclC   s    	c         C   s   d } t  |  j |  j | d d t ƒt |  j d  d  ƒ \ } } | j | |  j d d ƒ t |  j |  j ƒ } t j	 t j
 ƒ } |  j | | j | ƒ ƒ d  S(   Ns£   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)s)   S-1-5-21-2212615479-2695158682-2101375467R   s   system.fake_access_aclR"   (   R    R   R   R   R   R#   R$   R   R   R   R   R   R   (   R   R   R%   R&   R   R   (    (    s8   /usr/lib/python2.7/dist-packages/samba/tests/posixacl.pyt&   test_setntacl_invalidate_getntacl_smbdQ   s    	c         C   s¼   d } d } t  j |  j d ƒ t |  j |  j | d d t ƒt |  j d  d  ƒ \ } } | j | |  j d d ƒ t	 |  j |  j d t ƒ} t
 j t
 j ƒ } |  j | | j | ƒ ƒ d  S(	   Ns£   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)sè   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)iè  s)   S-1-5-21-2212615479-2695158682-2101375467R   s   system.fake_access_aclR"   R   (   t   ost   chmodR   R    R   R   R   R#   R$   R   R   R   R   R   R   (   R   R   t   simple_acl_from_posixR%   R&   R   R   (    (    s8   /usr/lib/python2.7/dist-packages/samba/tests/posixacl.pyt+   test_setntacl_smbd_invalidate_getntacl_smbd_   s    	c         C   s¨   d } t  j |  j d ƒ t |  j |  j | d d t ƒ|  j j d d ƒ t |  j |  j d t ƒ} |  j j d d ƒ t j	 t j
 ƒ } |  j | | j | ƒ ƒ d  S(	   Ns£   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)iè  s)   S-1-5-21-2212615479-2695158682-2101375467R   s   profile aclst   yesR   t   no(   R)   R*   R   R    R   R   t   setR   R   R   R   R   R   (   R   R   R   R   (    (    s8   /usr/lib/python2.7/dist-packages/samba/tests/posixacl.pyt0   test_setntacl_smbd_dont_invalidate_getntacl_smbdo   s    c         C   so   d } t  |  j |  j | d d t ƒt |  j |  j d t ƒ} t j t j ƒ } |  j	 | j
 | ƒ | ƒ d  S(   Ns£   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)s)   S-1-5-21-2212615479-2695158682-2101375467R   R   (   R    R   R   R   R   R   R   R   R   R   R   (   R   R   R   R   (    (    s8   /usr/lib/python2.7/dist-packages/samba/tests/posixacl.pyt   test_setntacl_getntacl_smbd€   s
    c         C   so   d } t  |  j |  j | d d t ƒt |  j |  j d t ƒ} t j t j ƒ } |  j | j	 | ƒ | ƒ d  S(   Ns£   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)s)   S-1-5-21-2212615479-2695158682-2101375467R   R   (
   R    R   R   R   R   R   R   R   R   R   (   R   R   R   R   (    (    s8   /usr/lib/python2.7/dist-packages/samba/tests/posixacl.pyt    test_setntacl_smbd_getntacl_smbd‡   s
    c         C   sˆ   d } d } t  |  j |  j | d d t ƒt j |  j d ƒ t |  j |  j d t ƒ} t j t j	 ƒ } |  j
 | | j | ƒ ƒ d  S(   Ns£   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)sè   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)s)   S-1-5-21-2212615479-2695158682-2101375467R   i   R   (   R    R   R   R   R
   R   R   R   R   R   R   R   (   R   R   R+   R   R   (    (    s8   /usr/lib/python2.7/dist-packages/samba/tests/posixacl.pyt,   test_setntacl_smbd_setposixacl_getntacl_smbdŽ   s    c   	      C   sÍ   d } t  j t  j ƒ } d } t |  j |  j | d d t ƒt j |  j j	 d ƒ ƒ } | j
 | ƒ \ } } t j |  j d | ƒ t |  j |  j d t ƒ} t  j t  j ƒ } |  j | | j | ƒ ƒ d  S(   Ns£   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)sü   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)s)   S-1-5-21-2212615479-2695158682-2101375467R   s   passdb backendi   R   (   R   R   t   SID_BUILTIN_ADMINISTRATORSR    R   R   R   R   t   PDBt   gett	   sid_to_idR
   R   R   R   R   R   (	   R   R   t   BA_sidR+   t	   s4_passdbt   BA_gidt   BA_typeR   R   (    (    s8   /usr/lib/python2.7/dist-packages/samba/tests/posixacl.pyt2   test_setntacl_smbd_setposixacl_group_getntacl_smbd˜   s    c         C   sl   d } t  |  j |  j | d d t ƒt |  j |  j d t ƒ} t j d ƒ } |  j | j | ƒ | ƒ d  S(   Nso  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)s)   S-1-5-21-2212615479-2695158682-2101375467R   R   (	   R    R   R   R   R   R   R   R   R   (   R   R   R   t   domsid(    (    s8   /usr/lib/python2.7/dist-packages/samba/tests/posixacl.pyt$   test_setntacl_smbd_getntacl_smbd_gpo§   s
    c         C   s   d } t  |  j |  j | d d t ƒt |  j |  j ƒ } t j t j ƒ } |  j | j	 | ƒ | ƒ t
 j |  j t j ƒ } d  S(   Ns£   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)s)   S-1-5-21-2212615479-2695158682-2101375467R   (   R    R   R   R   R   R   R   R   R   R   R
   t   get_sys_aclR   t   SMB_ACL_TYPE_ACCESS(   R   R   R   R   t	   posix_acl(    (    s8   /usr/lib/python2.7/dist-packages/samba/tests/posixacl.pyt   test_setntacl_getposixacl®   s    c         C   s  t  j |  j d ƒ t  j |  j t j ƒ } |  j | j d ƒ |  j | j d j	 t j
 ƒ |  j | j d j d ƒ |  j | j d j	 t j ƒ |  j | j d j d ƒ |  j | j d j	 t j ƒ |  j | j d j d ƒ |  j | j d j	 t j ƒ |  j | j d j d ƒ d  S(   Ni   i   i    i   i   i   i   (   R
   R   R   R?   R   R@   R   t   countR   t   a_typet   SMB_ACL_USER_OBJt   a_permt   SMB_ACL_GROUP_OBJt   SMB_ACL_OTHERt   SMB_ACL_MASK(   R   RA   (    (    s8   /usr/lib/python2.7/dist-packages/samba/tests/posixacl.pyt   test_setposixacl_getposixacl¶   s    c         C   sW   d } t  j |  j d ƒ y& t |  j |  j ƒ } |  j t ƒ Wn t k
 rR n Xd  S(   NR"   iè  (   R
   R   R   R   R   R   R   R    (   R   R   R   (    (    s8   /usr/lib/python2.7/dist-packages/samba/tests/posixacl.pyt   test_setposixacl_getntaclÇ   s    c         C   sÊ   t  j |  j j d ƒ ƒ } | j t j |  j ƒ j ƒ } | j	 t j |  j ƒ j
 ƒ } t j |  j d ƒ t |  j |  j d t ƒ} d | | | | f } t j t j ƒ } |  j | | j | ƒ ƒ d  S(   Ns   passdb backendi   R   s<   O:%sG:%sD:(A;;0x001f019f;;;%s)(A;;0x00120089;;;%s)(A;;;;;WD)(   R   R5   R   R6   t
   gid_to_sidR)   t   statR   t   st_gidt
   uid_to_sidt   st_uidR
   R   R   R   R   R   R   R   R   (   R   R9   t	   group_SIDt   user_SIDR   R   R   (    (    s8   /usr/lib/python2.7/dist-packages/samba/tests/posixacl.pyt   test_setposixacl_getntacl_smbdÑ   s    c         C   sA  t  j |  j j d ƒ ƒ } | j t j |  j ƒ j ƒ } t	 j
 t	 j ƒ } t  j |  j j d ƒ ƒ } | j | ƒ \ } } |  j | t j ƒ t	 j
 t	 j ƒ } | j | ƒ \ } } |  j | t j ƒ t j |  j | | ƒ t j |  j d ƒ t |  j |  j d t ƒ}	 d }
 t	 j
 t	 j ƒ } |  j |
 |	 j | ƒ ƒ d  S(   Ns   passdb backendiè  R   sŠ   O:BAG:SOD:(A;;0x001f01ff;;;BA)(A;;0x001200a9;;;SO)(A;;;;;WD)(A;OICIIO;0x001f01ff;;;CO)(A;OICIIO;0x001200a9;;;CG)(A;OICIIO;0x001200a9;;;WD)(   R   R5   R   R6   RO   R)   RM   t   tempdirRP   R   R   R4   R7   R   R   t   ID_TYPE_BOTHt   SID_BUILTIN_SERVER_OPERATORSR
   t   chownR   R   R   R   R   (   R   R9   RR   R8   t   BA_idR;   t   SO_sidt   SO_idt   SO_typeR   R   R   (    (    s8   /usr/lib/python2.7/dist-packages/samba/tests/posixacl.pyt"   test_setposixacl_dir_getntacl_smbdÛ   s    c         C   s  t  j t  j ƒ } t j |  j j d ƒ ƒ } | j | ƒ \ } } | j t	 j
 |  j ƒ j ƒ } | j t	 j
 |  j ƒ j ƒ } |  j | t j ƒ t j |  j d | ƒ t |  j |  j d t ƒ} t j ƒ  } d | | | | f }	 t  j t  j ƒ }
 |  j |	 | j |
 ƒ ƒ d  S(   Ns   passdb backendi   R   sP   O:%sG:%sD:(A;;0x001f019f;;;%s)(A;;0x00120089;;;BA)(A;;0x00120089;;;%s)(A;;;;;WD)(   R   R   R4   R   R5   R   R6   R7   RL   R)   RM   R   RN   RO   RP   R   R   RU   R
   R   R   R   t   get_global_sam_sidR   R   (   R   R8   R9   R:   R;   RQ   RR   R   R=   R   R   (    (    s8   /usr/lib/python2.7/dist-packages/samba/tests/posixacl.pyt$   test_setposixacl_group_getntacl_smbdí   s    c         C   s  t  j |  j d ƒ t  j |  j t j ƒ } |  j | j d ƒ |  j | j d j	 t j
 ƒ |  j | j d j d ƒ |  j | j d j	 t j ƒ |  j | j d j d ƒ |  j | j d j	 t j ƒ |  j | j d j d ƒ |  j | j d j	 t j ƒ |  j | j d j d ƒ d  S(	   Ni   i   i    i   i   i   i   i   (   R
   R   R   R?   R   R@   R   RC   R   RD   RE   RF   RG   RH   RI   (   R   RA   (    (    s8   /usr/lib/python2.7/dist-packages/samba/tests/posixacl.pyRJ   û   s    c         C   s  t  j |  j d ƒ t  j |  j t j ƒ } |  j | j d ƒ |  j | j d j	 t j
 ƒ |  j | j d j d ƒ |  j | j d j	 t j ƒ |  j | j d j d ƒ |  j | j d j	 t j ƒ |  j | j d j d ƒ |  j | j d j	 t j ƒ |  j | j d j d ƒ d  S(	   Niè  i   i    i   i   i   i   i   (   R
   R   RT   R?   R   R@   R   RC   R   RD   RE   RF   RG   RH   RI   (   R   RA   (    (    s8   /usr/lib/python2.7/dist-packages/samba/tests/posixacl.pyt    test_setposixacl_dir_getposixacl  s    c         C   sÊ  t  j t  j ƒ } t j |  j j d ƒ ƒ } | j | ƒ \ } } |  j | t	 j
 ƒ t j |  j d | ƒ t j |  j t j ƒ } |  j | j d ƒ |  j | j d j t j ƒ |  j | j d j d ƒ |  j | j d j t j ƒ |  j | j d j d ƒ |  j | j d j t j ƒ |  j | j d j d ƒ |  j | j d	 j t j ƒ |  j | j d	 j d ƒ |  j | j d	 j j | ƒ |  j | j d
 j t j ƒ |  j | j d
 j d ƒ d  S(   Ns   passdb backendi¸  i   i    i   i   i   i   i   i   (   R   R   R4   R   R5   R   R6   R7   R   R   RU   R
   R   R   R?   R   R@   RC   R   RD   RE   RF   RG   RH   t   SMB_ACL_GROUPt   infot   gidRI   (   R   R8   R9   R:   R;   RA   (    (    s8   /usr/lib/python2.7/dist-packages/samba/tests/posixacl.pyt"   test_setposixacl_group_getposixacl  s$    c         C   s4  t  j } t j ƒ  } t |  j |  j | t | ƒ d t ƒt	 |  j |  j ƒ } |  j
 | j | ƒ | ƒ t j |  j t j ƒ } t j d ƒ } t j d ƒ } | d k o³ | d k } t j t | ƒ d t t j ƒ ƒ } t j t j ƒ }	 t j t j ƒ }
 t j t j ƒ } t j t j ƒ } t j |  j j d ƒ ƒ } | j | ƒ \ } } |  j
 | t j ƒ | j |	 ƒ \ } } |  j
 | t j ƒ | j |
 ƒ \ } } |  j
 | t j ƒ | j | ƒ \ } } |  j
 | t j ƒ | j | ƒ \ } } |  j
 | t j ƒ |  j
 | j d ƒ |  j
 | j  d	 j! t j" ƒ |  j
 | j  d	 j# d
 ƒ |  j
 | j  d	 j$ j% | ƒ |  j
 | j  d j! t j& ƒ | r®|  j
 | j  d j# d
 ƒ n |  j
 | j  d j# d ƒ |  j
 | j  d j$ j' | ƒ |  j
 | j  d j! t j( ƒ |  j
 | j  d j# d	 ƒ |  j
 | j  d j! t j) ƒ | r\|  j
 | j  d j# d
 ƒ n |  j
 | j  d j# d ƒ |  j
 | j  d j! t j& ƒ |  j
 | j  d j# d
 ƒ |  j
 | j  d j$ j' | ƒ |  j
 | j  d j! t j* ƒ |  j
 | j  d j# d
 ƒ |  j
 | j  d j! t j& ƒ |  j
 | j  d j# d ƒ |  j
 | j  d j$ j' | ƒ |  j
 | j  d
 j! t j" ƒ |  j
 | j  d
 j# d ƒ |  j
 | j  d
 j$ j% | ƒ |  j
 | j  d j! t j& ƒ |  j
 | j  d j# d
 ƒ |  j
 | j  d j$ j' | ƒ |  j
 | j  d j! t j" ƒ |  j
 | j  d j# d
 ƒ |  j
 | j  d j$ j% | ƒ |  j
 | j  d j! t j& ƒ |  j
 | j  d j# d ƒ |  j
 | j  d j$ j' | ƒ |  j
 | j  d j! t j" ƒ |  j
 | j  d j# d ƒ |  j
 | j  d j$ j% | ƒ |  j
 | j  d j! t j+ ƒ |  j
 | j  d j# d
 ƒ d  S(   NR   t   NSS_WRAPPER_MODULE_SO_PATHt   NSS_WRAPPER_MODULE_FN_PREFIXR"   t   winbindt   -s   passdb backendi   i    i   i   i   i   i   i   i   i   i	   i
   i   i   (,   R	   t
   SYSVOL_ACLR   R]   R    R   R   t   strR   R   R   R   R
   R?   R   R@   R)   t   getenvR   R   t   DOMAIN_RID_ADMINISTRATORR4   RV   t   SID_NT_SYSTEMt   SID_NT_AUTHENTICATED_USERSR5   R6   R7   R   t   ID_TYPE_UIDRU   RC   R   RD   R`   RF   Ra   Rb   t   SMB_ACL_USERt   uidRH   RE   RG   RI   (   R   R   R=   R   RA   t   nwrap_module_so_patht   nwrap_module_fn_prefixt   nwrap_winbind_activet   LA_sidR8   RY   t   SY_sidt   AU_sidR9   t   LA_uidt   LA_typeR:   R;   t   SO_gidR[   t   SY_gidt   SY_typet   AU_gidt   AU_type(    (    s8   /usr/lib/python2.7/dist-packages/samba/tests/posixacl.pyt&   test_setntacl_sysvol_check_getposixacl7  s„    	%&c         C   s¸  t  j } t j ƒ  } t |  j |  j | t | ƒ d t ƒt	 |  j |  j ƒ } |  j
 | j | ƒ | ƒ t j |  j t j ƒ } t j t | ƒ d t t j ƒ ƒ } t j t j ƒ } t j t j ƒ } t j t j ƒ } t j t j ƒ }	 t j |  j j d ƒ ƒ }
 |
 j | ƒ \ } } |  j
 | t j ƒ |
 j | ƒ \ } } |  j
 | t j ƒ |
 j | ƒ \ } } |  j
 | t j ƒ |
 j | ƒ \ } } |  j
 | t j ƒ |
 j |	 ƒ \ } } |  j
 | t j ƒ |  j
 | j d ƒ |  j
 | j d j t j  ƒ |  j
 | j d j! d ƒ |  j
 | j d j" j# | ƒ |  j
 | j d j t j$ ƒ |  j
 | j d j! d ƒ |  j
 | j d j" j% | ƒ |  j
 | j d j t j& ƒ |  j
 | j d j! d ƒ |  j
 | j d	 j t j' ƒ |  j
 | j d	 j! d ƒ |  j
 | j d
 j t j$ ƒ |  j
 | j d
 j! d ƒ |  j
 | j d
 j" j% | ƒ |  j
 | j d j t j( ƒ |  j
 | j d j! d ƒ |  j
 | j d j t j$ ƒ |  j
 | j d j! d ƒ |  j
 | j d j" j% | ƒ |  j
 | j d j t j  ƒ |  j
 | j d j! d ƒ |  j
 | j d j" j# | ƒ |  j
 | j d j t j$ ƒ |  j
 | j d j! d ƒ |  j
 | j d j" j% | ƒ |  j
 | j d j t j  ƒ |  j
 | j d j! d ƒ |  j
 | j d j" j# | ƒ |  j
 | j d j t j$ ƒ |  j
 | j d j! d ƒ |  j
 | j d j" j% | ƒ |  j
 | j d j t j  ƒ |  j
 | j d j! d ƒ |  j
 | j d j" j# | ƒ |  j
 | j d j t j) ƒ |  j
 | j d j! d ƒ d  S(   NR   Rg   s   passdb backendi   i    i   i   i   i   i   i   i   i   i	   i
   i   i   (*   R	   Rh   R   R]   R    R   RT   Ri   R   R   R   R   R
   R?   R   R@   R   R   Rk   R4   RV   Rl   Rm   R5   R6   R7   R   Rn   RU   RC   R   RD   R`   RF   Ra   Rb   Ro   Rp   RH   RE   RG   RI   (   R   R   R=   R   RA   Rt   R8   RY   Ru   Rv   R9   Rw   Rx   R:   R;   Ry   R[   Rz   R{   R|   R}   (    (    s8   /usr/lib/python2.7/dist-packages/samba/tests/posixacl.pyt*   test_setntacl_sysvol_dir_check_getposixaclÉ  st    	%&c         C   s®  t  j } t j ƒ  } t |  j |  j | t | ƒ d t ƒt	 |  j |  j ƒ } |  j
 | j | ƒ | ƒ t j |  j t j ƒ } t j t | ƒ d t t j ƒ ƒ } t j t j ƒ } t j t j ƒ } t j t j ƒ } t j t j ƒ }	 t j t | ƒ d t t j ƒ ƒ }
 t j |  j j d ƒ ƒ } | j | ƒ \ } } |  j
 | t j ƒ | j | ƒ \ } } |  j
 | t j ƒ | j | ƒ \ } } |  j
 | t j ƒ | j | ƒ \ } } |  j
 | t j ƒ | j |	 ƒ \ } } |  j
 | t j ƒ | j |
 ƒ \ } } |  j
 | t j ƒ |  j
 | j d ƒ |  j
 | j d j  t j! ƒ |  j
 | j d j" d ƒ |  j
 | j d j# j$ | ƒ |  j
 | j d j  t j% ƒ |  j
 | j d j" d ƒ |  j
 | j d j# j& | ƒ |  j
 | j d j  t j' ƒ |  j
 | j d j" d ƒ |  j
 | j d	 j  t j( ƒ |  j
 | j d	 j" d ƒ |  j
 | j d
 j  t j% ƒ |  j
 | j d
 j" d ƒ |  j
 | j d
 j# j& | ƒ |  j
 | j d j  t j) ƒ |  j
 | j d j" d ƒ |  j
 | j d j  t j% ƒ |  j
 | j d j" d ƒ |  j
 | j d j# j& | ƒ |  j
 | j d j  t j! ƒ |  j
 | j d j" d ƒ |  j
 | j d j# j$ | ƒ |  j
 | j d j  t j% ƒ |  j
 | j d j" d ƒ |  j
 | j d j# j& | ƒ |  j
 | j d j  t j! ƒ |  j
 | j d j" d ƒ |  j
 | j d j# j$ | ƒ |  j
 | j d j  t j% ƒ |  j
 | j d j" d ƒ |  j
 | j d j# j& | ƒ |  j
 | j d j  t j! ƒ |  j
 | j d j" d ƒ |  j
 | j d j# j$ | ƒ |  j
 | j d j  t j% ƒ |  j
 | j d j" d ƒ |  j
 | j d j# j& | ƒ |  j
 | j d j  t j! ƒ |  j
 | j d j" d ƒ |  j
 | j d j# j$ | ƒ |  j
 | j d j  t j* ƒ |  j
 | j d j" d ƒ d  S(   NR   Rg   s   passdb backendi   i    i   i   i   i   i   i   i   i   i	   i
   i   i   i   i   (+   R	   t   POLICIES_ACLR   R]   R    R   RT   Ri   R   R   R   R   R
   R?   R   R@   R   R   Rk   R4   RV   Rl   Rm   t   DOMAIN_RID_POLICY_ADMINSR5   R6   R7   R   Rn   RU   RC   R   RD   R`   RF   Ra   Rb   Ro   Rp   RH   RE   RG   RI   (   R   R   R=   R   RA   Rt   R8   RY   Ru   Rv   t   PA_sidR9   Rw   Rx   R:   R;   Ry   R[   Rz   R{   R|   R}   t   PA_gidt   PA_type(    (    s8   /usr/lib/python2.7/dist-packages/samba/tests/posixacl.pyt,   test_setntacl_policies_dir_check_getposixacl&  s†    	%&&c         C   s*  t  j } t j ƒ  } t |  j |  j | t | ƒ d t ƒt	 |  j |  j ƒ } |  j
 | j | ƒ | ƒ t j |  j t j ƒ } t j d ƒ } t j d ƒ } | d k o³ | d k } t j t | ƒ d t t j ƒ ƒ } t j t j ƒ }	 t j t j ƒ }
 t j t j ƒ } t j t j ƒ } t j t | ƒ d t t j ƒ ƒ } t j |  j j d ƒ ƒ } | j | ƒ \ } } |  j
 | t j ƒ | j |	 ƒ \ } } |  j
 | t j ƒ | j |
 ƒ \ } } |  j
 | t j ƒ | j | ƒ \ } } |  j
 | t j ƒ | j | ƒ \ } } |  j
 | t j ƒ | j | ƒ \ } } |  j
 | t j ƒ |  j
 | j  d ƒ |  j
 | j! d	 j" t j# ƒ |  j
 | j! d	 j$ d
 ƒ |  j
 | j! d	 j% j& | ƒ |  j
 | j! d j" t j' ƒ | rü|  j
 | j! d j$ d
 ƒ n |  j
 | j! d j$ d ƒ |  j
 | j! d j% j( | ƒ |  j
 | j! d j" t j) ƒ |  j
 | j! d j$ d	 ƒ |  j
 | j! d j" t j* ƒ | rª|  j
 | j! d j$ d
 ƒ n |  j
 | j! d j$ d ƒ |  j
 | j! d j" t j' ƒ |  j
 | j! d j$ d
 ƒ |  j
 | j! d j% j( | ƒ |  j
 | j! d j" t j+ ƒ |  j
 | j! d j$ d
 ƒ |  j
 | j! d j" t j' ƒ |  j
 | j! d j$ d ƒ |  j
 | j! d j% j( | ƒ |  j
 | j! d
 j" t j# ƒ |  j
 | j! d
 j$ d ƒ |  j
 | j! d
 j% j& | ƒ |  j
 | j! d j" t j' ƒ |  j
 | j! d j$ d
 ƒ |  j
 | j! d j% j( | ƒ |  j
 | j! d j" t j# ƒ |  j
 | j! d j$ d
 ƒ |  j
 | j! d j% j& | ƒ |  j
 | j! d j" t j' ƒ |  j
 | j! d j$ d ƒ |  j
 | j! d j% j( | ƒ |  j
 | j! d j" t j# ƒ |  j
 | j! d j$ d ƒ |  j
 | j! d j% j& | ƒ |  j
 | j! d j" t j' ƒ |  j
 | j! d j$ d
 ƒ |  j
 | j! d j% j( | ƒ |  j
 | j! d j" t j# ƒ |  j
 | j! d j$ d
 ƒ |  j
 | j! d j% j& | ƒ |  j
 | j! d j" t j, ƒ |  j
 | j! d j$ d
 ƒ d  S(   NR   Rd   Re   R"   Rf   Rg   s   passdb backendi   i    i   i   i   i   i   i   i   i   i	   i
   i   i   i   i   (-   R	   R€   R   R]   R    R   R   Ri   R   R   R   R   R
   R?   R   R@   R)   Rj   R   R   Rk   R4   RV   Rl   Rm   R   R5   R6   R7   R   Rn   RU   RC   R   RD   R`   RF   Ra   Rb   Ro   Rp   RH   RE   RG   RI   (   R   R   R=   R   RA   Rq   Rr   Rs   Rt   R8   RY   Ru   Rv   R‚   R9   Rw   Rx   R:   R;   Ry   R[   Rz   R{   R|   R}   Rƒ   R„   (    (    s8   /usr/lib/python2.7/dist-packages/samba/tests/posixacl.pyt(   test_setntacl_policies_check_getposixacl  s–    	%&&c         C   s˜   t  t |  ƒ j ƒ  t j ƒ  } | j |  j ƒ  j ƒ | j d t	 j
 j |  j d ƒ ƒ | |  _ t	 j
 j |  j d ƒ |  _ t |  j d ƒ j d ƒ d  S(   Ns   xattr_tdb:files	   xattr.tdbt   testt   wt   empty(   t   superR   t   setUpt   s3paramt   get_contextt   loadt   get_loadparmt
   configfileR/   R)   t   patht   joinRT   R   R   t   opent   write(   R   t   s3conf(    (    s8   /usr/lib/python2.7/dist-packages/samba/tests/posixacl.pyR‹   2  s    "	c         C   sF   t  j |  j ƒ t j t j j |  j d ƒ ƒ t t |  ƒ j	 ƒ  d  S(   Ns	   xattr.tdb(
   R
   t   unlinkR   R)   R‘   R’   RT   RŠ   R   t   tearDown(   R   (    (    s8   /usr/lib/python2.7/dist-packages/samba/tests/posixacl.pyR—   ;  s    (   t   __name__t
   __module__R   R   R!   R'   R(   R,   R0   R1   R2   R3   R<   R>   RB   RJ   RK   RS   R\   R^   R_   Rc   R~   R   R…   R†   R‹   R—   (    (    (    s8   /usr/lib/python2.7/dist-packages/samba/tests/posixacl.pyR   (   s6   										
					
	
						’	]	j	¢		(   t   __doc__t   samba.ntaclsR    R   R   t   samba.dcerpcR   R   R   R   t   samba.paramR   t   samba.testsR   t   sambaR	   t   randomR)   t   samba.samba3R
   R   R   RŒ   R   (    (    (    s8   /usr/lib/python2.7/dist-packages/samba/tests/posixacl.pyt   <module>   s   "