X-Git-Url: https://ruderich.org/simon/gitweb/?p=nsscash%2Fnsscash.git;a=blobdiff_plain;f=README;h=fd18efbed2edbf750e6b05fcc1b744b72337eb93;hp=b5a60ab6bb068f9bb1036ea40b3d56f73730c88a;hb=0cc987b1bcb7b16da4f46d84d216df3f6ef457e1;hpb=526f6f1db39bde8ca1f7684225a3983634bddafe diff --git a/README b/README index b5a60ab..fd18efb 100644 --- a/README +++ b/README @@ -19,7 +19,8 @@ lookups. To support quick lookups, in O(log n), the files utilize indices. Nsscash is very careful when deploying the changes: - All files are updated using the standard "write to temporary file", "sync", - "rename" steps which is atomic on UNIX file systems. + "rename" steps which is atomic on UNIX file systems. The indices are stored + in the same file preventing stale data during the update. - All errors cause an immediate abort ("fail fast") with a proper error message and a non-zero exit status. This prevents hiding possibly important errors. In addition all files are fetched first and then deployed to try to @@ -43,6 +44,9 @@ The passwd/group files have the following size restrictions: - `nsscash` checks for these restrictions and aborts with an error if they are violated +nsscash has an extensive test suite for both the Go and C part testing general +requirements and various corner cases. + nsscash is licensed under AGPL version 3 or later. [1] https://github.com/google/nsscache @@ -55,9 +59,11 @@ nsscash is licensed under AGPL version 3 or later. - github.com/BurntSushi/toml - C compiler, for `libnss_cash.so.2` -Tested on Debian Stretch and Buster, but should work on any GNU/Linux system. -With adaptations to the NSS module it should work on any UNIX-like system -which uses NSS. +- HTTP(S) server to provide the passwd/group/etc. files + +Tested on Debian Buster, but should work on any GNU/Linux system. With +adaptations to the NSS module it should work on any UNIX-like system which +uses NSS. == USAGE @@ -142,14 +148,18 @@ keys are available: `plain` (arbitrary format). Only `passwd` and `group` files are supported by the nsscash NSS module. But, as explained above, `plain` can be used to distribute arbitrary files. The type is required as the `.nsscash` files are - pre processed for faster lookups and simpler code which requires a known + pre processed for faster lookups and simpler C code which requires a known format. - `url`: URL to fetch the file from; HTTP and HTTPS are supported - `ca`: Path to a custom CA in PEM format. Restricts HTTPS requests to accept only certificates signed by this CA. Defaults to the system's certificate - store when omitted. + store when omitted. (optional) + +- `username`/`password`: Username and password sent via HTTP Basic-Auth to the + webserver. The configuration file must not be readable by other users when + this is used. (optional) - `path`: Path to store the retrieved file