1#!/usr/bin/perl -w
2
3use strict;
4use warnings;
5use Carp;
6use Data::Dumper;
7use DateTime;
8use Samba::LDAP;
9use Samba::LDAP::Config;
10use Samba::LDAP::User;
11use Samba::LDAP::Group;
12use Storable qw( nstore );
13
14my $config = Samba::LDAP::Config->new()
15   or croak "Can't create object\n";
16
17my $smbldap = Samba::LDAP->new()
18   or croak "Can't create object\n";
19
20my $smbuser = Samba::LDAP::User->new()
21   or croak "Can't create object\n";
22
23my $smbgroup = Samba::LDAP::Group->new()
24   or croak "Can't create object\n";
25
26#print Dumper( $smbgroup );
27#print Dumper( $smbldap );
28
29#nstore $smbgroup, './test';
30
31# Returns where smbldap.conf, smbldap_bind.conf and
32# smb.conf are located
33#print Dumper( $config->find_smbldap() );
34#print Dumper( $config->find_smbldap_bind() );
35#print Dumper( $config->find_samba() );
36#print Dumper( $config );
37
38#print "Finding SID\n";
39#print Dumper( $smbldap->get_local_sid() );
40
41#$config = $config->read_conf();
42#print Dumper( $config );
43
44#print Dumper( $smbldap->connect_ldap_master() );
45#print Dumper( $smbldap->connect_ldap_slave() );
46
47#print "Searching for Samba User: ('1' means found)\n";
48#print Dumper( $smbuser->is_samba_user( 'ghenry' ) );
49
50#print "Searching for Valid User: ('1' means found)\n";
51#print Dumper( $smbuser->is_valid_user(
52#'ou=Users,ou=OxObjects,dc=suretecsystems,dc=com', 'testing' ) );
53
54#print "Getting group DN:\n";
55#print Dumper( $smbgroup->_get_group_dn( 'testing' ) );
56
57#print "Reading Group Entry:\n";
58#print Dumper( $smbgroup->read_group_entry( 'testing' ) );
59
60#print "Searching for valid Unix User: ('1' means found)\n";
61#print Dumper( $smbuser->is_unix_user( 'ghenry' ) );
62
63
64#my $groups_ref = [ 'staff', 'directors', 'contractors', ];
65#my $groups_ref = {
66#            admin => [ 'staff', 'directors', 'contractors', ],
67#            normal => [ 'web_team', 'finance', 'cleaners', ],
68#          };
69#$smbgroup->add_to_groups( $groups_ref, 'gavin' );
70
71#print $group;
72
73#print Dumper( $smbuser->make_hash(  clear_pass => 'testing',
74#                                    hash_encrypt_format => 'SSHA',
75#                                  ) );
76
77#print Dumper( $smbuser->_make_salt( '4' ) );
78
79#print Dumper( $smbuser->get_next_id(
80#'ou=Users,ou=OxObjects,dc=suretecsystems,dc=com', 'uidNumber' ) );
81
82#print "Disabling User ghenry\n";
83#print Dumper( $smbuser->disable_user ( 'ghenry' ) );
84
85#print "Getting homedir for 'test'\n";
86#print Dumper( $smbuser->get_homedir('test') );
87
88#print "Disabling user 'test'\n";
89#print Dumper( $smbuser->disable_user('test') );
90
91#print "Deleting user 'ghenry'\n";
92#print Dumper( $smbuser->delete_user( user => 'andrew6' ) );
93#print "Waiting for 5 secs\n";
94#sleep 5;
95
96
97#print "Checking for user 'ghenry' - 1 means they are a Samba User\n";
98#print Dumper( $smbuser->is_samba_user( 'ghenry' ) );
99
100my @groups = $smbgroup->find_groups( 'andrew6' );
101print "@groups\n";
102
103#print "Adding user 'test'\n";
104#print Dumper( $smbuser->add_user(
105#                                    user => 'ghenry',
106#                                    newpass => 'testing',
107#                                    windows_user => '1',
108#                                    ox => '1',
109#
110#                                ) );
111
112#print Dumper( $smbuser->change_password (
113#                                    user => 'ghenry',
114#                                    oldpass => '{crypt}x',
115#                                    newpass => 'testing',
116#                                    ) );
117