Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- #Author: Samir Ahmed
- #Date: 6.9.2014
- #Purpose: Securing and limiting the user login attributes
- use strict;
- use warnings;
- my $HardRootDir = "/UNIXscripts/hardening";
- my $HardLog = "$HardRootDir/log";
- my $LoginTmp = "/tmp";
- my $DestLoginDefs = "$LoginTmp/login.defs";
- my $SrcLoginDefs = "/etc/login.defs";
- my $LgnSt = "$HardLog/LoginAttrSet.log";
- my $LgnSetLog = "$HardLog/LoginAttrSet.log";
- open (my $FH, "$SrcLoginDefs") || die "error opening the file $!";
- open (my $NFileH, ">", "$DestLoginDefs") || die "error opening the file $!";
- my @LoginArray = <$FH>;
- ##setting users login attributes
- foreach (@LoginArray) {
- if (/^PASS_MAX_DAYS/) {
- my @LineArray = split /\s+/, $_;
- if ($LineArray[1] > 90) {
- $LineArray[1] = 90;
- my $AfterUpdate = join "\t", @LineArray;
- $_ = "$AfterUpdate\n";
- msg("PASS_MAX_DAYS", $LineArray[1], $LgnSt);
- }
- }
- if (/^PASS_MIN_DAYS/) {
- my @LineArray = split /\s+/, $_;
- if ($LineArray[1] < 7) {
- $LineArray[1] = 7;
- my $AfterUpdate = join "\t", @LineArray;
- $_ = "$AfterUpdate\n";
- msg("PASS_MIN_DAYS", $LineArray[1], $LgnSt);
- }
- }
- if (/^PASS_MIN_LEN/) {
- my @LineArray = split /\s+/, $_;
- if ($LineArray[1] < 8) {
- $LineArray[1] = 8;
- my $AfterUpdate = join "\t", @LineArray;
- $_ = "$AfterUpdate\n";
- msg("PASS_MIN_LEN", $LineArray[1], $LgnSt);
- }
- }
- if (/^PASS_WARN_AGE/) {
- my @LineArray = split /\s+/, $_;
- if ($LineArray[1] < 7) {
- $LineArray[1] = 7;
- my $AfterUpdate = join "\t", @LineArray;
- $_ = "$AfterUpdate\n";
- msg("PASS_WARN_AGE", $LineArray[1], $LgnSt);
- }
- }
- print $NFileH $_;
- system ("cp -f $DestLoginDefs $SrcLoginDefs ");
- if ($? != 0) {
- print "copy was not successfull\n";
- }
- }
- #END
- sub msg {
- open (my $LH, ">>", "$_[2]") || die "$!";
- print $LH "$_[0] is set to : $_[1] \t","-" x 10, `date`,"\n";
- }
Advertisement
Add Comment
Please, Sign In to add comment