## Script: se_getusers.pl ## Perl script that will run selang (eTrust command line) to retrieve list of users and ## write them to a file in $OUTPUT_DIR ## ## Author: Jose Negron ## #!/usr/bin/perl use strict; #use warnings; sub trim($); sub ltrim($); sub rtrim($); my $FILE_NOT_FOUND = -1; my $SELANG = "/usr/seos/bin/selang"; my $OUTPUT_DIR = "/tmp"; my $DELIM = "|"; my $SCRIPT_NME = "se_getusers.pl"; my $outputFile = ""; my @seos_users = (); my $numSeos_users = 0; my $seuser = ""; my $loginID = ""; my $fullname = ""; my $usrinfoln = ""; my $sec = 0; my $min = 0; my $hour = 0; my $mday = 0; my $mon = 0; my $year = 0; my $wday = 0; my $yday = 0; my $isdst = 0; my $hostname = ""; my $envOS = ""; my $junk = ""; my $junk2 = ""; { ($sec,$min,$hour,$mday,$mon,$year,$wday, $yday,$isdst) = localtime(time); $hostname = `hostname`; print("*******************************************************************************\n"); print("$SCRIPT_NME Now starting on $hostname\n"); print("*******************************************************************************\n"); printf("%4d-%02d-%02d %02d:%02d:%02d\n", $year + 1900, $mon + 1, $mday, $hour, $min, $sec); $envOS = $^O; if ($envOS eq "linux") { print("OS is Linux.\n"); } elsif ($envOS eq "MSWin32") { print("OS is Windows.\n"); } elsif ($envOS eq "aix") { print("OS is AIX.\n"); } elsif ($envOS eq "solaris") { print("OS is Solaris.\n"); } else { } @seos_users = `$SELANG -c "list user" | sort`; $outputFile = sprintf("$OUTPUT_DIR/seos_%4d%02d%02d%02d%02d%02d.txt", $year + 1900, $mon + 1, $mday, $hour, $min, $sec); $numSeos_users = @seos_users; if ($numSeos_users > 0) { open(OUTPUTFILE, ">$outputFile"); print(OUTPUTFILE "USER"); print(OUTPUTFILE "$DELIM"); print(OUTPUTFILE "FULL NAME"); print(OUTPUTFILE "\n"); foreach $seuser (@seos_users) { chomp($seuser); $usrinfoln = `$SELANG -c "showusr $seuser" | grep -e 'Full name'`; ($junk, $fullname) = split(/:/, $usrinfoln); if (!defined($fullname)) { $fullname = ""; } chomp($fullname); trim($seuser); trim($fullname); open(OUTPUTFILE, ">>$outputFile"); print(OUTPUTFILE "$seuser$DELIM$fullname"); print(OUTPUTFILE "\n"); } close(OUTPUTFILE); } print("*******************************************************************************\n"); print("$SCRIPT_NME end.\n"); print("*******************************************************************************\n\n"); } # trim functions from www.somacon.com/p114.php # Perl trim function to remove whitespace from the start and end of the string sub trim($) { my $string = shift; $string =~ s/^\s+//; $string =~ s/\s+$//; return $string; } # Left trim function to remove leading whitespace sub ltrim($) { my $string = shift; $string =~ s/^\s+//; return $string; } # Right trim function to remove trailing whitespace sub rtrim($) { my $string = shift; $string =~ s/\s+$//; return $string; }