**************** NOTICE *********************
Please, please, realize that this module will
only work with passwords that are stored in
/etc/passwd. Most systems use shadow
passwords now, and the call that this module
uses to access the password ONLY checks for
the password in the /etc/passwd file. Also,
the call that is needed to access passwords
in /etc/shadow cannot be called by anyone
other than root, so, (unless you are crazy
enough to run apache as root), you will not
be able to access /etc/shadow.
For more info on shadow passwords:
http://www.tldp.org/HOWTO/Shadow-Password-HOWTO.html
For alternatives that can access /etc/shadow from
apache:
http://mod-auth-shadow.sourceforge.net/
*********************************************
NAME
Apache::AuthenPasswd - mod_perl passwd Authentication module
SYNOPSIS
<Directory /foo/bar>
# This is the standard authentication stuff
AuthName "Foo Bar Authentication"
AuthType Basic
PerlAuthenHandler Apache::AuthenPasswd
# Standard require stuff, /etc/passwd users or /etc/group groups, and
# "valid-user" all work OK
require user username1 username2 ...
require group groupname1 groupname2 ... # [Need Apache::AuthzPasswd]
require valid-user
# The following is actually only needed when authorizing
# against /etc/group. This is a separate module.
PerlAuthzHandler Apache::AuthzPasswd
</Directory>
These directives can also be used in the <Location> directive or in
an .htaccess file.
DESCRIPTION
This perl module is designed to work with mod_perl and the
Net::NIS module by Rik Haris (rik.harris@fulcrum.com.au).
It is a direct adaptation (i.e. I modified the code) of
Michael Parker's (parker@austx.tandem.com) Apache::AuthenSmb
module.
The module uses getpwnam to retrieve the passwd entry from
the /etc/passwd file, using the supplied username as the
search key. It then uses crypt() to verify that the
supplied password matches the retrieved hashed password.
Apache::AuthenPasswdApache::AuthzPasswd
I've taken "authentication" to be meaningful only in terms
of a user and password combination, not group membership.
This means that you can use Apache::AuthenPasswd with the
require user and require valid-user directives. In the
/etc/passwd and /etc/group context I consider require group
to be an "authorization" concern. I.e., group authorization
consists of establishing whether the already authenticated
user is a member of one of the indicated groups in the
require group directive. This process may be handled by
Apache::AuthzPasswd. Admittedly, AuthzPasswd is a misnomer,
but I wanted to keep AuthenPasswd and AuthzPasswd related,
if only by name.
I welcome any feedback on this module, esp. code
improvements, given that it was written hastily, to say the
least.
AUTHOR
Demetrios E. Paneras <dep@media.mit.edu> and
Shannon Eric Peevey <speeves@unt.edu>
COPYRIGHT
Copyright (c) 1998, 2003 Demetrios E. Paneras, MIT Media
Laboratory.
This library is free software; you can redistribute it
and/or modify it under the same terms as Perl itself.