[CentOS] /usr/bin/id behavior since CentOS 5.2 upgrade

Wed Jun 25 09:31:21 UTC 2008
kfx <kadafax at gmail.com>

Hi list,

Since the upgrade to 5.2, when I log into my server with a ldap account 
I have these 2 errors messages:
-bash: [: =: unary operator expected
-bash: [: -le: unary operator expected

After investigation, the trouble come from two scripts in /etc/profile.d:
/etc/profile.d/krb5-workstation.sh
/etc/profile.d/vim.sh

The problem is with the test where the command "id" is involved, like:
if [ `/usr/bin/id -u` = 0 ] ;

If I add double quotes ("`/usr/bin/id -u`"), it will work again.

Indeed, as a connected ldap user, the id command returns nothing when 
quoted:
[ldapUser at server ~]$ /usr/bin/id -u
12345
[ldapUser at server ~]$ `/usr/bin/id -u`
[ldapUser at server ~]$

As a normal user, the command behaves normally:
[user at server ~]$ `/usr/bin/id -u`
-bash: 1302: command not found
[user at server ~]$ /usr/bin/id -u
1302


I have modified theses two scripts but I am afraid it will break 
something in the future.
Any idea on how to resolve this cleanly ?

Best regards,
kfx

PS: Linux server 2.6.18-92.1.1.el5xen #1 SMP Sat Jun 21 19:21:20 EDT 
2008 x86_64 x86_64 x86_64 GNU/Linux