diff options
-rw-r--r-- | doc/design.txt | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/doc/design.txt b/doc/design.txt index e9c3e27..ace58f8 100644 --- a/doc/design.txt +++ b/doc/design.txt @@ -163,6 +163,7 @@ plugin's entry, the backend checks for entries with these attributes: * filter * keyFormat * valueFormat + * referred The backend then instructs the map cache to prepare to hold a map in the given domain with the given map name, and then performs a subtree search under the specified base for entries which match the provided filter. @@ -178,7 +179,8 @@ the directory server entry, using the format specifier as a guide. In this way, the NIS map's contents can be constructed to almost any specification, can make use of data stored using any schema. -An example specification for a user's entry would look like this: +An example specification for the value for a user's entry could look +something like this: %{uid}:%{userPassword:-*}:%{uidNumber}:%{gidNumber}:%{gecos:-%{cn:-}}:%{homeDirectory}:%{loginShell:-/bin/sh} The syntax borrows from RPM's syntax, which in turn borrows from shell syntax, to allow the specification of alternate values to be used when @@ -201,12 +203,12 @@ processes zero or more values of the "memberUid" attribute and concatenates them together with a "," separator, to generate the list of group members. -The filter, key, and value have sensible defaults for the maps which we -expect to be using -- this is important because it's easy to subtly -construct malformed result strings which could trigger undefined -behavior on clients -- for example by leaving the user's numeric UID -empty in a passwd entry, which may be treated as "0" by inattentive -clients. +The filter, keyFormat, valueFormat, and referred settings have sensible +defaults for the maps which we expect to be using -- this is important +because it's easy to subtly construct malformed result strings which +could trigger undefined behavior on clients -- for example by leaving +the user's numeric UID empty in a passwd entry, which may be treated as +"0" by inattentive clients. The format specifier includes function-like invocations to allow the backend to be instructed to chase references to other entries, for |