Linux anchor 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64
Apache/2.4.18 (Ubuntu)
Server IP : 10.10.100.4 & Your IP : 216.73.217.150
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
lib /
python2.7 /
dist-packages /
samba /
tests /
Delete
Unzip
Name
Size
Permission
Date
Action
blackbox
[ DIR ]
drwxr-xr-x
2021-05-01 07:33
dcerpc
[ DIR ]
drwxr-xr-x
2021-05-01 07:33
kcc
[ DIR ]
drwxr-xr-x
2021-05-01 07:33
samba_tool
[ DIR ]
drwxr-xr-x
2021-05-01 07:33
__init__.py
31.8
KB
-rw-r--r--
2016-03-30 12:19
__init__.pyc
30.32
KB
-rw-r--r--
2021-05-01 07:33
auth.py
1.02
KB
-rw-r--r--
2015-07-21 11:47
auth.pyc
837
B
-rw-r--r--
2021-05-01 07:33
common.py
1.51
KB
-rw-r--r--
2015-07-21 11:47
common.pyc
1.43
KB
-rw-r--r--
2021-05-01 07:33
core.py
2.7
KB
-rw-r--r--
2016-02-22 10:36
core.pyc
3.77
KB
-rw-r--r--
2021-05-01 07:33
credentials.py
3.58
KB
-rw-r--r--
2015-07-21 11:47
credentials.pyc
4.74
KB
-rw-r--r--
2021-05-01 07:33
dns.py
47.51
KB
-rw-r--r--
2016-02-24 11:43
dns.pyc
34.97
KB
-rw-r--r--
2021-05-01 07:33
docs.py
15.16
KB
-rw-r--r--
2015-07-21 11:47
docs.pyc
12.77
KB
-rw-r--r--
2021-05-01 07:33
dsdb.py
6.98
KB
-rw-r--r--
2015-09-08 15:45
dsdb.pyc
6.91
KB
-rw-r--r--
2021-05-01 07:33
gensec.py
6.25
KB
-rw-r--r--
2015-07-21 11:47
gensec.pyc
4.55
KB
-rw-r--r--
2021-05-01 07:33
get_opt.py
1.86
KB
-rw-r--r--
2016-02-24 11:43
get_opt.pyc
1.75
KB
-rw-r--r--
2021-05-01 07:33
hostconfig.py
2.15
KB
-rw-r--r--
2015-07-21 11:47
hostconfig.pyc
3.45
KB
-rw-r--r--
2021-05-01 07:33
libsmb_samba_internal.py
2.36
KB
-rw-r--r--
2015-07-21 11:47
libsmb_samba_internal.pyc
2.69
KB
-rw-r--r--
2021-05-01 07:33
messaging.py
2.26
KB
-rw-r--r--
2015-07-21 11:47
messaging.pyc
3.09
KB
-rw-r--r--
2021-05-01 07:33
netcmd.py
3
KB
-rw-r--r--
2015-07-21 11:47
netcmd.pyc
3.95
KB
-rw-r--r--
2021-05-01 07:33
ntacls.py
4.09
KB
-rw-r--r--
2015-07-21 11:47
ntacls.pyc
4.69
KB
-rw-r--r--
2021-05-01 07:33
param.py
1.84
KB
-rw-r--r--
2015-07-21 11:47
param.pyc
2.38
KB
-rw-r--r--
2021-05-01 07:33
policy.py
1.15
KB
-rw-r--r--
2015-07-21 11:47
policy.pyc
1.03
KB
-rw-r--r--
2021-05-01 07:33
posixacl.py
36.93
KB
-rw-r--r--
2015-07-21 11:47
posixacl.pyc
26.27
KB
-rw-r--r--
2021-05-01 07:33
provision.py
6.3
KB
-rw-r--r--
2015-07-21 11:47
provision.pyc
9.99
KB
-rw-r--r--
2021-05-01 07:33
registry.py
1.73
KB
-rw-r--r--
2015-07-21 11:47
registry.pyc
2.37
KB
-rw-r--r--
2021-05-01 07:33
samba3.py
8.24
KB
-rw-r--r--
2015-07-21 11:47
samba3.pyc
11.52
KB
-rw-r--r--
2021-05-01 07:33
samba3sam.py
48.3
KB
-rw-r--r--
2015-07-21 11:47
samba3sam.pyc
31.62
KB
-rw-r--r--
2021-05-01 07:33
samdb.py
3.51
KB
-rw-r--r--
2015-07-21 11:47
samdb.pyc
3.11
KB
-rw-r--r--
2021-05-01 07:33
security.py
5.36
KB
-rw-r--r--
2015-07-21 11:47
security.pyc
7.81
KB
-rw-r--r--
2021-05-01 07:33
source.py
8.06
KB
-rw-r--r--
2015-07-21 11:47
source.pyc
7.48
KB
-rw-r--r--
2021-05-01 07:33
strings.py
4.12
KB
-rw-r--r--
2015-07-21 11:47
strings.pyc
3.03
KB
-rw-r--r--
2021-05-01 07:33
subunitrun.py
2.33
KB
-rw-r--r--
2015-07-21 11:47
subunitrun.pyc
1.84
KB
-rw-r--r--
2021-05-01 07:33
unicodenames.py
1.07
KB
-rw-r--r--
2015-07-21 11:47
unicodenames.pyc
555
B
-rw-r--r--
2021-05-01 07:33
upgrade.py
1.36
KB
-rw-r--r--
2015-07-21 11:47
upgrade.pyc
1.28
KB
-rw-r--r--
2021-05-01 07:33
upgradeprovision.py
6.66
KB
-rw-r--r--
2015-07-21 11:47
upgradeprovision.pyc
6.57
KB
-rw-r--r--
2021-05-01 07:33
upgradeprovisionneeddc.py
7.29
KB
-rw-r--r--
2015-07-21 11:47
upgradeprovisionneeddc.pyc
8.08
KB
-rw-r--r--
2021-05-01 07:33
xattr.py
4.11
KB
-rw-r--r--
2015-07-21 11:47
xattr.pyc
4.57
KB
-rw-r--r--
2021-05-01 07:33
Save
Rename
# Unix SMB/CIFS implementation. # Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007-2008 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # """Tests for samba.upgradeprovision.""" import os from samba.upgradehelpers import (usn_in_range, dn_sort, update_secrets, construct_existor_expr) from samba.descriptor import get_diff_sds from samba.tests.provision import create_dummy_secretsdb from samba.tests import TestCaseInTempDir from samba import Ldb from ldb import SCOPE_BASE import samba.tests from samba.dcerpc import security def dummymessage(a=None, b=None): pass class UpgradeProvisionTestCase(TestCaseInTempDir): """Some simple tests for individual functions in the provisioning code. """ def test_usn_in_range(self): range = [5, 25, 35, 55] vals = [3, 26, 56] for v in vals: self.assertFalse(usn_in_range(v, range)) vals = [5, 20, 25, 35, 36] for v in vals: self.assertTrue(usn_in_range(v, range)) def test_dn_sort(self): # higher level comes after lower even if lexicographicaly closer # ie dc=tata,dc=toto (2 levels), comes after dc=toto # even if dc=toto is lexicographicaly after dc=tata, dc=toto self.assertEquals(dn_sort("dc=tata,dc=toto", "dc=toto"), 1) self.assertEquals(dn_sort("dc=zata", "dc=tata"), 1) self.assertEquals(dn_sort("dc=toto,dc=tata", "cn=foo,dc=toto,dc=tata"), -1) self.assertEquals(dn_sort("cn=bar, dc=toto,dc=tata", "cn=foo, dc=toto,dc=tata"), -1) def test_get_diff_sds(self): domsid = security.dom_sid('S-1-5-21') sddl = "O:SAG:DUD:AI(A;CI;RPWPCRCCLCLORCWOWDSW;;;SA)\ (A;CI;RP LCLORC;;;AU)(A;CI;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)S:AI(AU;CISA;WP;;;WD)" sddl1 = "O:SAG:DUD:AI(A;CI;RPWPCRCCLCLORCWOWDSW;;;SA)\ (A;CI;RP LCLORC;;;AU)(A;CI;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)S:AI(AU;CISA;WP;;;WD)" sddl2 = "O:BAG:DUD:AI(A;CI;RPWPCRCCLCLORCWOWDSW;;;SA)\ (A;CI;RP LCLORC;;;AU)(A;CI;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)S:AI(AU;CISA;WP;;;WD)" sddl3 = "O:SAG:BAD:AI(A;CI;RPWPCRCCLCLORCWOWDSW;;;SA)\ (A;CI;RP LCLORC;;;AU)(A;CI;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)S:AI(AU;CISA;WP;;;WD)" sddl4 = "O:SAG:DUD:AI(A;CI;RPWPCRCCLCLORCWOWDSW;;;BA)\ (A;CI;RP LCLORC;;;AU)(A;CI;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)S:AI(AU;CISA;WP;;;WD)" sddl5 = "O:SAG:DUD:AI(A;CI;RPWPCRCCLCLORCWOWDSW;;;SA)\ (A;CI;RP LCLORC;;;AU)(A;CI;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)" sddl6 = "O:SAG:DUD:AI(A;CIID;RPWPCRCCLCLORCWOWDSW;;;SA)\ (A;CIID;RP LCLORC;;;AU)(A;CIID;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)\ (A;CI;RPWPCRCCLCLORCWOWDSW;;;SA)\ (A;CI;RP LCLORC;;;AU)(A;CI;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)S:AI(AU;CISA;WP;;;WD)(AU;CIIDSA;WP;;;WD)" self.assertEquals(get_diff_sds(security.descriptor.from_sddl(sddl, domsid), security.descriptor.from_sddl(sddl1, domsid), domsid), "") txt = get_diff_sds(security.descriptor.from_sddl(sddl, domsid), security.descriptor.from_sddl(sddl2, domsid), domsid) self.assertEquals(txt, "\tOwner mismatch: SA (in ref) BA(in current)\n") txt = get_diff_sds(security.descriptor.from_sddl(sddl, domsid), security.descriptor.from_sddl(sddl3, domsid), domsid) self.assertEquals(txt, "\tGroup mismatch: DU (in ref) BA(in current)\n") txt = get_diff_sds(security.descriptor.from_sddl(sddl, domsid), security.descriptor.from_sddl(sddl4, domsid), domsid) txtmsg = "\tPart dacl is different between reference and current here\ is the detail:\n\t\t(A;CI;RPWPCRCCLCLORCWOWDSW;;;BA) ACE is not present in\ the reference\n\t\t(A;CI;RPWPCRCCLCLORCWOWDSW;;;SA) ACE is not present in\ the current\n" self.assertEquals(txt, txtmsg) txt = get_diff_sds(security.descriptor.from_sddl(sddl, domsid), security.descriptor.from_sddl(sddl5, domsid), domsid) self.assertEquals(txt, "\tCurrent ACL hasn't a sacl part\n") self.assertEquals(get_diff_sds(security.descriptor.from_sddl(sddl, domsid), security.descriptor.from_sddl(sddl6, domsid), domsid), "") def test_construct_existor_expr(self): res = construct_existor_expr([]) self.assertEquals(res, "") res = construct_existor_expr(["foo"]) self.assertEquals(res, "(|(foo=*))") res = construct_existor_expr(["foo", "bar"]) self.assertEquals(res, "(|(foo=*)(bar=*))") class UpdateSecretsTests(samba.tests.TestCaseInTempDir): def setUp(self): super(UpdateSecretsTests, self).setUp() self.referencedb = create_dummy_secretsdb( os.path.join(self.tempdir, "ref.ldb")) def _getEmptyDb(self): return Ldb(os.path.join(self.tempdir, "secrets.ldb")) def _getCurrentFormatDb(self): return create_dummy_secretsdb( os.path.join(self.tempdir, "secrets.ldb")) def test_trivial(self): # Test that updating an already up-to-date secretsdb works fine self.secretsdb = self._getCurrentFormatDb() self.assertEquals(None, update_secrets(self.referencedb, self.secretsdb, dummymessage)) def test_update_modules(self): empty_db = self._getEmptyDb() update_secrets(self.referencedb, empty_db, dummymessage) newmodules = empty_db.search(base="@MODULES", scope=SCOPE_BASE) refmodules = self.referencedb.search(base="@MODULES", scope=SCOPE_BASE) self.assertEquals(newmodules.msgs, refmodules.msgs) def tearDown(self): for name in ["ref.ldb", "secrets.ldb", "secrets.tdb", "secrets.tdb.bak", "secrets.ntdb"]: path = os.path.join(self.tempdir, name) if os.path.exists(path): os.unlink(path) super(UpdateSecretsTests, self).tearDown()