#!/usr/bin/perl -w use strict; use warnings; use Carp; use Data::Dumper; use DateTime; use Samba::LDAP; use Samba::LDAP::Config; use Samba::LDAP::User; use Samba::LDAP::Group; use Storable qw( nstore ); my $config = Samba::LDAP::Config->new() or croak "Can't create object\n"; my $smbldap = Samba::LDAP->new() or croak "Can't create object\n"; my $smbuser = Samba::LDAP::User->new() or croak "Can't create object\n"; my $smbgroup = Samba::LDAP::Group->new() or croak "Can't create object\n"; #print Dumper( $smbgroup ); #print Dumper( $smbldap ); #nstore $smbgroup, './test'; # Returns where smbldap.conf, smbldap_bind.conf and # smb.conf are located #print Dumper( $config->find_smbldap() ); #print Dumper( $config->find_smbldap_bind() ); #print Dumper( $config->find_samba() ); #print Dumper( $config ); #print "Finding SID\n"; #print Dumper( $smbldap->get_local_sid() ); #$config = $config->read_conf(); #print Dumper( $config ); #print Dumper( $smbldap->connect_ldap_master() ); #print Dumper( $smbldap->connect_ldap_slave() ); #print "Searching for Samba User: ('1' means found)\n"; #print Dumper( $smbuser->is_samba_user( 'ghenry' ) ); #print "Searching for Valid User: ('1' means found)\n"; #print Dumper( $smbuser->is_valid_user( #'ou=Users,ou=OxObjects,dc=suretecsystems,dc=com', 'testing' ) ); #print "Getting group DN:\n"; #print Dumper( $smbgroup->_get_group_dn( 'testing' ) ); #print "Reading Group Entry:\n"; #print Dumper( $smbgroup->read_group_entry( 'testing' ) ); #print "Searching for valid Unix User: ('1' means found)\n"; #print Dumper( $smbuser->is_unix_user( 'ghenry' ) ); #my $groups_ref = [ 'staff', 'directors', 'contractors', ]; #my $groups_ref = { # admin => [ 'staff', 'directors', 'contractors', ], # normal => [ 'web_team', 'finance', 'cleaners', ], # }; #$smbgroup->add_to_groups( $groups_ref, 'gavin' ); #print $group; #print Dumper( $smbuser->make_hash( clear_pass => 'testing', # hash_encrypt_format => 'SSHA', # ) ); #print Dumper( $smbuser->_make_salt( '4' ) ); #print Dumper( $smbuser->get_next_id( #'ou=Users,ou=OxObjects,dc=suretecsystems,dc=com', 'uidNumber' ) ); #print "Disabling User ghenry\n"; #print Dumper( $smbuser->disable_user ( 'ghenry' ) ); #print "Getting homedir for 'test'\n"; #print Dumper( $smbuser->get_homedir('test') ); #print "Disabling user 'test'\n"; #print Dumper( $smbuser->disable_user('test') ); #print "Deleting user 'ghenry'\n"; #print Dumper( $smbuser->delete_user( user => 'andrew6' ) ); #print "Waiting for 5 secs\n"; #sleep 5; #print "Checking for user 'ghenry' - 1 means they are a Samba User\n"; #print Dumper( $smbuser->is_samba_user( 'ghenry' ) ); my @groups = $smbgroup->find_groups( 'andrew6' ); print "@groups\n"; #print "Adding user 'test'\n"; #print Dumper( $smbuser->add_user( # user => 'ghenry', # newpass => 'testing', # windows_user => '1', # ox => '1', # # ) ); #print Dumper( $smbuser->change_password ( # user => 'ghenry', # oldpass => '{crypt}x', # newpass => 'testing', # ) );