Ruby: resetten ldap paswoord
Posted by Paul Verreth Wed, 17 Jan 2007 13:23:00 GMT
Ruby script voor het resetten van een ldap paswoord
#!/usr/bin/env ruby
require 'ldap'
require 'ldap/ldif'
require 'digest/sha1'
require 'base64'
require 'readline'
require 'curses'
include Readline
include LDAP
include Curses
ldapserver = 'ldap.blabla.be'
deeldn = 'ou=People,dc=blabla,dc=be'
admindn = 'cn=admin,dc=blabla,dc=be'
init_screen
addstr("Geef de uid: ")
refresh
uid = getstr()
addstr("Geef het administrator paswoord: ")
refresh
noecho
adminpw = getstr()
close_screen
puts uid
puts adminpw
dn = "uid=" + uid + "," + deeldn
npaswoord = "{SHA}" + Base64.encode64(Digest::SHA1.new(uid).digest).chomp
puts uid
puts "Nieuw gegenereerd paswoord voor #{uid}: #{npaswoord}"
puts "dn= #{dn}"
attrs = {
'objectclass' => ["top","inetorgperson","uidobject","dada"],
'uid' => [uid],
'userpassword' => [npaswoord]
}
conn = LDAP::Conn.new(ldapserver, 389).bind(admindn,adminpw)
conn.perror("Boodschap van bind:")
begin
conn.modify(dn,attrs)
conn.perror("Boodschap van modify:")
puts "---"
rescue LDAP::ResultError => msg
$stderr.print(msg)
end

