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