summaryrefslogtreecommitdiffstats
path: root/docs/USER_GROUP_API.md
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2020-07-07 11:55:21 +0200
committerLennart Poettering <lennart@poettering.net>2020-07-14 16:44:52 +0200
commit56870d324bb3210ba8712167f145a535d5d319d6 (patch)
treed75d96394c49c2f7d50aacf192dd2d8833ba43f1 /docs/USER_GROUP_API.md
parentupdate TODO (diff)
downloadsystemd-56870d324bb3210ba8712167f145a535d5d319d6.tar.xz
systemd-56870d324bb3210ba8712167f145a535d5d319d6.zip
docs: permit user/group services that do not support enumeration
sssd people don't like enumeration and for some other cases it's not nice to support either, in particular when synthesizing records for container/userns UID/GID ranges. Hence, let's make enumeration optional.
Diffstat (limited to 'docs/USER_GROUP_API.md')
-rw-r--r--docs/USER_GROUP_API.md8
1 files changed, 8 insertions, 0 deletions
diff --git a/docs/USER_GROUP_API.md b/docs/USER_GROUP_API.md
index ebff6e6903..55f6af7d8e 100644
--- a/docs/USER_GROUP_API.md
+++ b/docs/USER_GROUP_API.md
@@ -185,6 +185,7 @@ error NoRecordFound()
error BadService()
error ServiceNotAvailable()
error ConflictingRecordFound()
+error EnumerationNotSupported()
```
The `GetUserRecord` method looks up or enumerates a user record. If the `uid`
@@ -264,4 +265,11 @@ services. Result of this is that it can be one service that defines a user A,
and another service that defines a group B, and a third service that declares
that A is a member of B.
+Looking up explicit users/groups by their name or UID/GID, or querying
+user/group memberships must be supported by all services implementing these
+interfaces. However, supporting enumeration (i.e. user/group lookups that may
+result in more than one reply, because neither UID/GID nor name is specified)
+is optional. Services which are asked for enumeration may return the
+`EnumerationNotSupported` error in this case.
+
And that's really all there is to it.