[Freeipa-users] Question about ipa user accounts and the compat container

Robert Johnson igorvt77 at gmail.com
Sun Mar 12 17:50:54 UTC 2017


On Fri, Mar 10, 2017 at 1:16 AM, Alexander Bokovoy <abokovoy at redhat.com>
wrote:

> On to, 09 maalis 2017, Robert Johnson wrote:
>
>> On Thu, Mar 9, 2017 at 4:06 PM, Alexander Bokovoy <abokovoy at redhat.com>
>> wrote:
>>
>> On to, 09 maalis 2017, Robert Johnson wrote:
>>>
>>> Hello,
>>>>
>>>> I am running into an odd issue haven't been able to find any information
>>>> through searching on this issue online.
>>>>
>>>> Environment: We are currently have a IPA master running
>>>> ipa-server-4.4.0-14.el7_3.4.x86_64 on a RHEL 7.3 server.  We have a mix
>>>> of
>>>> RHEL 6.8, RHEL 7.x and Solaris 10 clients. We also have a one way trust
>>>> to
>>>> a windows domain.  Compatibility mode is enabled.
>>>>
>>>> The issue I'm seeing is that when I delete an IPA domain user through
>>>> the
>>>> web gui, the user account doesn't appear to be removed completely from
>>>> the
>>>> system.  I verified via "ipa user-find" that the user is no longer in
>>>> the
>>>> system.  I also checked via "ldapsearch" that the user account doesn't
>>>> exist in the "accounts" container.  However, when I look in the "users,
>>>> compat" container, that user still exists.
>>>>
>>>> This is causing problems with my Solaris clients since they are pointing
>>>> to
>>>> the compat tree so that we can login with the windows accounts on those
>>>> servers.  The Solaris client is still seeing the account as being valid
>>>> and
>>>> is asking the user for a password on login which fails because the
>>>> account
>>>> doesn't exist in the IPA domain anymore.
>>>>
>>>> Do I need to remove the account from the ldap compat container manually
>>>> or
>>>> is the IPA user delete command (through the gui and/or command line)
>>>> suppose to take care of this ?  Or is there is some sort of clean up
>>>> process that I have to wait for to occur before this account gets
>>>> removed
>>>> from that container ?  If so, what is the time frame ?
>>>>
>>>> Compat tree is automatically generated. It also tracks existing objects,
>>> so any time the object is removed from the primary tree, it should be
>>> cleared from the compat tree as well.
>>>
>>> If you can reliably demonstrate the problem using
>>> http://www.freeipa.org/page/Demo (it has compat tree enabled), then feel
>>> free to open a bug.
>>>
>>> --
>>> / Alexander Bokovoy
>>>
>>>
>> So after doing some more digging using ldapsearch, I discovered some "odd"
>> entries.  It appears that all my IPA users appear to have duplicate
>> entries
>> under the compat tree. So on a hunch I deleted another IPA user and one of
>> the two entries disappeared from the container.  I tried to use ldapdelete
>> (and ldapmodify) to remove the "ghost" entry using the DN I found from the
>> search and I get a "object not found" and then it says that it matched the
>> base tree.  If I dump the whole compat tree out to a file, the ghost
>> objects look to be exact duplicates of the original entries (minus the
>> guid
>> which is different).  I can't seem to find a way to remove them.
>>
>> Any ideas ?
>>
> Demonstrate your problem using the FreeIPA demo instance, please.
>
> Compat tree is not writable, thus you cannot delete anything from it
> directly. You only can delete the original entry to cause removal of a
> compat entry.
>
> Show how it is not removed with step by step ldapsearch/ipa CLI
> operations against our demo instance, please.
>
> --
> / Alexander Bokovoy
>

Ok, I believe I have been able to reproduce the problem.
1) Before I created the new user, I verified by using the ldapsearch
command on the compat tree that the user I was going to create didn't exist:
ldapsearch -b "cn=compat,dc=demo1,dc=freeipa,dc=org" -h
ipa.demo1.freeipa.org -s sub "(&(objectclass=*)(uid=123456))"
Returns nothing
ldapsearch -b "cn=accounts,dc=demo1,dc=freeipa,dc=org" -h
ipa.demo1.freeipa.org -s sub "(&(objectclass=*)(uid=123456))"
Returns nothing
Note: I also tried just dumping all the user objects to a file and made
sure it wasn't there.

2) Next, I login to the webui and then create the new user.
userlogin: 123456
First Name: Test
Last Name: User
and then a password.

3) Next I verified that the account was showing up in the compat tree:
ldapsearch -b "cn=compat,dc=demo1,dc=freeipa,dc=org" -h
ipa.demo1.freeipa.org -s sub "(&(objectclass=*)(uid=123456))"
version: 1
dn: uid=123456,cn=users,cn=compat,dc=demo1,dc=freeipa,dc=org
objectClass: posixAccount
objectClass: ipaOverrideTarget
objectClass: top
gecos: Test User
cn: Test User
uidNumber: 1120000053
gidNumber: 1120000053
loginShell: /bin/sh
homeDirectory: /home/123456
ipaAnchorUUID::
OlNJRDpTLTEtNS0yMS0zNjIwNjU0ODcyLTY4NzE1NzE0Mi00MDUwMjk3OTIzL
 TEwNTM=
uid: 123456

4) I delete the same user account via the webgui (full delete).

5) I then check the compat tree again and here is the result:
ldapsearch -b "cn=compat,dc=demo1,dc=freeipa,dc=org" -h
ipa.demo1.freeipa.org -s sub "(&(objectclass=*)(uid=123456))"
version: 1
dn: uid=123456,cn=users,cn=compat,dc=demo1,dc=freeipa,dc=org
objectClass: posixAccount
objectClass: ipaOverrideTarget
objectClass: top
gecos: Test User
cn: Test User
uidNumber: 1120000053
gidNumber: 1120000053
loginShell: /bin/sh
homeDirectory: /home/123456
ipaAnchorUUID::
OlNJRDpTLTEtNS0yMS0zNjIwNjU0ODcyLTY4NzE1NzE0Mi00MDUwMjk3OTIzL
 TEwNTM=
uid: 123456

The user account is still there.

Now what is really weird is that if I recreate the user 123456 through the
webgui and perform the ldapsearch, I see two entries.  If I delete the
user, it removes one of the entries and leaves the shadow one above.  I can
tell because the accounts look identical except for the ipaAnchorUUID
attribute.

- This is a problem for our Solaris systems, as the ldap client is pointing
to the compat tree so when the accounts are still active in the ipa domain
(ie they are in the accounts tree) I am seeing 2 entries when using the
getent passwd command.  Needless to say the pam_ldap module doesn't like
the two entries.

Now, I tried to do it again with a different account (say 111111 or 500000)
and it won't reproduce the problem. This only seems to occur on the first
user I created this way in the demo site you provided.  In my instance, I
had 2 accounts that I created that had this shadow account left in the
compat tree.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/freeipa-users/attachments/20170312/518ca375/attachment.htm>


More information about the Freeipa-users mailing list