-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdeluser
executable file
·72 lines (57 loc) · 1.17 KB
/
deluser
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/usr/bin/env ruby
require 'net/ldap'
require 'securerandom'
require 'digest/sha1'
require 'base64'
require 'io/console'
LDAPPASSWD = File.read("ldap.passwd").chomp
ldap = Net::LDAP.new(
:host => '127.0.0.1',
:port => 389,
:auth => {
:method => :simple,
:username => "cn=admin,dc=york,dc=hackspace,dc=org,dc=uk",
:password => LDAPPASSWD
}
)
userbase = "ou=Users,dc=york,dc=hackspace,dc=org,dc=uk"
groupbase = "ou=Groups,dc=york,dc=hackspace,dc=org,dc=uk"
uid = ""
loop do
print "Username: "
uid = gets.chomp
persons = ldap.search(
:base => userbase,
:filter => Net::LDAP::Filter.eq("uid", uid)
)
break unless persons.empty?
puts "Username not in use. Try again, Dumdum."
end
rdn = "uid=#{uid},#{userbase}"
ldap.delete(
:dn => rdn
)
ldap.modify(
:dn => "cn=Members,#{groupbase}",
:operations => [
[:delete, :member, rdn]
]
)
ldap.modify(
:dn => "cn=Trustees,#{groupbase}",
:operations => [
[:delete, :member, rdn]
]
)
ldap.modify(
:dn => "cn=Radius,#{groupbase}",
:operations => [
[:delete, :member, rdn]
]
)
ldap.modify(
:dn => "cn=Unix,#{groupbase}",
:operations => [
[:delete, :member, rdn]
]
)