Bugzilla will be upgraded to version 5.0. The upgrade date is tentatively scheduled for 2 December 2018, pending final testing and feedback.
Bug 1244949 - getgrgid for user's UID on a trust client prevents getpw*
getgrgid for user's UID on a trust client prevents getpw*
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: sssd (Show other bugs)
7.0
Unspecified Unspecified
urgent Severity urgent
: rc
: ---
Assigned To: Jakub Hrozek
Kaushik Banerjee
: ZStream
Depends On:
Blocks: 1255442
  Show dependency treegraph
 
Reported: 2015-07-20 16:32 EDT by Jakub Hrozek
Modified: 2015-11-19 06:39 EST (History)
12 users (show)

See Also:
Fixed In Version: sssd-1.13.0-11.el7
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1255442 (view as bug list)
Environment:
Last Closed: 2015-11-19 06:39:17 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2015:2355 normal SHIPPED_LIVE Low: sssd security, bug fix, and enhancement update 2015-11-19 05:27:42 EST

  None (edit)
Description Jakub Hrozek 2015-07-20 16:32:33 EDT
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()...
Comment 1 Jakub Hrozek 2015-07-23 10:04:18 EDT
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.
Comment 2 Jakub Hrozek 2015-07-29 12:02:00 EDT
Taking - I have a patch on review.
Comment 3 Jakub Hrozek 2015-07-31 04:21:55 EDT
* master: 6fe057efb981ee4b45dcadf131c03f8501fce28d
Comment 7 Sudhir Menon 2015-09-18 04:28:56 EDT
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
Comment 8 errata-xmlrpc 2015-11-19 06:39:17 EST
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

Note You need to log in before you can comment on or make changes to this bug.