summaryrefslogtreecommitdiff
path: root/source4
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2021-10-21 14:03:05 +1300
committerJule Anger <janger@samba.org>2021-11-09 19:45:32 +0000
commit4150264ce0b50f01c52dd67f6cbbf5d3dab9d69e (patch)
tree5abb0a595dcfe8d8305f49afb17db5ab9823adf1 /source4
parent0b06e9a5a58c240a38be498ed9a7c8a63cfaa38b (diff)
downloadsamba-4150264ce0b50f01c52dd67f6cbbf5d3dab9d69e.tar.gz
CVE-2020-25722 selftest: Split test_userAccountControl into unit tests
The parts that create and delete a single object can be safely split out into an individual test. At this point the parts that fail against Windows 2019 are: error: __main__.SamTests.test_userAccountControl_computer_add_normal [ _ldb.LdbError: (53, 'LDAP error 53 LDAP_UNWILLING_TO_PERFORM - <0000052D: SvcErr: DSID-031A1236, problem 5003 (WILL_NOT_PERFORM), data 0\n> <>') error: __main__.SamTests.test_userAccountControl_computer_modify [ _ldb.LdbError: (53, 'LDAP error 53 LDAP_UNWILLING_TO_PERFORM - <0000052D: SvcErr: DSID-031A1236, problem 5003 (WILL_NOT_PERFORM), data 0\n> <>') error: __main__.SamTests.test_userAccountControl_user_add_0_uac [ _ldb.LdbError: (53, 'LDAP error 53 LDAP_UNWILLING_TO_PERFORM - <0000052D: SvcErr: DSID-031A1236, problem 5003 (WILL_NOT_PERFORM), data 0\n> <>') error: __main__.SamTests.test_userAccountControl_user_add_normal [ _ldb.LdbError: (53, 'LDAP error 53 LDAP_UNWILLING_TO_PERFORM - <0000052D: SvcErr: DSID-031A1236, problem 5003 (WILL_NOT_PERFORM), data 0\n> <>') error: __main__.SamTests.test_userAccountControl_user_modify [ _ldb.LdbError: (53, 'LDAP error 53 LDAP_UNWILLING_TO_PERFORM - <0000052D: SvcErr: DSID-031A1236, problem 5003 (WILL_NOT_PERFORM), data 0\n> <>') BUG: https://bugzilla.samba.org/show_bug.cgi?id=14753 Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Diffstat (limited to 'source4')
-rwxr-xr-xsource4/dsdb/tests/python/sam.py21
1 files changed, 20 insertions, 1 deletions
diff --git a/source4/dsdb/tests/python/sam.py b/source4/dsdb/tests/python/sam.py
index 5dd091fe475..b5b007b96ef 100755
--- a/source4/dsdb/tests/python/sam.py
+++ b/source4/dsdb/tests/python/sam.py
@@ -1884,7 +1884,7 @@ class SamTests(samba.tests.TestCase):
delete_force(self.ldb, "cn=ldaptestuser,cn=users," + self.base_dn)
- def test_userAccountControl(self):
+ def test_userAccountControl_user_add_0_uac(self):
"""Test the userAccountControl behaviour"""
print("Testing userAccountControl behaviour\n")
@@ -1912,12 +1912,15 @@ class SamTests(samba.tests.TestCase):
self.assertTrue(int(res1[0]["userAccountControl"][0]) & UF_PASSWD_NOTREQD == 0)
delete_force(self.ldb, "cn=ldaptestuser,cn=users," + self.base_dn)
+ def test_userAccountControl_user_add_normal(self):
+ """Test the userAccountControl behaviour"""
ldb.add({
"dn": "cn=ldaptestuser,cn=users," + self.base_dn,
"objectclass": "user",
"userAccountControl": str(UF_NORMAL_ACCOUNT)})
delete_force(self.ldb, "cn=ldaptestuser,cn=users," + self.base_dn)
+ def test_userAccountControl_user_add_normal_pwnotreq(self):
ldb.add({
"dn": "cn=ldaptestuser,cn=users," + self.base_dn,
"objectclass": "user",
@@ -1932,6 +1935,7 @@ class SamTests(samba.tests.TestCase):
self.assertTrue(int(res1[0]["userAccountControl"][0]) & UF_ACCOUNTDISABLE == 0)
delete_force(self.ldb, "cn=ldaptestuser,cn=users," + self.base_dn)
+ def test_userAccountControl_user_add_normal_pwnotreq_lockout_expired(self):
ldb.add({
"dn": "cn=ldaptestuser,cn=users," + self.base_dn,
"objectclass": "user",
@@ -1951,6 +1955,7 @@ class SamTests(samba.tests.TestCase):
self.assertTrue(int(res1[0]["pwdLastSet"][0]) == 0)
delete_force(self.ldb, "cn=ldaptestuser,cn=users," + self.base_dn)
+ def test_userAccountControl_user_add_temp_dup(self):
try:
ldb.add({
"dn": "cn=ldaptestuser,cn=users," + self.base_dn,
@@ -1962,6 +1967,7 @@ class SamTests(samba.tests.TestCase):
self.assertEqual(num, ERR_OTHER)
delete_force(self.ldb, "cn=ldaptestuser,cn=users," + self.base_dn)
+ def test_userAccountControl_user_add_server(self):
try:
ldb.add({
"dn": "cn=ldaptestuser,cn=users," + self.base_dn,
@@ -1973,6 +1979,7 @@ class SamTests(samba.tests.TestCase):
self.assertEqual(num, ERR_OBJECT_CLASS_VIOLATION)
delete_force(self.ldb, "cn=ldaptestuser,cn=users," + self.base_dn)
+ def test_userAccountControl_user_add_workstation(self):
try:
ldb.add({
"dn": "cn=ldaptestuser,cn=users," + self.base_dn,
@@ -1983,6 +1990,7 @@ class SamTests(samba.tests.TestCase):
self.assertEqual(num, ERR_OBJECT_CLASS_VIOLATION)
delete_force(self.ldb, "cn=ldaptestuser,cn=users," + self.base_dn)
+ def test_userAccountControl_user_add_rodc(self):
try:
ldb.add({
"dn": "cn=ldaptestuser,cn=users," + self.base_dn,
@@ -1993,6 +2001,7 @@ class SamTests(samba.tests.TestCase):
self.assertEqual(num, ERR_OBJECT_CLASS_VIOLATION)
delete_force(self.ldb, "cn=ldaptestuser,cn=users," + self.base_dn)
+ def test_userAccountControl_user_add_trust(self):
try:
ldb.add({
"dn": "cn=ldaptestuser,cn=users," + self.base_dn,
@@ -2006,6 +2015,7 @@ class SamTests(samba.tests.TestCase):
# Modify operation
+ def test_userAccountControl_user_modify(self):
ldb.add({
"dn": "cn=ldaptestuser,cn=users," + self.base_dn,
"objectclass": "user"})
@@ -2176,6 +2186,7 @@ class SamTests(samba.tests.TestCase):
(num, _) = e69.args
self.assertEqual(num, ERR_INSUFFICIENT_ACCESS_RIGHTS)
+ def test_userAccountControl_computer_add_0_uac(self):
# With a computer object
# Add operation
@@ -2200,12 +2211,14 @@ class SamTests(samba.tests.TestCase):
self.assertTrue(int(res1[0]["userAccountControl"][0]) & UF_PASSWD_NOTREQD == 0)
delete_force(self.ldb, "cn=ldaptestcomputer,cn=computers," + self.base_dn)
+ def test_userAccountControl_computer_add_normal(self):
ldb.add({
"dn": "cn=ldaptestcomputer,cn=computers," + self.base_dn,
"objectclass": "computer",
"userAccountControl": str(UF_NORMAL_ACCOUNT)})
delete_force(self.ldb, "cn=ldaptestcomputer,cn=computers," + self.base_dn)
+ def test_userAccountControl_computer_add_normal_pwnotreqd(self):
ldb.add({
"dn": "cn=ldaptestcomputer,cn=computers," + self.base_dn,
"objectclass": "computer",
@@ -2220,6 +2233,7 @@ class SamTests(samba.tests.TestCase):
self.assertTrue(int(res1[0]["userAccountControl"][0]) & UF_ACCOUNTDISABLE == 0)
delete_force(self.ldb, "cn=ldaptestcomputer,cn=computers," + self.base_dn)
+ def test_userAccountControl_computer_add_normal_pwnotreqd_lockout_expired(self):
ldb.add({
"dn": "cn=ldaptestcomputer,cn=computers," + self.base_dn,
"objectclass": "computer",
@@ -2239,6 +2253,7 @@ class SamTests(samba.tests.TestCase):
self.assertTrue(int(res1[0]["pwdLastSet"][0]) == 0)
delete_force(self.ldb, "cn=ldaptestcomputer,cn=computers," + self.base_dn)
+ def test_userAccountControl_computer_add_temp_dup(self):
try:
ldb.add({
"dn": "cn=ldaptestcomputer,cn=computers," + self.base_dn,
@@ -2250,6 +2265,7 @@ class SamTests(samba.tests.TestCase):
self.assertEqual(num, ERR_OTHER)
delete_force(self.ldb, "cn=ldaptestcomputer,cn=computers," + self.base_dn)
+ def test_userAccountControl_computer_add_server(self):
ldb.add({
"dn": "cn=ldaptestcomputer,cn=computers," + self.base_dn,
"objectclass": "computer",
@@ -2262,6 +2278,7 @@ class SamTests(samba.tests.TestCase):
ATYPE_WORKSTATION_TRUST)
delete_force(self.ldb, "cn=ldaptestcomputer,cn=computers," + self.base_dn)
+ def test_userAccountControl_computer_add_workstation(self):
try:
ldb.add({
"dn": "cn=ldaptestcomputer,cn=computers," + self.base_dn,
@@ -2272,6 +2289,7 @@ class SamTests(samba.tests.TestCase):
self.assertEqual(num, ERR_OBJECT_CLASS_VIOLATION)
delete_force(self.ldb, "cn=ldaptestcomputer,cn=computers," + self.base_dn)
+ def test_userAccountControl_computer_add_trust(self):
try:
ldb.add({
"dn": "cn=ldaptestcomputer,cn=computers," + self.base_dn,
@@ -2283,6 +2301,7 @@ class SamTests(samba.tests.TestCase):
self.assertEqual(num, ERR_INSUFFICIENT_ACCESS_RIGHTS)
delete_force(self.ldb, "cn=ldaptestcomputer,cn=computers," + self.base_dn)
+ def test_userAccountControl_computer_modify(self):
# Modify operation
ldb.add({