On Sunday 31 May 2009 16:24:49 John Kane wrote:
Adding the 'set -x' option top of /etc/profile, I was able to determine the culprit of the
"-bash: [: =: unary operator expected"
error that has been occurring on all Linux servers since turning on LDAP TLS on INT.
In the file:
/etc/profile.d/krb5-workstation.sh
The follow is causing the issue:
if ! echo ${PATH} | /bin/grep -q /usr/kerberos/sbin ; then if [ `/usr/bin/id -u` = 0 ] ; then PATH=/usr/kerberos/sbin:${PATH} fi fi
If I add " " around the backticked command, I the bash error goes away.
Not sure who I need to open a ticket against :-)
Depends if you want the bug to be fixed (which, while satisfying, will still leave you with real problems), or fix your configuration issue which prevents users from looking up their own user details (such as numerical uid), which is sure to break some applications.
You should probably investigate why the output 'id -u' is empty, most likely it is permissions on the certificate.
'ls -l /etc/openldap/cacerts/cacert.pem'
If that's not it, you need to look further.
You can probably track it down with 'strace -e open id -u', or similar.
Regards, Buchan