3 # Unix SMB/CIFS implementation. Tests for ntacls manipulation
4 # Copyright (C) Matthieu Patou <mat@matws.net> 2009-2010
6 # This program is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 3 of the License, or
9 # (at your option) any later version.
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with this program. If not, see <http://www.gnu.org/licenses/>.
20 from samba
.ntacls
import setntacl
, getntacl
, XattrBackendError
21 from samba
.dcerpc
import xattr
, security
22 from samba
.param
import LoadParm
23 from unittest
import TestCase
27 class NtaclsTests(TestCase
):
29 def test_setntacl(self
):
34 path
=os
.environ
['SELFTEST_PREFIX']
36 self
.assertTrue(path
!=None, "SELFTEST_PREFIX env not set")
37 acl
="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)"
38 tempf
=os
.path
.join(path
,"pytests"+str(int(100000*random
.random())))
41 open(tempf
, 'w').write("empty")
42 lp
.set("posix:eadb",os
.path
.join(path
,"eadbtest.tdb"))
43 setntacl(lp
,tempf
,acl
,"S-1-5-21-2212615479-2695158682-2101375467")
46 def test_setntacl_getntacl(self
):
51 path
=os
.environ
['SELFTEST_PREFIX']
53 self
.assertTrue(path
!=None, "SELFTEST_PREFIX env not set")
54 acl
="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)"
55 tempf
=os
.path
.join(path
,"pytests"+str(int(100000*random
.random())))
58 open(tempf
, 'w').write("empty")
59 lp
.set("posix:eadb",os
.path
.join(path
,"eadbtest.tdb"))
60 setntacl(lp
,tempf
,acl
,"S-1-5-21-2212615479-2695158682-2101375467")
61 facl
=getntacl(lp
,tempf
)
62 anysid
=security
.dom_sid(security
.SID_NT_SELF
)
63 self
.assertEquals(facl
.info
.as_sddl(anysid
),acl
)
66 def test_setntacl_getntacl_param(self
):
69 acl
="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)"
72 path
=os
.environ
['SELFTEST_PREFIX']
74 self
.assertTrue(path
!=None, "SELFTEST_PREFIX env not set")
75 tempf
=os
.path
.join(path
,"pytests"+str(int(100000*random
.random())))
78 open(tempf
, 'w').write("empty")
79 setntacl(lp
,tempf
,acl
,"S-1-5-21-2212615479-2695158682-2101375467","tdb",os
.path
.join(path
,"eadbtest.tdb"))
80 facl
=getntacl(lp
,tempf
,"tdb",os
.path
.join(path
,"eadbtest.tdb"))
81 domsid
=security
.dom_sid(security
.SID_NT_SELF
)
82 self
.assertEquals(facl
.info
.as_sddl(domsid
),acl
)
85 def test_setntacl_invalidbackend(self
):
88 acl
="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)"
91 path
=os
.environ
['SELFTEST_PREFIX']
93 self
.assertTrue(path
!=None, "SELFTEST_PREFIX env not set")
94 tempf
=os
.path
.join(path
,"pytests"+str(int(100000*random
.random())))
97 open(tempf
, 'w').write("empty")
98 self
.assertRaises(XattrBackendError
,setntacl
,lp
,tempf
,acl
,"S-1-5-21-2212615479-2695158682-2101375467","ttdb",os
.path
.join(path
,"eadbtest.tdb"))
100 def test_setntacl_forcenative(self
):
104 acl
="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)"
107 path
=os
.environ
['SELFTEST_PREFIX']
109 self
.assertTrue(path
!=None, "SELFTEST_PREFIX env not set")
110 tempf
=os
.path
.join(path
,"pytests"+str(int(100000*random
.random())))
113 open(tempf
, 'w').write("empty")
114 lp
.set("posix:eadb",os
.path
.join(path
,"eadbtest.tdb"))
115 self
.assertRaises(Exception,setntacl
,lp
,tempf
,acl
,"S-1-5-21-2212615479-2695158682-2101375467","native")
118 print "Running test as root, test skipped"