Ruby: aanmaken eerste paswoord

Posted by Paul Verreth Wed, 17 Jan 2007 13:31:00 GMT

Voor het aanmaken van de paswoorden van een groep nieuwe gebruikers.

Dit script genereert de ldif (STDOUT) voor het aanmaken van het userPassword voor alle gebruikers (volgens filter). Het paswoord is hetzelfde als de uid.

#!/usr/bin/env ruby

require 'ldap'
require 'ldap/ldif'
require 'digest/sha1'
require 'base64'

filter = "(objectClass=uidObject)" 

#attrs = ['uid','givenname','sn','cn','uidnumber','gidnumber','mail','homedirectory','objectclass']
attrs = ['uid']

conn = LDAP::Conn.new('localhost', 389).bind
conn.perror("bind")

begin
  conn.search("dc=blabla, dc=be",
  LDAP::LDAP_SCOPE_SUBTREE,
  filter,
  attrs) do |e|
    uid = e.vals("uid")[0]
    npaswoord = "{SHA}" + Base64.encode64(Digest::SHA1.new(uid).digest).chomp
    printf("dn: %s\n", e.get_dn)
    printf("changetype: modify\nreplace: userPassword\n")
    printf("userPassword: %s\n\n",npaswoord)
  end
    rescue LDAP::ResultError => msg
    $stderr.print(msg)
end

Posted in  | Tags ,

Comments are disabled