13.8. Utilizando los Mapas passwd y group

Una de las aplicaciones m�s importantes de NIS es sincronizar la informaci�n del usuario y de su cuenta en todos los nodos de un dominio NIS. Por consiguiente, normalmente usted s�lo mantendr� un fichero /etc/passwd peque�o, al cual se a�ade la informaci�n global de los mapas NIS. Sin embargo, no es suficiente con habilitar las b�squedas NIS para este servicio en el fichero nsswitch.conf.

Antes de fiarse de la informaci�n de contrase�as distribuida por NIS, debe asegurarse de que todos los n�meros ID de usuario que haya en el fichero local passwd concuerdan con los del servidor NIS. La consistencia de los IDs tambi�n es importante para otros prop�sitos, como montar particiones NFS desde otros nodos de su red.

Si alguno de los IDs num�ricos de /etc/passwd o group difiere de los de los mapas, debe ajustar el due�o de todos los ficheros que pertenezcan a ese usuario. Primero, debe cambiar todos los uids y gids de passwd y group a los nuevos valores, luego mirar que todos los ficheros que pertenecen a los usuarios han cambiado, y cambiar su due�o. Suponga que news ten�a un ID de usuario de 9 y que okir ten�a un ID de usuario de 103, y que fueron cambiados a otro valor; luego puede ejecutar las siguientes �rdenes como root:
    # find / -uid   9 -print >/tmp/uid.9
    # find / -uid 103 -print >/tmp/uid.103
    # cat /tmp/uid.9   | xargs chown news
    # cat /tmp/uid.103 | xargs chown okir

Es importante que ejecute estas ordenes con el nuevo fichero passwd instalado, y que re�na todos los ficheros antes de cambiar el due�o de alguno de ellos. Para actualizar los grupos due�os de los ficheros, utilice un m�todo similar con gid en vez de uid y chgrp en vez de chown.

Una vez que haya hecho esto, los uids y gids de su sistema concordar�n con los de todos los nodos de su dominio NIS. El siguiente paso ser� a�adir a nsswitch.conf las l�neas de configuraci�n que habilitan la b�squeda NIS de la informaci�n de usuario y grupo:
    # /etc/nsswitch.conf - tratamiento de passwd y group
    passwd: nis files
    group:  nis files

Esto afecta a qu� lugar buscar�n la informaci�n de usuario la orden login y todos sus amigos. Cuando un usuario intente registrarse en el sistema, login consultar� primero los mapas NIS, y si esta b�squeda falla, recurrir� a los ficheros locales. Normalmente, usted eliminar� a casi todos los usuarios de sus ficheros locales, y s�lo dejar� las entradas de root y otras cuentas gen�ricas como mail. Eso es porque algunas tareas vitales del sistema pueden requerir resolver uids a partir de nombres de usuario o viceversa. Por ejemplo, los trabajos administrativos de cron pueden utilizar la orden su para convertirse temporalmente en el usuario news, o el subsistema UUCP puede tener que enviar un informe de estado por correo. Si news y uucp no tienen entradas en el fichero local passwd, estos trabajos fallar�n estrepitosamente durante una ca�da del servicio NIS.

Finalmente, si usted est� usando la implementaci�n de NIS antigua (soportada por el modo compat para los ficheros passwd y group en las implementaciones de NYS o glibc), debe insertar las pesadas entradas especiales dentro de ellos. Estas entradas determinan d�nde se insertar�n los registros derivados NIS dentro de la base de datos. Las entradas pueden a�adirse en cualquier lugar, pero normalmente se a�aden al final. Las entradas que hay que a�adir en el fichero /etc/passwd son:
    +::::::
y las del fichero /etc/groups:
    +:::

Con la glibc 2.x y NYS se puede ignorar los par�metros del registro de un usuario recibido desde el servidor NIS creando entradas con un “+” antes del nombre de ingreso, y excluir usuarios espec�ficos creando entradas con un “-” antes del nombre de ingreso. Por ejemplo, las entradas:
    +stuart::::::/bin/jacl
    -jedd::::::
ignorar�an el int�rprete de �rdenes proporcionado por el servidor NIS para el usuario stuart, y no permitir�an al usuario jedd ingresar en esta m�quina. En los campos que se dejan vac�os se utiliza la informaci�n proporcionada por el servidor NIS.

Existen dos inconvenientes aqu�. Primero, la configuraci�n descrita arriba s�lo funciona en los sistemas de ingreso que no utilizan contrase�as ocultas (shadow passwords). Los misterios de usar contrase�as ocultas con NIS se discutir�n en la siguiente secci�n. Segundo, las �rdenes de ingreso no son las �nicos que acceden al fichero passwd—f�jese en la orden ls, que casi todo el mundo utiliza constantemente. Al hacer listados largos, el comando ls muestra los nombres simb�licos de los usuarios y los grupos due�os de un archivo; esto es, para cada uid y gid que se encuentra, tiene que consultar al servidor NIS. Una consulta NIS tarda algo m�s que la b�squeda equivalente en un fichero local. Puede encontrarse con que al compartir la informaci�n de passwd y group mediante NIS se produce una reducci�n significativa del rendimiento de algunos programas que utilizan esta informaci�n de manera frecuente.

Y esto no es toda la historia. Imagine qu� ocurrir�a si una usuaria quiere cambiar su contrase�a. Normalmente invocar� la orden passwd, que lee la nueva contrase�a y actualiza el fichero local passwd. Esto es imposible con NIS, ya que ese fichero ya no est� disponible localmente, pero hacer que los usuarios tengan que ingresar en el servidor NIS cada vez que quieran cambiar su contrase�a tampoco es una opci�n. Es por esto que NIS proporciona un sustituto para passwd llamado ypasswd, que maneja los cambios de contrase�a bajo NIS. Para cambiar la contrase�a en el nodo servidor, contacta con el demonio yppasswdd de ese nodo mediante RPC, y le proporciona la informaci�n de la contrase�a actualizada. Normalmente se instala yppasswd sobre el programa normal haciendo algo as�:
    # cd /bin
    # mv passwd passwd.old
    # ln yppasswd passwd

Al mismo tiempo, debe instalar rpc.yppasswdd en el servidor y lanzarlo desde un script de red. Esto ocultar� de manera efectiva las viscisitudes de NIS a sus usuarios.