summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2006-08-28 05:26:42 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:16:50 -0500
commit2b99336a56a47838510f9b8a01aab05363c424b6 (patch)
treec2e31d695d2e80e8db3bc964a27186812c03bd94
parent9356831484fcba09d0d4f522ff78f9c30d86c99e (diff)
downloadsamba-2b99336a56a47838510f9b8a01aab05363c424b6.tar.gz
samba-2b99336a56a47838510f9b8a01aab05363c424b6.tar.bz2
samba-2b99336a56a47838510f9b8a01aab05363c424b6.zip
r17876: Require one less patch for the LDAP backend to work.
This lets the modules or backend generate the host and domain GUID, rather than the randguid() function. These can still be specified from the command line. Andrew Bartlett (This used to be commit 32996ca9d62568006f8bee85a1f2f37c64c04fb5)
-rw-r--r--source4/scripting/libjs/provision.js25
-rw-r--r--source4/setup/provision_basedn_modify.ldif4
-rw-r--r--source4/setup/provision_users.ldif3
3 files changed, 23 insertions, 9 deletions
diff --git a/source4/scripting/libjs/provision.js b/source4/scripting/libjs/provision.js
index f8d321e8cb..d8abcc352f 100644
--- a/source4/scripting/libjs/provision.js
+++ b/source4/scripting/libjs/provision.js
@@ -164,6 +164,8 @@ function ldb_erase(ldb)
ldb.del("@ATTRIBUTES");
ldb.del("@SUBCLASSES");
ldb.del("@MODULES");
+ ldb.del("@PARTITION");
+ ldb.del("@KLUDGEACL");
/* and the rest */
var res = ldb.search("(&(|(objectclass=*)(dn=*))(!(dn=@BASEINFO)))", attrs);
@@ -198,6 +200,9 @@ function ldb_erase_partitions(info, ldb)
var res = ldb.search("(objectClass=*)", "", ldb.SCOPE_BASE, rootDSE_attrs);
assert(typeof(res) != "undefined");
assert(res.length == 1);
+ if (typeof(res[0].namingContexts) == "undefined") {
+ return;
+ }
for (j=0; j<res[0].namingContexts.length; j++) {
var attrs = new Array("dn");
var basedn = res[0].namingContexts[j];
@@ -416,6 +421,18 @@ function provision(subobj, message, blank, paths, session_info, credentials)
assert(valid_netbios_name(subobj.NETBIOSNAME));
var rdns = split(",", subobj.BASEDN);
subobj.RDN_DC = substr(rdns[0], strlen("DC="));
+
+ if (subobj.DOMAINGUID != undefined) {
+ subobj.DOMAINGUID_MOD = sprintf("replace: objectGUID\nobjectGUID: %s\n-", subobj.DOMAINGUID);
+ } else {
+ subobj.DOMAINGUID_MOD = "";
+ }
+
+ if (subobj.HOSTGUID != undefined) {
+ subobj.HOSTGUID_ADD = sprintf("objectGUID: %s", subobj.HOSTGUID);
+ } else {
+ subobj.HOSTGUID_ADD = "";
+ }
info.subobj = subobj;
info.message = message;
@@ -525,7 +542,9 @@ function provision_dns(subobj, message, paths, session_info, credentials)
var ok = ldb.connect(paths.samdb);
assert(ok);
- /* These values may have changed, due to an incoming SamSync, so fetch them from the database */
+ /* These values may have changed, due to an incoming SamSync,
+ or may not have been specified, so fetch them from the database */
+
var attrs = new Array("objectGUID");
res = ldb.search("objectGUID=*", subobj.BASEDN, ldb.SCOPE_BASE, attrs);
assert(res.length == 1 && res[0].objectGUID != undefined)
@@ -574,12 +593,10 @@ function provision_guess()
assert(subobj.REALM);
assert(subobj.DOMAIN);
assert(subobj.HOSTNAME);
-
+
subobj.VERSION = version();
subobj.HOSTIP = hostip();
- subobj.DOMAINGUID = randguid();
subobj.DOMAINSID = randsid();
- subobj.HOSTGUID = randguid();
subobj.INVOCATIONID = randguid();
subobj.KRBTGTPASS = randpass(12);
subobj.MACHINEPASS = randpass(12);
diff --git a/source4/setup/provision_basedn_modify.ldif b/source4/setup/provision_basedn_modify.ldif
index d8765a3c0a..ca02975a0e 100644
--- a/source4/setup/provision_basedn_modify.ldif
+++ b/source4/setup/provision_basedn_modify.ldif
@@ -9,9 +9,6 @@ dnsDomain: ${DNSDOMAIN}
replace: dc
dc: ${RDN_DC}
-
-replace: objectGUID
-objectGUID: ${DOMAINGUID}
--
replace: forceLogoff
forceLogoff: 9223372036854775808
-
@@ -79,4 +76,5 @@ replace: subRefs
subRefs: CN=Configuration,${BASEDN}
subRefs: CN=Schema,CN=Configuration,${BASEDN}
-
+${DOMAINGUID_MOD}
diff --git a/source4/setup/provision_users.ldif b/source4/setup/provision_users.ldif
index 5cd5991c41..10830dde0b 100644
--- a/source4/setup/provision_users.ldif
+++ b/source4/setup/provision_users.ldif
@@ -71,7 +71,6 @@ privilege: SeRemoteInteractiveLogonRight
dn: CN=${NETBIOSNAME},CN=Domain Controllers,${BASEDN}
objectClass: computer
cn: ${NETBIOSNAME}
-objectGUID: ${HOSTGUID}
userAccountControl: 532480
localPolicyFlags: 0
primaryGroupID: 516
@@ -89,7 +88,7 @@ servicePrincipalName: HOST/${DNSNAME}/${REALM}
servicePrincipalName: HOST/${NETBIOSNAME}/${REALM}
servicePrincipalName: HOST/${DNSNAME}/${DOMAIN}
servicePrincipalName: HOST/${NETBIOSNAME}/${DOMAIN}
-
+${HOSTGUID_ADD}
dn: CN=Users,CN=Builtin,${BASEDN}
objectClass: top