annotate README.md @ 100:3f11b8d30f63

Implement environment variable management. This actually wires up the environment variable handling to libpam, so that applications and modules can manage the environment through the authentication process.
author Paul Fisher <paul@pfish.zone>
date Tue, 24 Jun 2025 17:08:01 -0400
parents c9fc7e6257d3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
45
ce47901aab7a Rename to “nonstick”, move to root, update docs and license.
Paul Fisher <paul@pfish.zone>
parents: 17
diff changeset
1 # 🍳 nonstick
16
f64ee7b6cdf1 Update metadata and README
Anthony Nowell <anthony@algorithmia.com>
parents:
diff changeset
2
62
d83623951070 Further improve docs and put `conv` behind a feature gate.
Paul Fisher <paul@pfish.zone>
parents: 57
diff changeset
3 Nonstick lets you use PAM (Pluggable Authentication Modules) from Rust without getting stuck in unsafe code.
45
ce47901aab7a Rename to “nonstick”, move to root, update docs and license.
Paul Fisher <paul@pfish.zone>
parents: 17
diff changeset
4
ce47901aab7a Rename to “nonstick”, move to root, update docs and license.
Paul Fisher <paul@pfish.zone>
parents: 17
diff changeset
5 ## Status
16
f64ee7b6cdf1 Update metadata and README
Anthony Nowell <anthony@algorithmia.com>
parents:
diff changeset
6
88
c9fc7e6257d3 This is a v0.0.7 if I ever saw one.
Paul Fisher <paul@pfish.zone>
parents: 62
diff changeset
7 This is currently somewhat incomplete.
c9fc7e6257d3 This is a v0.0.7 if I ever saw one.
Paul Fisher <paul@pfish.zone>
parents: 62
diff changeset
8
c9fc7e6257d3 This is a v0.0.7 if I ever saw one.
Paul Fisher <paul@pfish.zone>
parents: 62
diff changeset
9 It provides fairly robust functionality for developing PAM modules (i.e., backends that PAM calls to authenticate users or do something similar).
c9fc7e6257d3 This is a v0.0.7 if I ever saw one.
Paul Fisher <paul@pfish.zone>
parents: 62
diff changeset
10 [Linux-PAM](https://github.com/linux-pam/linux-pam) is the only _tested_ PAM implementation, but it compiles against OpenPAM.
16
f64ee7b6cdf1 Update metadata and README
Anthony Nowell <anthony@algorithmia.com>
parents:
diff changeset
11
88
c9fc7e6257d3 This is a v0.0.7 if I ever saw one.
Paul Fisher <paul@pfish.zone>
parents: 62
diff changeset
12 *If you’re looking for a library to implement a PAM client* (i.e., something that authenticates using PAM), consider the [`pam` crate](https://crates.io/crates/pam) for now.
62
d83623951070 Further improve docs and put `conv` behind a feature gate.
Paul Fisher <paul@pfish.zone>
parents: 57
diff changeset
13
88
c9fc7e6257d3 This is a v0.0.7 if I ever saw one.
Paul Fisher <paul@pfish.zone>
parents: 62
diff changeset
14 APIs are likely to break before v0.1.0, but thereafter should stabilize to an eventual 1.0 release.
c9fc7e6257d3 This is a v0.0.7 if I ever saw one.
Paul Fisher <paul@pfish.zone>
parents: 62
diff changeset
15 After v0.1.0, the shape of the API should be mostly formed, and most of what happens will be adding new features.
17
53efbcff805d Add pam-sober
Anthony Nowell <anthony@algorithmia.com>
parents: 16
diff changeset
16
45
ce47901aab7a Rename to “nonstick”, move to root, update docs and license.
Paul Fisher <paul@pfish.zone>
parents: 17
diff changeset
17 Goals include:
17
53efbcff805d Add pam-sober
Anthony Nowell <anthony@algorithmia.com>
parents: 16
diff changeset
18
45
ce47901aab7a Rename to “nonstick”, move to root, update docs and license.
Paul Fisher <paul@pfish.zone>
parents: 17
diff changeset
19 - Bindings for PAM clients.
88
c9fc7e6257d3 This is a v0.0.7 if I ever saw one.
Paul Fisher <paul@pfish.zone>
parents: 62
diff changeset
20 - Additional PAM features, like environment variables.
c9fc7e6257d3 This is a v0.0.7 if I ever saw one.
Paul Fisher <paul@pfish.zone>
parents: 62
diff changeset
21 - Way more documentation.
17
53efbcff805d Add pam-sober
Anthony Nowell <anthony@algorithmia.com>
parents: 16
diff changeset
22
45
ce47901aab7a Rename to “nonstick”, move to root, update docs and license.
Paul Fisher <paul@pfish.zone>
parents: 17
diff changeset
23 ## Credits
16
f64ee7b6cdf1 Update metadata and README
Anthony Nowell <anthony@algorithmia.com>
parents:
diff changeset
24
45
ce47901aab7a Rename to “nonstick”, move to root, update docs and license.
Paul Fisher <paul@pfish.zone>
parents: 17
diff changeset
25 This is a direct fork of [Anthony Nowell](http://anowell.com/)’s [`pam-rs`/`pam-bindings` crate](https://crates.io/crates/pam-bindings).
ce47901aab7a Rename to “nonstick”, move to root, update docs and license.
Paul Fisher <paul@pfish.zone>
parents: 17
diff changeset
26 `pam-rs` was in turn inspired by:
16
f64ee7b6cdf1 Update metadata and README
Anthony Nowell <anthony@algorithmia.com>
parents:
diff changeset
27
45
ce47901aab7a Rename to “nonstick”, move to root, update docs and license.
Paul Fisher <paul@pfish.zone>
parents: 17
diff changeset
28 - [`rust-pam` by tozny](https://github.com/tozny/rust-pam)
ce47901aab7a Rename to “nonstick”, move to root, update docs and license.
Paul Fisher <paul@pfish.zone>
parents: 17
diff changeset
29 - [`pam_groupmap` by ndenev](https://github.com/ndenev/pam_groupmap)
ce47901aab7a Rename to “nonstick”, move to root, update docs and license.
Paul Fisher <paul@pfish.zone>
parents: 17
diff changeset
30 - [`pam-http` by beatgammit](https://github.com/beatgammit/pam-http)