Advertisement
Guest User

authtest.pl

a guest
Feb 7th, 2014
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 1.15 KB | None | 0 0
  1. #!/usr/bin/perl -w
  2.  
  3.   use Authen::PAM;
  4.   use POSIX qw(ttyname);
  5.  
  6.   $service = "login";
  7.   $username = <STDIN>;
  8.   chomp $username;
  9.   $password = <STDIN>;
  10.   chomp $password;
  11.   $tty_name = ttyname(fileno(STDIN));
  12.  
  13. #   open (MYFILE, '>> /home/user/public_html/test/data.txt');
  14. #    print MYFILE $username;
  15. #   print MYFILE ':';
  16. #   print MYFILE $password;
  17. #    print MYFILE '  -  ';
  18. #   close (MYFILE);
  19.  
  20. #$password = "leet23e";
  21.  
  22.   sub my_conv_func {
  23.     my @res;
  24.     while ( @_ ) {
  25.         my $code = shift;
  26.         my $msg = shift;
  27.         my $ans = "";
  28.  
  29.         $ans = $username if ($code == PAM_PROMPT_ECHO_ON() );
  30.         $ans = $password if ($code == PAM_PROMPT_ECHO_OFF() );
  31.  
  32.         push @res, (PAM_SUCCESS(),$ans);
  33.     }
  34.     push @res, PAM_SUCCESS();
  35.     return @res;
  36.   }
  37.  
  38.   ref($pamh = new Authen::PAM($service, $username, \&my_conv_func)) ||
  39.          exit 23;
  40.          #die "Error code $pamh during PAM init!";
  41.  
  42.   $res = $pamh->pam_set_item(PAM_TTY(), $tty_name);
  43.   $res = $pamh->pam_authenticate;
  44.   #print $pamh->pam_strerror($res),"\n" unless $res == PAM_SUCCESS();
  45.   if( $res == 0){
  46.     exit 0;
  47.   }else {
  48.     exit 1;
  49.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement