Created
February 24, 2014 15:53
-
-
Save battila/9190944 to your computer and use it in GitHub Desktop.
Small script converting ldap users to local
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/perl -w | |
#============================================================ | |
# | |
# FILE: ldap2local.pl | |
# | |
# USAGE: ./ldap2local.pl | |
# | |
# DESCRIPTION: convert ldap user to local | |
# | |
# | |
# AUTHOR: Attila Bardi | |
# VERSION: 0.1 | |
# CREATED: 2014/02/24 | |
# Last Update: 2014/02/24 | |
#============================================================ | |
use strict; | |
use warnings; | |
my %ldap_config = ( | |
5 => '/etc/ldap.conf', | |
6 => '/etc/pam_ldap.conf', | |
); | |
sub check_if_the_system_connected_to_ldap { | |
system("grep ^passwd /etc/nsswitch.conf|grep ldap>/dev/null"); | |
if (!$?) { | |
$_ = `cat /etc/*-release`; | |
foreach my $key ( keys %ldap_config) { | |
if ( /Server release ($key)/ ) { | |
if (-e $ldap_config{$1} ) { | |
return $1; | |
} | |
} | |
} | |
} | |
print "Fuck bitches!\n"; | |
undef; | |
} | |
sub get_ldap_group { | |
open my $LDAP, $ldap_config{$_[0]} or die "Could not open $ldap_config{$_[0]}: $!"; | |
foreach (grep /^pam_groupdn/, <$LDAP>) { | |
($_) = split ','; | |
(undef, $_) = split '='; | |
return $_; | |
} | |
} | |
$_ = &check_if_the_system_connected_to_ldap; | |
if ( $_ ) { | |
my $group = &get_ldap_group($_); | |
chomp (my $gid = `getent group $group | cut -d: -f3`); | |
print "Creating group.\n"; | |
print "groupadd -g $gid $group\n"; | |
# system 'groupadd -g ', $_, $group_name; | |
chomp ($_ = `getent group $group | cut -d: -f4`); | |
foreach ( sort split ',' ) { | |
chomp (my $uid = `getent passwd $_|cut -d: -f3`); | |
print "useradd -u $uid -c $_ -d /home/$_ -g $gid -s /bin/bash $_\n"; | |
# system 'uuseradd -u $uid -c $_ -d /home/$_ -g $gid -s /bin/bash $_'; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment