Red Hat Bugzilla – Bug 645449
'getent passwd <username>' returns nothing if its uidNumber gt 2147483647.
Last modified: 2013-05-30 13:58:35 EDT
Description of problem: On 32bit platforms 'getent passwd <username>' returns nothing if its uidNumber > 2147483647. Version-Release number of selected component (if applicable): sssd-1.2.1-32.el6.x86_64 How reproducible: Always Steps to Reproduce: 1. Setup a LDAP server. 2. Add users and groups with very high uidNumber/gidNumber. ( gt 2147483647) 3. Configure sssd with id_provider = ldap. 4. getent passwd username Actual results: No results for <username>. Expected results: Users/groups with high uidNumber/gidNumber should be returned successfully. Additional info: 1. This works fine on 64bit platforms. 2. This is reproducible on RHEL5.6 32bit platforms as well. 3. Relevant config section of sssd [domain/LDAP] id_provider = ldap auth_provider = ldap ldap_uri = ldaps://sssdldap.idm.lab.bos.redhat.com:636 ldap_search_base = dc=example,dc=com cache_credentials = true enumerate = true debug_level = 9 ldap_tls_cacertdir = /etc/openldap/cacerts ldap_tls_cacert = /etc/openldap/cacerts/cacert.asc
On i686: [root@pogolinux-1 ~]# for i in biguserA biguserB biguserC biguserD biguserE biguserG; do getent -s sss passwd $i; done biguserA:*:2147483646:2147483646::/home/biguser1: biguserB:*:2147483647:2147483647::/home/biguserB: biguserC:*:2147483648:2147483648::/home/biguserC: biguserD:*:2147483649:2147483649::/home/biguserD: biguserE:*:3147483649:3147483649::/home/biguserE: biguserG:*:4147483649:4147483649::/home/biguserG: [root@pogolinux-1 ~]# for i in biggroup1 biggroup2 biggroup3 biggroup4 biggroup5 biggroup6; do getent -s sss group $i; done biggroup1:*:2147483646: biggroup2:*:2147483647: biggroup3:*:2147483648: biggroup4:*:2147483649: biggroup5:*:3147483649: biggroup6:*:4147483649: [root@pogolinux-1 ~]# arch i686 [root@pogolinux-1 ~]# rpm -q sssd sssd-1.2.1-36.el6.i686 ---- on x86_64: [root@hp-bl685c-01 ~]# for i in biguserA biguserB biguserC biguserD biguserE biguserG; do getent -s sss passwd $i; done biguserA:*:2147483646:2147483646::/home/biguser1: biguserB:*:2147483647:2147483647::/home/biguserB: biguserC:*:2147483648:2147483648::/home/biguserC: biguserD:*:2147483649:2147483649::/home/biguserD: biguserE:*:3147483649:3147483649::/home/biguserE: biguserG:*:4147483649:4147483649::/home/biguserG: [root@hp-bl685c-01 ~]# for i in biggroup1 biggroup2 biggroup3 biggroup4 biggroup5 biggroup6; do getent -s sss group $i; done biggroup1:*:2147483646: biggroup2:*:2147483647: biggroup3:*:2147483648: biggroup4:*:2147483649: biggroup5:*:3147483649: biggroup6:*:4147483649: [root@hp-bl685c-01 ~]# arch x86_64 [root@hp-bl685c-01 ~]# rpm -q sssd sssd-1.2.1-36.el6.x86_64
Technical note added. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. New Contents: On 32-bit architectures, running the "getent passwd" command on a username with a very large user or group identifier (that is, UID or GID greater than 2147483647) resulted in an empty output. With this update, the underlying source code has been modified to address this issue, and the getent command now returns the expected output.
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2011-0560.html