Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl -w
- use Authen::PAM;
- use POSIX qw(ttyname);
- $service = "login";
- $username = <STDIN>;
- chomp $username;
- $password = <STDIN>;
- chomp $password;
- $tty_name = ttyname(fileno(STDIN));
- # open (MYFILE, '>> /home/user/public_html/test/data.txt');
- # print MYFILE $username;
- # print MYFILE ':';
- # print MYFILE $password;
- # print MYFILE ' - ';
- # close (MYFILE);
- #$password = "leet23e";
- sub my_conv_func {
- my @res;
- while ( @_ ) {
- my $code = shift;
- my $msg = shift;
- my $ans = "";
- $ans = $username if ($code == PAM_PROMPT_ECHO_ON() );
- $ans = $password if ($code == PAM_PROMPT_ECHO_OFF() );
- push @res, (PAM_SUCCESS(),$ans);
- }
- push @res, PAM_SUCCESS();
- return @res;
- }
- ref($pamh = new Authen::PAM($service, $username, \&my_conv_func)) ||
- exit 23;
- #die "Error code $pamh during PAM init!";
- $res = $pamh->pam_set_item(PAM_TTY(), $tty_name);
- $res = $pamh->pam_authenticate;
- #print $pamh->pam_strerror($res),"\n" unless $res == PAM_SUCCESS();
- if( $res == 0){
- exit 0;
- }else {
- exit 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement