I’m quite sure that groups, id, getent do all look at /etc/nsswitch.conf which lists services to query about database (like ‘group’)
For example, I have on a machine:
group: files sss systemd
So a query about group would use /usr/lib64/libnss_files.so, /usr/lib64/libnss_sss.so, and /usr/lib64/libnss_systemd.so until a result if found (or none).
The “files” obviously reads the /etc/group, the “sss” talks to the sssd, and the “systemd” something.
Nothing seems to provide /usr/lib64/libnss_nis.so for el9. The el8 does still have package nss_nis
The sssd has backends, so it can query (and cache) services, like LDAP, Kerberos, AD, files, etc.
However, the sssd does not seem to have a backend for NIS.
The PAM config is likely to require something too.
Making that all systematic with Ansible is probably the easiest part.
However, you did get in to the system with account from NIS? Therefore, the ‘passwd’ and ‘shadow’ databases must have gotten user info from NIS. If they did, then there is config for them. If there is, why the ‘group’ would be lacking? Baffling.
That’s it exactly. Baffling. Users created on the server can authenticate on the clients, but group info is completely missing. And there seems to be no documentation anywhere.
Could well be due to the fact that RHEL deprecated NIS in RHEL 8.3. That will also explain why there isn’t much in the way of documentation either, since the recommendations are to move away from NIS to IPA, LDAP or in some use cases Kerberos.
I did peek at my “recent files”.
I’ve got LDAP files since 2004, so must have phased out NIS back then.
2013 shows addition of Kerberos (to move password hashes away from LDAP).
No wonder my memories of NIS were dim. Did not expect it to have been that long ago.
The IPA (“IdM”?) is essentially Kerberos, LDAP, DHCP, DNS, time service, etc “holistic solution”.