There's a module called Authen::PAM which can authenticate
users against a PAM system (most modern unices have this)
This is indepent of the contents of the passwd file, and shadow
passwd files (if used). Remember to use getpwnam($user) to put
a lower limit on the uid of the logins allowed.