From ec934124db8a5234d8c83799a23c7bdced5dd95a Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 29 Aug 2005 22:01:18 +0000 Subject: r9762: Add support for reading good old smbpasswd files Fix password support Make base64 decode/encode functions available to EJS (This used to be commit 1376a1fe44cd6b01709819095a711c14626b1d3e) --- source4/scripting/libjs/upgrade.js | 59 +++++++++++++++++++++++--------------- 1 file changed, 36 insertions(+), 23 deletions(-) (limited to 'source4/scripting/libjs') diff --git a/source4/scripting/libjs/upgrade.js b/source4/scripting/libjs/upgrade.js index 682721e931..dbf1c0f2c3 100644 --- a/source4/scripting/libjs/upgrade.js +++ b/source4/scripting/libjs/upgrade.js @@ -101,6 +101,7 @@ samba3RefuseMachinePwdChange: %d function upgrade_sam_account(acc,domaindn) { + var ldb = ldb_init(); var ldif = sprintf( "dn: cn=%s,%s objectClass: top @@ -115,6 +116,8 @@ description: %s primaryGroupID: %d badPwdcount: %d logonCount: %d +ntPwdHash:: %s +lmPwdHash:: %s samba3Domain: %s samba3DirDrive: %s samba3MungedDial: %s @@ -133,9 +136,8 @@ samba3Rid: %d acc.fullname, acc.acct_desc, acc.group_rid, acc.bad_password_count, acc.logon_count, acc.domain, acc.dir_drive, acc.munged_dial, acc.homedir, acc.logon_script, acc.profile_path, acc.workstations, acc.kickoff_time, acc.bad_password_time, -acc.pass_last_set_time, acc.pass_can_change_time, acc.pass_must_change_time, acc.user_rid); - - /* FIXME: Passwords */ +acc.pass_last_set_time, acc.pass_can_change_time, acc.pass_must_change_time, acc.user_rid, + ldb.encode(acc.lm_pw), ldb.encode(acc.nt_pw)); return ldif; } @@ -295,9 +297,6 @@ var keep = new Array( "obey pam restrictions", "password server", "smb passwd file", - "sam database", - "spoolss database", - "wins database", "private dir", "passwd chat", "password level", @@ -313,17 +312,6 @@ var keep = new Array( "debuglevel", "log file", "smb ports", - "nbt port", - "dgram port", - "cldap port", - "krb5 port", - "web port", - "tls enabled", - "tls keyfile", - "tls certfile", - "tls cafile", - "tls crlfile", - "swat directory", "large readwrite", "max protocol", "min protocol", @@ -344,12 +332,10 @@ var keep = new Array( "use spnego", "server signing", "client signing", - "rpc big endian", "max connections", "paranoid server security", "socket options", "strict sync", - "case insensitive filesystem", "max print jobs", "printable", "print ok", @@ -375,10 +361,7 @@ var keep = new Array( "lock dir", "lock directory", "pid directory", - "js include", - "setup directory", "socket address", - "-valid", "copy", "include", "available", @@ -394,6 +377,23 @@ function upgrade_smbconf(samba3) //FIXME } +function save_smbconf(path,smbconf) +{ + var data = " +# Generated by upgrade.js"; + + for (var i in smbconf.shares) { + var s = smbconf.shares[i]; + data = data + "\n[" + s.name + "]\n"; + for (var j in s.parameters) { + var p = s.parameters[j]; + data = data + "\t" + p.name + " = " + p + "\n"; + } + } + + sys.file_save(path,data); +} + function upgrade(subobj, samba3, message) { var samdb = ldb_init(); @@ -405,7 +405,20 @@ function upgrade(subobj, samba3, message) ok = samdb.modify(ldif); assert(ok); - // FIXME: Enable samba3sam module if original passdb backend was ldap + var ldapurl = undefined; + + // FIXME: figure out ldapurl + + // Enable samba3sam module if original passdb backend was ldap + if (ldapurl != undefined) { + var ldif = sprintf(" +dn: @MAP=samba3sam +@MAP_URL: %s", ldapurl); + samdb.add(ldif); + + samdb.modify("dn: @MODULES +@LIST: samldb,timestamps,objectguid,rdn_name"); + } message("Importing users\n"); for (var i in samba3.samaccounts) { -- cgit