Red Hat Bugzilla – Bug 1244949
getgrgid for user's UID on a trust client prevents getpw*
Last modified: 2015-11-19 06:39:17 EST
This bug is created as a clone of upstream ticket: https://fedorahosted.org/sssd/ticket/2724 When a getgrgid() call comes in for a user's UID, we create a group object in the cache. But since a subdomain is MPG-enabled, we check on cache updates whether an entry with the same name or ID exists and if it does, we just bail out with EEXIST. We should remove the group object in this case instead to allow sequence of getgrgid(), getpwnam(), getgrgid()...
Test instructions: - Prepare an IPA server with an AD trusted server and an IPA client. Verify the trust works. Use ID mapping for the setup, not POSIX attributes. - On the server, run "getent passwd $trusted_ad_user" to see the UID and GID. They should be the same. - On the client, run "getent group $GID" where GID is the UID/GID of the trusted user. A group entry should be returned. You can also verify with ldbsearh that a group entry was created in the cache - Again on the client, run "getent passwd $UID" for the same ID value or even for the user's name. With the old packages, nothing would be returned and an EEXIST error would be logged. With the new packages, the user entry would be returned. You can also verify that the cache no longer contains a group entry, but a user entry.
Taking - I have a patch on review.
* master: 6fe057efb981ee4b45dcadf131c03f8501fce28d
Verfied On RHEL7.2: ipa-server-trust-ad-4.2.0-11.el7.x86_64 ipa-server-4.2.0-11.el7.x86_64 ipa-server-dns-4.2.0-11.el7.x86_64 sssd-1.13.0-26.el7.x86_64 Observation: ===IPA-Server=== [smenon@ipa01 ~]$ getent passwd ipa1@test.in ipa1@test.in:*:1375001141:1375001141:ipa1:/home/test.in/ipa1: ===IPA-Client=== [smenon@ipaclient01 ~]$ getent group 1375001141 ipa1@test.in:*:1375001141: [root@ipaclient01 db]# sudo ldbsearch -H /var/lib/sss/db/cache_labs01.test.ldb "(&(objectclass=group)(name=ipa1@test.in))" asq: Unable to register control with rootdse! # record 1 dn: name=ipa1@test.in,cn=groups,cn=test.in,cn=sysdb createTimestamp: 1442565145 gidNumber: 1375001141 name: ipa1@test.in objectClass: group objectSIDString: S-1-5-21-742749997-2996825573-4184801258-1141 userPrincipalName: ipa1@TEST.IN adAccountExpires: 9223372036854775807 adUserAccountControl: 66048 originalDN: CN=ipa1,CN=Users,DC=test,DC=in nameAlias: ipa1@test.in isPosix: TRUE lastUpdate: 1442565145 dataExpireTimestamp: 1442601145 distinguishedName: name=ipa1@test.in,cn=groups,cn=test.in,cn=sysdb # returned 1 records # 1 entries # 0 referrals [root@ipaclient01 db]# getent passwd 1375001141 ipa1@test.in:*:1375001141:1375001141:ipa1:/home/test.in/ipa1: [root@ipaclient01 db]# sudo ldbsearch -H /var/lib/sss/db/cache_labs01.test.ldb "(&(objectclass=group)(name=ipa1@test.in))" asq: Unable to register control with rootdse! # returned 0 records # 0 entries # 0 referrals
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHSA-2015-2355.html