mirror of
https://github.com/samba-team/samba.git
synced 2024-12-24 21:34:56 +03:00
only supporting the Net::LDAP module now
(This used to be commit 3e9c970597
)
This commit is contained in:
parent
e2f2558753
commit
ea5ffa0371
@ -1,63 +0,0 @@
|
||||
#!/usr/bin/perl
|
||||
##
|
||||
## Example script to export ldap entries into an smbpasswd file format
|
||||
## using the Mozilla PerLDAP module.
|
||||
##
|
||||
## writen by jerry@samba.org
|
||||
##
|
||||
|
||||
use Mozilla::LDAP::Conn;
|
||||
use Mozilla::LDAP::Entry;
|
||||
|
||||
######################################################
|
||||
## Set these values to whatever you need for your site
|
||||
##
|
||||
|
||||
$DN="ou=people,dc=plainjoe,dc=org";
|
||||
$ROOTDN="cn=Manager,dc=plainjoe,dc=org";
|
||||
$rootpw = "secret";
|
||||
$LDAPSERVER="localhost";
|
||||
|
||||
##
|
||||
## end local site variables
|
||||
######################################################
|
||||
|
||||
|
||||
$conn = new Mozilla::LDAP::Conn ("$LDAPSERVER", "389", $ROOTDN, $rootpw );
|
||||
die "Unable to connect to LDAP server $LDAPSERVER" unless $conn;
|
||||
|
||||
print "##\n";
|
||||
print "## Autogenerated smbpasswd file via ldapsearch\n";
|
||||
print "## from $LDAPSERVER ($DN)\n";
|
||||
print "##\n";
|
||||
|
||||
## scheck for the existence of the posixAccount first
|
||||
$result = $conn->search ("$DN", "sub", "(objectclass=smbPasswordEntry)");
|
||||
|
||||
|
||||
## loop over the entries we found
|
||||
while ($result) {
|
||||
|
||||
@uid = $result->getValue("uid");
|
||||
@uidNumber = $result->getValue("uidNumber");
|
||||
@lm_pw = $result->getValue("lmpassword");
|
||||
@nt_pw = $result->getValue("ntpassword");
|
||||
@acct = $result->getValue("acctFlags");
|
||||
@pwdLastSet = $result->getValue("pwdLastSet");
|
||||
|
||||
if (($#uid+1) && ($#uidNumber+1)) {
|
||||
|
||||
$lm_pw[0] = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" if (! ($#lm_pw+1));
|
||||
$nt_pw[0] = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" if (! ($#nt_pw+1));
|
||||
$acct[0] = "[DU ]" if (! ($#acct+1));
|
||||
$pwdLastSet[0] = "FFFFFFFF" if (! ($#pwdLastSet+1));
|
||||
|
||||
print "$uid[0]:$uidNumber[0]:$lm_pw[0]:$nt_pw[0]:$acct[0]:LCT-$pwdLastSet[0]\n";
|
||||
}
|
||||
|
||||
$result = $conn->nextEntry();
|
||||
|
||||
}
|
||||
|
||||
$conn->close();
|
||||
exit 0;
|
@ -1,65 +0,0 @@
|
||||
#!/usr/bin/perl
|
||||
##
|
||||
## Example script of how you could import and smbpasswd file into an LDAP
|
||||
## directory using the Mozilla PerLDAP module.
|
||||
##
|
||||
## writen by jerry@samba.org
|
||||
##
|
||||
|
||||
use Mozilla::LDAP::Conn;
|
||||
use Mozilla::LDAP::Entry;
|
||||
|
||||
#################################################
|
||||
## set these to a value appropriate for your site
|
||||
##
|
||||
|
||||
$DN="ou=people,dc=plainjoe,dc=org";
|
||||
$ROOTDN="cn=Manager,dc=plainjoe,dc=org";
|
||||
$rootpw = "secret";
|
||||
$LDAPSERVER="localhost";
|
||||
|
||||
##
|
||||
## end local site variables
|
||||
#################################################
|
||||
|
||||
$conn = new Mozilla::LDAP::Conn ("$LDAPSERVER", "389", $ROOTDN, $rootpw );
|
||||
die "Unable to connect to LDAP server $LDAPSERVER" unless $conn;
|
||||
|
||||
|
||||
while ( $string = <STDIN> ) {
|
||||
chop ($string);
|
||||
|
||||
## get the account information
|
||||
@smbentry = split (/:/, $string);
|
||||
|
||||
## check for the existence of the posixAccount first
|
||||
|
||||
## FIXME!! Should do a getownam() and let the NSS modules lookup the account
|
||||
## This way you can have a UNIX account in /etc/passwd and the smbpasswd i
|
||||
## entry in LDAP.
|
||||
$result = $conn->search ("$DN", "sub", "(&(uid=$smbentry[0])(objectclass=posixAccount))");
|
||||
if ( ! $result ) {
|
||||
print STDERR "uid=$smbentry[0] does not have a posixAccount entry in the directory!\n";
|
||||
next;
|
||||
}
|
||||
|
||||
print "Updating [" . $result->getDN() . "]\n";
|
||||
|
||||
## Do we need to add the 'objectclass: smbPasswordEntry' attribute?
|
||||
if (! $result->hasValue("objectclass", "smbPasswordEntry")) {
|
||||
$result->addValue("objectclass", "smbPasswordEntry");
|
||||
}
|
||||
|
||||
## Set other attribute values
|
||||
$result->setValues ("lmPassword", $smbentry[2]);
|
||||
$result->setValues ("ntPassword", $smbentry[3]);
|
||||
$result->setValues ("acctFlags", $smbentry[4]);
|
||||
$result->setValues ("pwdLastSet", substr($smbentry[5],4));
|
||||
|
||||
if (! $conn->update($result)) {
|
||||
print "Error updating!\n";
|
||||
}
|
||||
}
|
||||
|
||||
$conn->close();
|
||||
exit 0;
|
Loading…
Reference in New Issue
Block a user