#!/usr/bin/perl -w #------------------------------------------------------------ # Usage: pwdcheck login password #------------------------------------------------------------ use strict; use Authen::PAM; #---------------------------------------- # isValid ( user, pass )) # check whether the user/pass combo is valid #---------------------------------------- sub isValid { my ( $login, $pass ) = @_; my $pamh; pam_start( "passwd", $login, sub { ( ( 0, $pass ) x (@_/2), PAM_SUCCESS() ) }, $pamh ); my $res = pam_authenticate($pamh) == PAM_SUCCESS(); pam_end($pamh); return $res; } my ( $login, $pass ) = @ARGV; print isValid ( $login, $pass );