From 10f6e1657303dabcf7dbbaed8547f0cb6e845a5d Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Fri, 13 Jul 2007 08:01:36 +0000 Subject: r23859: Work to have Group Policy work 'out of the box' in Samba4. This involves creating the SYSVOL and NETLOGON shares at provision time, and creating the right subdirectories. This also changes the behaviour of lp.get("foo") in ejs - we now return undefined, rather than syntax error, if the parameter doesn't exist (perhaps because the share isn't defined). Andrew Bartlett (This used to be commit 45cadf3bc0d38f6600666511a392e1ce353adee7) --- source4/scripting/libjs/provision.js | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'source4/scripting/libjs') diff --git a/source4/scripting/libjs/provision.js b/source4/scripting/libjs/provision.js index deaa97114a..c417d7b64b 100644 --- a/source4/scripting/libjs/provision.js +++ b/source4/scripting/libjs/provision.js @@ -389,6 +389,19 @@ function provision_default_paths(subobj) paths.ldap_basedn_ldif = paths.ldapdir + "/" + subobj.DNSDOMAIN + ".ldif"; paths.ldap_config_basedn_ldif = paths.ldapdir + "/" + subobj.DNSDOMAIN + "-config.ldif"; paths.ldap_schema_basedn_ldif = paths.ldapdir + "/" + subobj.DNSDOMAIN + "-schema.ldif"; + + paths.netlogon = lp.get("netlogon", "path"); + + if (paths.netlogon == undefined) { + paths.netlogon = lp.get("lock dir") + "/netlogon"; + } + + paths.sysvol = lp.get("sysvol", "path"); + + if (paths.sysvol == undefined) { + paths.sysvol = lp.get("lock dir") + "/sysvol"; + } + return paths; } @@ -466,6 +479,9 @@ function provision_fix_subobj(subobj, paths) subobj.LDAPMANAGERDN = "cn=Manager," + subobj.DOMAINDN; + subobj.NETLOGONPATH = paths.netlogon; + subobj.SYSVOLPATH = paths.sysvol; + return true; } @@ -703,6 +719,16 @@ function provision(subobj, message, blank, paths, session_info, credentials, lda if (lp.get("server role") == "domain controller") { message("Setting up self join\n"); setup_add_ldif("provision_self_join.ldif", info, samdb, false); + setup_add_ldif("provision_group_policy.ldif", info, samdb, false); + + sys.mkdir(paths.sysvol, 0755); + sys.mkdir(paths.sysvol + "/"+ subobj.DNSDOMAIN, 0755); + sys.mkdir(paths.sysvol + "/"+ subobj.DNSDOMAIN + "/Policies", 0755); + sys.mkdir(paths.sysvol + "/"+ subobj.DNSDOMAIN + "/Policies/{" + subobj.POLICYGUID + "}", 0755); + sys.mkdir(paths.sysvol + "/"+ subobj.DNSDOMAIN + "/Policies/{" + subobj.POLICYGUID + "}/Machine", 0755); + sys.mkdir(paths.sysvol + "/"+ subobj.DNSDOMAIN + "/Policies/{" + subobj.POLICYGUID + "}/User", 0755); + + sys.mkdir(paths.netlogon, 0755); } if (setup_name_mappings(info, samdb) == false) { -- cgit