diff options
author | Gerald Carter <jerry@samba.org> | 2001-12-26 05:35:40 +0000 |
---|---|---|
committer | Gerald Carter <jerry@samba.org> | 2001-12-26 05:35:40 +0000 |
commit | b6bbc39204a4676922099ab78b6c48009266d1bb (patch) | |
tree | 3307ed65ee88888b0f71aa84b00383de07ae3d7e /examples/LDAP/export_smbpasswd.pl | |
parent | 480b5c815864d35196053016b7bbcb2fe7f65ece (diff) | |
download | samba-b6bbc39204a4676922099ab78b6c48009266d1bb.tar.gz samba-b6bbc39204a4676922099ab78b6c48009266d1bb.tar.bz2 samba-b6bbc39204a4676922099ab78b6c48009266d1bb.zip |
sync with 2.2
(This used to be commit aca58b0b72d2eb5024b4d5103fde5b281212d714)
Diffstat (limited to 'examples/LDAP/export_smbpasswd.pl')
-rw-r--r-- | examples/LDAP/export_smbpasswd.pl | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/examples/LDAP/export_smbpasswd.pl b/examples/LDAP/export_smbpasswd.pl new file mode 100644 index 0000000000..3f67dc6242 --- /dev/null +++ b/examples/LDAP/export_smbpasswd.pl @@ -0,0 +1,63 @@ +#!/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; |