pam_ccreds
==========
The pam_ccreds module provides a mechanism for caching
credentials when authenticating against a network
authentication service, so that authentication can still
proceed when the service is down. Note at present no
mechanism is provided for caching _authorization_
information, i.e. whether you are allowed to login once
authenticated. Doing this is more difficult than it
first sounds.
The present implementation requires Linux-PAM as it takes
advantage of the extended configuration syntax of pam.conf.
(See the example configuration file included with the
software for an example of configuring it with pam_ldap.)
On platforms that do not use Linux-PAM you would need a
wrapper PAM module to choose an action based on the
previous module's return code.
When invoked via PAM, pam_ccreds performs one of three
actions:
validate validate PAM authentication token
against cached credentials
store cache PAM authentication token for
future validation
update if the PAM authentication token is
cached, then remove it from the
cache
These are configured by the "action=" module option. The
following module options are also recognized:
use_first_pass do not prompt for the password if
the existing PAM authentication
token does not validate
try_first_pass prompt for the password if the
existing PAM authentication token
does not validate
service_specific only check cached credentials for
this specific service
ccredsfile= name of the cached credentials
file; default is /var/cache/.security.db
action= action (see above)
The "cc_test" and "cc_dump" utilities are also provided;
cc_dump may be removed in a future version.
The "ccreds_chkpwd" setuid helper provides ccreds db checking for
non-root users. It will allow checking password of the caller user
only so passwords of other users cannot be brute forced this way.
Note also that the ccredsfile option of the module is ignored when
the helper is called and the default file is used.
Things we need to do are:
o more testing
o verify it works with Berkeley DB 4.x
o use transactions rather than flock() when
using versions of DB that support it
The pam_ccreds module is distributed under the GNU General
Public License.
@KyuuKazami