On Mi, 28.05.25 09:43, Alexander Bokovoy (aboko...@redhat.com) wrote:

> On Аўт, 27 мая 2025, Lennart Poettering wrote:
> > On Di, 27.05.25 14:32, Neal Gompa (ngomp...@gmail.com) wrote:
> >
> > > The usage of the systemd user management suite has been discussed many
> > > times over the past several years. Unfortunately, it has been designed
> > > in such a way that it is impossible to square with central login
> > > services (like AD/IPA/krb5 logins).
> >
> > systemd-userdbd and systemd-homed are two distinct things. Do not mix
> > them up.
> >
> > samba merged supprt for the former 3 months ago:
> >
> > https://gitlab.com/samba-team/samba/-/merge_requests/2928
>
> We currently do not plan to use that in real deployments, though. There
> are few issues with userdb API implementation. For example, there is an
> assumption only one responder knows the information about the account
> being requested. In real deployments we have to do group membership
> merges across multiple nss backends. userdb right now fails to provide a
> complete group membership for FreeIPA users, for example. This is not
> unique to FreeIPA, though, it would do the same for any non-static
> backend in a default configuration.

That's a misunderstanding. userdb user/group memberships are
implemented via the GetMemberships() IPC call, and *of* *course* it's
assumed that multiple backends provide these, and the results of all
backends are combined. After all, it's pretty much the default case
that a regular user for example managed by homed, is part of a
system-specific group (such as "wheel") which is managed via
/etc/passwd.

In fact, it's even possible to put together a userdb backend that
doesn't provide any user or group records, but does provide membership
relationships for users of other backends.

When doing NSS emulation nss-systemd understands this: when returning
a group record it will combine a specific userdb group record from one
backend with the results of a matching GetMemberships() of *all*
backends and return that as one "struct group" NSS record. Or in other
words: .gr_name, .gr_passwd, .gr_gid are initialized from the group
record JSON object, but .gr_mem is initialized from the combination of
the results of all GetMemberships() IPC calls.

Lennart

--
Lennart Poettering, Berlin
-- 
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to