1
|
1 //! Interface to the pluggable authentication module framework (PAM).
|
|
2 //!
|
|
3 //! The goal of this library is to provide a type-safe API that can be used to
|
|
4 //! interact with PAM. The library is incomplete - currently it supports
|
|
5 //! a subset of functions for use in a pam authentication module. A pam module
|
|
6 //! is a shared library that is invoked to authenticate a user, or to perform
|
|
7 //! other functions.
|
|
8 //!
|
|
9 //! For general information on writing pam modules, see
|
|
10 //! [The Linux-PAM Module Writers' Guide][module-guide]
|
|
11 //!
|
|
12 //! [module-guide]: http://www.linux-pam.org/Linux-PAM-html/Linux-PAM_MWG.html
|
|
13 //!
|
|
14 //! A typical authentication module will define an external function called
|
|
15 //! `pam_sm_authenticate()`, which will use functions in this library to
|
|
16 //! interrogate the program that requested authentication for more information,
|
|
17 //! and to render a result. For a working example that uses this library, see
|
2
|
18 //! [toznyauth-pam][].
|
1
|
19 //!
|
2
|
20 //! [toznyauth-pam]: https://github.com/tozny/toznyauth-pam
|
1
|
21 //!
|
|
22 //! Note that constants that are normally read from pam header files are
|
|
23 //! hard-coded in the `constants` module. The values there are taken from
|
|
24 //! a Linux system. That means that it might take some work to get this library
|
|
25 //! to work on other platforms.
|
|
26
|
|
27 extern crate libc;
|
|
28
|
|
29 pub mod conv;
|
|
30 pub mod constants;
|
11
|
31 pub mod items;
|
1
|
32 pub mod module;
|