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

Posted in  | Tags ,

Comments are disabled