From: Andrew Bartlett Date: Mon, 4 Jun 2012 23:58:41 +0000 (+1000) Subject: s4-provision: Test for posix ACLs in the actual sysvol path X-Git-Tag: samba-4.0.0beta1~15 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=dc799d4b42551842a9c1dc863568611d82c6168d;p=thirdparty%2Fsamba.git 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 --- diff --git a/source4/scripting/python/samba/provision/__init__.py b/source4/scripting/python/samba/provision/__init__.py index a84bb5b7eae..5f64d773e3d 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,