⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ldap.js

📁 samba最新软件
💻 JS
📖 第 1 页 / 共 4 页
字号:
#!/bin/shexec smbscript "$0" ${1+"$@"}/*	test certin LDAP behaviours*/var ldb = ldb_init();var gc_ldb = ldb_init();var options = GetOptions(ARGV, 		"POPT_AUTOHELP",		"POPT_COMMON_SAMBA",		"POPT_COMMON_CREDENTIALS");if (options == undefined) {   println("Failed to parse options");   return -1;}libinclude("base.js");if (options.ARGV.length != 1) {   println("Usage: ldap.js <HOST>");   return -1;}var host = options.ARGV[0];function basic_tests(ldb, gc_ldb, base_dn, configuration_dn, schema_dn){	println("Running basic tests");	ldb.del("cn=ldaptestcomputer,cn=computers," + base_dn);	ldb.del("cn=ldaptestcomputer3,cn=computers," + base_dn);	ldb.del("cn=ldaptest2computer,cn=computers," + base_dn);	ldb.del("cn=ldaptestuser,cn=users," + base_dn);	ldb.del("cn=ldaptestuser2,cn=users," + base_dn);	ldb.del("cn=ldaptestuser3,cn=users," + base_dn);	ldb.del("cn=ldaptestuser4,cn=users," + base_dn);	ldb.del("cn=ldaptestuser5,cn=users," + base_dn);	ldb.del("CN=ldaptestuser4,CN=ldaptestcontainer2," + base_dn);	ldb.del("cn=ldaptestuser7,cn=users," + base_dn);	ldb.del("CN=ldaptestcontainer2," + base_dn);	ldb.del("cn=ldaptestgroup,cn=users," + base_dn);	ldb.del("cn=ldaptestgroup2,cn=users," + base_dn);	println("Testing group add with invalid member");	var ok = ldb.add("dn: cn=ldaptestgroup,cn=uSers," + base_dn + "objectclass: groupmember: cn=ldaptestuser,cn=useRs," + base_dn + "");	if (ok.error != 32) { /* LDAP_NO_SUCH_OBJECT */		println(ok.errstr);		assert(ok.error == 32);	}	println("Testing user add");	var ok = ldb.add("dn: cn=ldaptestuser,cn=uSers," + base_dn + "objectclass: userobjectclass: personcN: LDAPtestUSERgivenname: ldapsn: testy");	if (ok.error != 0) {		ok = ldb.del("cn=ldaptestuser,cn=users," + base_dn);		if (ok.error != 0) {			println(ok.errstr);			assert(ok.error == 0);		}		ok = ldb.add("dn: cn=ldaptestuser,cn=uSers," + base_dn + "objectclass: userobjectclass: personcN: LDAPtestUSERgivenname: ldapsn: testy");		if (ok.error != 0) {			println(ok.errstr);			assert(ok.error == 0);		}	}	var ok = ldb.add("dn: cn=ldaptestgroup,cn=uSers," + base_dn + "objectclass: groupmember: cn=ldaptestuser,cn=useRs," + base_dn + "");	if (ok.error != 0) {		println(ok.errstr);		assert(ok.error == 0);	}	var ok = ldb.add("dn: cn=ldaptestcomputer,cn=computers," + base_dn + "objectclass: computercN: LDAPtestCOMPUTER");	if (ok.error != 0) {		ok = ldb.del("cn=ldaptestcomputer,cn=computers," + base_dn);		if (ok.error != 0) {			println(ok.errstr);			assert(ok.error == 0);		}		ok = ldb.add("dn: cn=ldaptestcomputer,cn=computers," + base_dn + "objectClass: computercn: LDAPtestCOMPUTER");		if (ok.error != 0) {			println(ok.errstr);			assert(ok.error == 0);		}	}	if (ok.error != 0) {		println(ok.errstr);		assert(ok.error == 0);	}	var ok = ldb.add("dn: cn=ldaptest2computer,cn=computers," + base_dn + "objectClass: computercn: LDAPtest2COMPUTERuserAccountControl: 4096displayname: ldap testy");	if (ok.error != 0) {		ok = ldb.del("cn=ldaptest2computer,cn=computers," + base_dn);		if (ok.error != 0) {			println(ok.errstr);		//	assert(ok.error == 0);		}		ok = ldb.add("dn: cn=ldaptest2computer,cn=computers," + base_dn + "objectClass: computercn: LDAPtest2COMPUTERuserAccountControl: 4096displayname: ldap testy");		if (ok.error != 0) {			println(ok.errstr);			assert(ok.error == 0);		}	}	var ok = ldb.add("dn: cn=ldaptestcomputer3,cn=computers," + base_dn + "objectClass: computercn: LDAPtest2COMPUTER");	if (ok.error != 34) {		println("Did not reject invalid RDN compared with DN: " + ok.errstr);		assert(ok.error == 34);	}	var ok = ldb.add("dn: cn=ldaptestcomputer3,cn=computers," + base_dn + "objectClass: computercn: LDAPtestCOMPUTER3sAMAccountType: 805306368");	if (ok.error != 53) {		println("Did not reject invalid 'sAMAccountType: 805306368': " + ok.errstr);		assert(ok.error == 53);	}	var ok = ldb.add("dn: cn=ldaptestcomputer3,cn=computers," + base_dn + "objectClass: computercn: LDAPtestCOMPUTER3userAccountControl: 0");	if (ok.error != 53) {		println("Did not reject invalid 'userAccountControl: 0': " + ok.errstr);		assert(ok.error == 53);	}	var ok = ldb.add("dn: cn=ldaptestuser7,cn=users," + base_dn + "objectClass: usercn: LDAPtestuser7userAccountControl: 0");	if (ok.error != 53) {		println("Did not reject invalid 'userAccountControl: 0': " + ok.errstr);		assert(ok.error == 53);	}	var ok = ldb.add("dn: cn=ldaptestuser7,cn=users," + base_dn + "objectClass: usercn: LDAPtestuser7userAccountControl: 2");	if (ok.error != 0) {		println("Did not accept 'userAccountControl: 2': " + ok.errstr);		assert(ok.error == 0);	}	    ldb.del("cn=ldaptestuser7,cn=users," + base_dn);	var ok = ldb.add("dn: cn=ldaptestcomputer3,cn=computers," + base_dn + "objectclass: computercN: LDAPtestCOMPUTER3");	if (ok.error != 0) {		ok = ldb.del("cn=ldaptestcomputer3,cn=computers," + base_dn);		if (ok.error != 0) {			println(ok.errstr);			assert(ok.error == 0);		}		ok = ldb.add("dn: cn=ldaptestcomputer3,cn=computers," + base_dn + "objectClass: computercn: LDAPtestCOMPUTER3");		if (ok.error != 0) {			println(ok.errstr);			assert(ok.error == 0);		}	}	println("Testing ldb.search for (&(cn=ldaptestcomputer3)(objectClass=user))");	var res = ldb.search("(&(cn=ldaptestcomputer3)(objectClass=user))");	if (res.error != 0 || res.msgs.length != 1) {		println("Could not find (&(cn=ldaptestcomputer3)(objectClass=user))");		assert(res.error == 0);		assert(res.msgs.length == 1);	}	assert(res.msgs[0].dn == ("CN=ldaptestcomputer3,CN=Computers," + base_dn));	assert(res.msgs[0].cn == "ldaptestcomputer3");	assert(res.msgs[0].name == "ldaptestcomputer3");	assert(res.msgs[0].objectClass[0] == "top");	assert(res.msgs[0].objectClass[1] == "person");	assert(res.msgs[0].objectClass[2] == "organizationalPerson");	assert(res.msgs[0].objectClass[3] == "user");	assert(res.msgs[0].objectClass[4] == "computer");	assert(res.msgs[0].objectGUID != undefined);	assert(res.msgs[0].whenCreated != undefined);	assert(res.msgs[0].objectCategory == ("CN=Computer,CN=Schema,CN=Configuration," + base_dn));	assert(res.msgs[0].primaryGroupID == 513);	assert(res.msgs[0].sAMAccountType == 805306368);	assert(res.msgs[0].userAccountControl == 546);	    ldb.del(res.msgs[0].dn);	    println("Testing attribute or value exists behaviour");	    ok = ldb.modify("dn: cn=ldaptest2computer,cn=computers," + base_dn + "changetype: modifyreplace: servicePrincipalNameservicePrincipalName: host/ldaptest2computerservicePrincipalName: host/ldaptest2computerservicePrincipalName: cifs/ldaptest2computer");//LDB_ERR_ATTRIBUTE_OR_VALUE_EXISTS		if (ok.error != 20) {			println("Expected error LDB_ERR_ATTRIBUTE_OR_VALUE_EXISTS, got :" + ok.errstr);			assert(ok.error == 20);		}	    ok = ldb.modify("dn: cn=ldaptest2computer,cn=computers," + base_dn + "changetype: modifyreplace: servicePrincipalNameservicePrincipalName: host/ldaptest2computerservicePrincipalName: cifs/ldaptest2computer");	    if (ok.error != 0) {		    println("Failed to replace servicePrincpalName:" + ok.errstr);		    assert(ok.error == 20);	    }	    ok = ldb.modify("dn: cn=ldaptest2computer,cn=computers," + base_dn + "changetype: modifyadd: servicePrincipalNameservicePrincipalName: host/ldaptest2computer");//LDB_ERR_ATTRIBUTE_OR_VALUE_EXISTS	    if (ok.error != 20) {		    println("Expected error LDB_ERR_ATTRIBUTE_OR_VALUE_EXISTS, got :" + ok.errstr);			assert(ok.error == 20);	    }	    	    println("Testing ranged results");	    ok = ldb.modify("dn: cn=ldaptest2computer,cn=computers," + base_dn + "changetype: modifyreplace: servicePrincipalName");	    if (ok.error != 0) {		    println("Failed to replace servicePrincpalName:" + ok.errstr);		    assert(ok.error == 0);	    }	    	    ok = ldb.modify("dn: cn=ldaptest2computer,cn=computers," + base_dn + "changetype: modifyadd: servicePrincipalNameservicePrincipalName: host/ldaptest2computer0servicePrincipalName: host/ldaptest2computer1servicePrincipalName: host/ldaptest2computer2servicePrincipalName: host/ldaptest2computer3servicePrincipalName: host/ldaptest2computer4servicePrincipalName: host/ldaptest2computer5servicePrincipalName: host/ldaptest2computer6servicePrincipalName: host/ldaptest2computer7servicePrincipalName: host/ldaptest2computer8servicePrincipalName: host/ldaptest2computer9servicePrincipalName: host/ldaptest2computer10servicePrincipalName: host/ldaptest2computer11servicePrincipalName: host/ldaptest2computer12servicePrincipalName: host/ldaptest2computer13servicePrincipalName: host/ldaptest2computer14servicePrincipalName: host/ldaptest2computer15servicePrincipalName: host/ldaptest2computer16servicePrincipalName: host/ldaptest2computer17servicePrincipalName: host/ldaptest2computer18servicePrincipalName: host/ldaptest2computer19servicePrincipalName: host/ldaptest2computer20servicePrincipalName: host/ldaptest2computer21servicePrincipalName: host/ldaptest2computer22servicePrincipalName: host/ldaptest2computer23servicePrincipalName: host/ldaptest2computer24servicePrincipalName: host/ldaptest2computer25servicePrincipalName: host/ldaptest2computer26servicePrincipalName: host/ldaptest2computer27servicePrincipalName: host/ldaptest2computer28servicePrincipalName: host/ldaptest2computer29");	    if (ok.error != 0) {		    println("Failed to replace servicePrincpalName:" + ok.errstr);		    assert(ok.error == 0);	    }	    	    	    var attrs = new Array("servicePrincipalName;range=0-*");	    var res = ldb.search("(cn=ldaptest2computer))", base_dn, ldb.SCOPE_SUBTREE, attrs);	    if (res.error != 0 || res.msgs.length != 1) {		    println("Could not find (cn=ldaptest2computer) for servicePrincipalName;range=0-*");		    assert(res.error == 0);		    assert(res.msgs.length == 1);	    }//	    println(res.msgs[0]["servicePrincipalName;range=0-*"].length);	    assert(res.msgs[0]["servicePrincipalName;range=0-*"].length == 30);	    var attrs = new Array("servicePrincipalName;range=0-19");	    var res = ldb.search("(cn=ldaptest2computer))", base_dn, ldb.SCOPE_SUBTREE, attrs);	    if (res.error != 0 || res.msgs.length != 1) {		    println("Could not find (cn=ldaptest2computer) for servicePrincipalName;range=0-19");		    assert(res.error == 0);		    assert(res.msgs.length == 1);	    }//	    println(res.msgs[0]["servicePrincipalName;range=0-19"].length);	    assert(res.msgs[0]["servicePrincipalName;range=0-19"].length == 20);	    var attrs = new Array("servicePrincipalName;range=0-30");	    var res = ldb.search("(cn=ldaptest2computer))", base_dn, ldb.SCOPE_SUBTREE, attrs);	    if (res.error != 0 || res.msgs.length != 1) {		    println("Could not find (cn=ldaptest2computer) at servicePrincipalName;range=0-19");		    assert(res.error == 0);		    assert(res.msgs.length == 1);	    }	    assert(res.msgs[0]["servicePrincipalName;range=0-*"].length == 30);	    var attrs = new Array("servicePrincipalName;range=0-40");	    var res = ldb.search("(cn=ldaptest2computer))", base_dn, ldb.SCOPE_SUBTREE, attrs);	    if (res.error != 0 || res.msgs.length != 1) {		    println("Could not find (cn=ldaptest2computer) at servicePrincipalName;range=0-40");		    assert(res.error == 0);		    assert(res.msgs.length == 1);	    }	    assert(res.msgs[0]["servicePrincipalName;range=0-*"].length == 30);	    var attrs = new Array("servicePrincipalName;range=30-40");	    var res = ldb.search("(cn=ldaptest2computer))", base_dn, ldb.SCOPE_SUBTREE, attrs);	    if (res.error != 0 || res.msgs.length != 1) {		    println("Could not find (cn=ldaptest2computer) at servicePrincipalName;range=30-40");		    assert(res.error == 0);		    assert(res.msgs.length == 1);	    }	    assert(res.msgs[0]["servicePrincipalName;range=30-*"].length == 0);	    var attrs = new Array("servicePrincipalName;range=10-40");	    var res = ldb.search("(cn=ldaptest2computer))", base_dn, ldb.SCOPE_SUBTREE, attrs);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -