viernes, 13 de febrero de 2009

AIX: Cannot set process environment

El problema es

$ su -
Passwd:
3004-505 Cannot set process environment

Solución
La solución pasa por detectar qué hay de anómalo en el perfil en este caso de root. Contamos según el resultado con que sí sabemos la contraseña del root (en otro caso habríamos obtenido un error de autenticación) y podemos hacer "su - -c "

$ sudo - -c 'usrck -n root'
3001-602 The user name root is not unique.
3001-603 The UID 0 is duplicated for user root.

Antes de asustarnos más comprobamos quiénes son esos dos usuarios con UID "0".
$ grep :0:0: /etc/passwd
root:!:0:0::/:/usr/usr/bin/ksh
root:!:0:0::/:/usr/bin/ksh

Se trata de eliminar una de las entradas. Como podemos hacer uso del "su" en las condiciones arriba descritas, hacemos una copia del /etc/passwd la retocamos y la devolvemos a su sitio de nuevo ya retocada.

En este caso, el problema que tenía el usuario era ese, pero el comando usrck podía habernos advertido de otra cosa diferente. Con "su -" nos apañamos para arreglarlo.

Origen del problema
Realmente son 2. El primero es un despiste humano o un fallo del smit al modificar el shell (debe hacer mucho tiempo porque no lo recuerdo). Pero el decisivo es que al migrar de AIX 5.2 a AIX6.1 al shell del root les ha puesto /usr/ delante, lo que ha convertido el shell de la primera de las 2 entradas en inexistente.

No hay comentarios: