Skip to content

Instantly share code, notes, and snippets.

@s-tajima
Created August 15, 2012 13:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save s-tajima/3360378 to your computer and use it in GitHub Desktop.
Save s-tajima/3360378 to your computer and use it in GitHub Desktop.
Make ldif from another LDAP.
require "pp"
require 'base64'
f = open("list")
while name = f.gets
name = name.chomp
result = `ldapsearch -x -LLL -t "(uid=#{name})"`
uid_number = result.scan(/uidNumber: (\d*)/).flatten[0]
user_password = result.scan(/userPassword:: (.*)\s/).flatten[0]
user_password = Base64.decode64(user_password)
ldif_content = <<EOF
dn: uid=#{name},ou=Users,dc=DC,dc=DC
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
objectClass: authorizedServiceObject
uid: #{name}
uidNumber: #{uid_number}
cn: #{name}
loginShell: /bin/bash
homeDirectory: /home
gidNumber: 500
userPassword: #{user_password}
EOF
ldif = open("user-#{name}.ldif", "w")
ldif.write(ldif_content)
end
f.close
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment