Antes de sumergirme en las profundidades de cómo sincronizar UID / GID en mis diferentes máquinas Linux, me gustaría saber cuál es realmente el beneficio.
Sé que esto mantiene la sincronización de archivos relativamente fácil (ya que la propiedad se conserva "naturalmente"). Sin embargo, esto también se puede lograr de otra manera dependiendo del servicio de transmisión.
¿Hay algo más que se beneficiaría de UID / GID consistentes?
linux
synchronization
uid
alex
fuente
fuente
Respuestas:
deuda técnica
Por las siguientes razones, es mucho más simple abordar este problema desde el principio para evitar la acumulación de deuda técnica . Incluso si ya se encuentra en esta situación, probablemente sea mejor tratarlo en un futuro cercano que dejar que continúe creciendo.
sistemas de archivos en red
Esta pregunta parece centrarse en el alcance limitado de la transferencia de archivos entre máquinas con sistemas de archivos locales, lo que permite estados de propiedad específicos de la máquina.
Las consideraciones del sistema de archivos en red son fácilmente el caso más importante para tratar de mantener sincronizadas sus asignaciones de UID / GID, porque generalmente puede arrojar lo "logrado de otra manera" que mencionó en la ventana en el momento en que ingresan a la imagen. Claro, es posible que no tenga sistemas de archivos en red compartidos entre estos hosts en este momento ... pero ¿qué pasa con el futuro? ¿Puede decir honestamente que nunca habrá un caso de uso para un sistema de archivos en red introducido entre sus hosts actuales o hosts que se creen en el futuro? No es muy avanzado pensar asumir lo contrario.
Suponga que
/home
es un sistema de archivos en red compartido entrehost1
yhost2
en los siguientes ejemplos./home/user1
es propiedad de un usuario diferente en cada sistema. Esto evita que un usuario pueda acceder o modificar constantemente su directorio de inicio en los sistemas.host2
rompe los permisos enhost1
. A veces puede tomar varios de estos boletos para trabajar antes de que alguien retroceda y se dé cuenta de que hay un tira y afloja en juego. La única solución es arreglar las asignaciones de ID en desacuerdo. Lo que lleva a...user1
tiene la ID deuser2
, perouser2
tiene la ID deuser17
... y ese es solo el primer sistema en el clúster) Cuanto más espere para solucionar el problema, más complejas pueden volverse estas cadenas, que a menudo requieren el tiempo de inactividad de las aplicaciones en múltiples servidores con el fin de sincronizar las cosas correctamente.user2
elhost2
tiene la misma UID queuser1
elhost1
, lo que les permite escribir en/home/user1
elhost2
sin el conocimiento deuser1
. Estos cambios luego se evalúanhost1
con los permisos deuser1
. ¿Qué podría salir mal? (siuser1
es un usuario de la aplicación, alguien en desarrollo descubrirá que se puede escribir y hará cambios. Esto es un hecho comprobado).Hay otros escenarios, y estos son solo ejemplos de los más comunes.
los nombres no siempre son una opción
Cualquier script o archivo de configuración escrito con ID numéricos se vuelve inherentemente inportable dentro de su entorno. En general, no es un problema porque la mayoría de las personas no las codifica a menos que sea absolutamente necesario ... pero a veces la herramienta con la que está trabajando no le da una opción al respecto. En estos escenarios, se ve obligado a mantener n versiones diferentes del script o archivo de configuración.
Ejemplo: le
pam_succeed_if
permite usar campos deuser
,uid
ygid
... una opción de "grupo" está notablemente ausente. Si lo pusieran en una posición en la que se esperaba que varios sistemas implementaran alguna forma de restricción de acceso basada en grupos, tendría n variaciones diferentes de las configuraciones de PAM. (o al menos un único GID en el que debe evitar colisiones)gestión centralizada
La respuesta de natxo ha cubierto esto bastante bien.
fuente
una vez que alcance un cierto tamaño (y siempre es antes de lo que piensa), se dará cuenta de que cambiar sus contraseñas o deshabilitar cuentas para alguien en todos los hosts es una PITA. Es por eso que las personas usan sistemas con bases de datos LDAP (o NIS pero no lo hacen, no es seguro hoy en día) como openldap o hoy en día el excelente freeipa.
Mantiene toda la información de cuentas / grupos en una base de datos central, todos los hosts comparten esa información. Puede hacer muchas más cosas desde allí: utilice la información de los usuarios para los permisos de archivos, por supuesto, pero también cree usuarios virtuales para todas las aplicaciones que tengan enlaces ldap en lugar de tener que crear sus usuarios allí (muchas aplicaciones web pueden usar ldap para su base de datos de usuarios), mantenga una base de datos central de reglas de sudo, distribuya su entorno de autofs, mantenga sus zonas dns, ...
fuente