HI,
sorry I didn't get any response on sssd-users
I'm totally out of practice with C ( 10 years+ ) but have got slightly further by
editing function sdap_get_idmap_primary_gid in src/provides/ldap/sdap_async_users.c
as a hack i commented out the 'goto' in this block:
ret = sysdb_attrs_get_uint32_t(attrs,
opts->user_map[SDAP_AT_USER_PRIMARY_GROUP].sys_name,
&primary_gid);
if (ret != EOK) {
DEBUG(SSSDBG_MINOR_FAILURE, "no primary group ID provided\n");
ret = EINVAL;
/* goto done; */
}
obviously the primary group is not known ( as idmap is active it is being generated ) so
the then the next code block correctly gets the GID from the DomainSID :
if (!dom_sid_str) {
ret = sdap_idmap_get_dom_sid_from_object(tmpctx, sid_str,
&dom_sid_str);
I can now 'getent passwd [user]' and get data back.
Would wrapping the first block in something like:
if (!use_id_mapping) {
suffice?