¿Cómo puedo realizar un mapeo de UID NFSv4 entre sistemas con discrepancias de UID?

¿Cómo puedo realizar un mapeo de UID NFSv4 entre sistemas con discrepancias de UID?

Estoy trabajando en un laboratorio con tres sistemas Ubuntu y me gustaría realizar un montaje cruzado de algunos sistemas de archivos a través de NFS. Sin embargo, si bien los sistemas tienen algunos de los mismos nombres de usuario, los UID y GID no coinciden porque los tres sistemas se configuraron por separado. Cuando monto un sistema de archivos NFS de un sistema a otro, la propiedad aparece incorrecta. Por ejemplo, si el UID 1000 es Alice en el servidor1 y el mismo UID, 1000, es Bob en el servidor2, entonces cuando el servidor1 monta el sistema de archivos exportado del servidor2, los archivos de Bob parecen ser propiedad de Alice.

Entonces, ¿hay alguna forma de hacer que NFS (v4) convierta UID entre servidores a través de sus nombres de usuario asociados? Buscando esto en Google, he visto muchas referencias a Kerberos, LDAP o NIS, lo que parece una exageración para una tarea tan simple, y podría no ser posible ya que estos sistemas no están administrados centralmente.Este enlaceParece indicar que lo que pido es imposible. ¿Es correcto?

Editar: Probé todas las configuraciones que /etc/idmapd.confse me ocurren o que puedo encontrar en Internet, y aunque el proceso idmapd se está ejecutando claramente, hasta ahora no he visto ninguna evidencia de que NFS esté intentando usarlo, y nunca ha tenido ningún efecto en los ID de usuario informados en los montajes NFS.

Respuesta1

NFSv4 admite el mapeo de ID. Cuando está habilitado, NFS transmitirá nombres de usuario en lugar de identificaciones numéricas. Los hosts que tienen diferentes uid numéricos para el mismo usuario no son un problema, ya que los nombres de usuario se asignan a uids en el host.

La asignación de ID siempre se utiliza con los modos de seguridad de Kerberos ( sec=krb5).

La asignación de ID también se puede utilizar en el sec=sysmodo AUTH_UNIX (el predeterminado). He explicado los detalles de configuración en respuesta a:Cómo hacer que el mapa de identificación NFSv4 funcione con sec=sys.

Respuesta2

Sin una administración de usuarios centralizada, la "mejor" manera que veo es obligar a todos los servidores a usar el mismo GID y UID para cada usuario. Ahora… sólo hablo de archivos y/o directorios.

Lo que haría en este caso es:

  • Registre cada UID y GID actualmente en uso.
  • Edite /etc/passwdy /etc/groupcombine los grupos en todos los servidores. Preferiblemente a nuevos UID y GID para que el siguiente paso sea más rápido
  • Ejecute esto (llevará algún tiempo):

    find / -group <OLD_GID> -exec chgrp <NEW_GID> '{}' \+
    find / -user  <OLD_UID> -exec chown <NEW_UID> '{}' \+
    

información relacionada