[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: batch encrypting passwords
Fernando Medina, Jr. wrote:
I have several users setup in a test environment...now they are about to
go into production and I need to change their password from cleartext to
crypt or something. Cna someone tell me how to encrypt all of them at
once? Using GQ for linux I can easily change password encrytpion, but
woudl like to do it all at once. Thanks,
I think the easiest way is to use a scripting language to build an ldif file (and then apply it with ldapmodify).
Here's a snippet of python (won't work as is due to no parsing of input and no looping mechanism specified) that I use for constructing valid {crypt} entries. The second block of code should go
inside a loop (where you've already parsed the input and assigned the plaintext password to the variable "plaintxt" and assigned the username to the variable "username"):
import crypt
import random
import string
output = ''
an = string.letters + string.digits
salt = random.choice(an) + random.choice(an)
pw = crypt.crypt(plaintxt, salt)
output = output + "dn: uid=" + username + ",ou=People,dc=example,dc=com\n"
output = output + "changetype: modify\n"
output = output + "replace: userPassword\n"
output = output + "userPassword: {crypt}" + pw + "\n\n"
outputfile = "cryptedpasses.ldif"
g = open(outputfile, "w")
g.write(output)
g.close()
Obviously perl (or any number of other languages) could be used instead. Also, you can choose a different encryption mechanism ({md5}, {sha},...) if you wish.
good luck,
~c