From dc799d4b42551842a9c1dc863568611d82c6168d Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Tue, 5 Jun 2012 09:58:41 +1000 Subject: s4-provision: Test for posix ACLs in the actual sysvol path This avoids issues in the previous location where lp may not be initialised at this point and instead simply waits until we have a known sysvol path, and test for ACL support there. Andrew Bartlett --- .../scripting/python/samba/provision/__init__.py | 28 ++++++++++++---------- 1 file changed, 16 insertions(+), 12 deletions(-) (limited to 'source4/scripting') diff --git a/source4/scripting/python/samba/provision/__init__.py b/source4/scripting/python/samba/provision/__init__.py index a84bb5b7ea..5f64d773e3 100644 --- a/source4/scripting/python/samba/provision/__init__.py +++ b/source4/scripting/python/samba/provision/__init__.py @@ -1661,18 +1661,6 @@ def provision(logger, session_info, credentials, smbconf=None, server_services.append("+s3fs") global_param["dcerpc endpoint servers"] = ["-winreg", "-srvsvc"] - if targetdir is not None: - file = tempfile.NamedTemporaryFile(dir=os.path.abspath(targetdir)) - else: - file = tempfile.NamedTemporaryFile(dir=os.path.abspath(os.path.dirname(lp.get("private dir")))) - try: - try: - smbd.set_simple_acl(file.name, root_uid, wheel_gid) - except Exception: - raise ProvisioningError("Your filesystem or build does not support posix ACLs, s3fs is unworkable in this mode") - finally: - file.close() - if len(server_services) > 0: global_param["server services"] = server_services @@ -1744,6 +1732,22 @@ def provision(logger, session_info, credentials, smbconf=None, if not os.path.exists(paths.state_dir): os.mkdir(paths.state_dir) + if paths.sysvol and not os.path.exists(paths.sysvol): + os.makedirs(paths.sysvol, 0775) + + if not use_ntvfs and serverrole == "domain controller": + if paths.sysvol is None: + raise MissingShareError("sysvol", paths.smbconf) + + file = tempfile.NamedTemporaryFile(dir=os.path.abspath(paths.sysvol)) + try: + try: + smbd.set_simple_acl(file.name, root_uid, wheel_gid) + except Exception: + raise ProvisioningError("Your filesystem or build does not support posix ACLs, s3fs is unworkable in this mode") + finally: + file.close() + ldapi_url = "ldapi://%s" % urllib.quote(paths.s4_ldapi_path, safe="") schema = Schema(domainsid, invocationid=invocationid, -- cgit