1 votos

Cómo hacer consistentes los UIDs conflictivos en una LAN de hosts MacOS y Linux

Tengo una red en expansión y aunque tengo el objetivo a largo plazo de implementar eventualmente Active Directory alojado en un NAS de QNAP. Sin embargo, mientras tanto tengo el problema de que mis máquinas MacOS tienen un conjunto de UIDs para los 2 o 3 usuarios que uso mientras que mi máquina Linux tiene otro.

Aprendí que en Mojave hay que usar dscl para cambiar atributos como el UID, pero no estoy seguro de cómo puedo establecer el esquema de UID para los nuevos usuarios para que las nuevas cuentas de Unix y MacOS se alineen más fácilmente en el futuro. Aunque preveo que el Directorio Activo hará que esto sea discutible una vez que esté en su lugar, supongo que primero debo tener los UIDs y GUIDs de mis LANs bajo control. Aparte de hacer todo esto manualmente mediante el uso de herramientas como find y chown manualmente, ¿hay herramientas para migrar a AD donde la normalización de UIDs para los mismos usuarios a través de diferentes hosts puede ser mejor automatizado y un proceso fiable con menos riesgo de ruptura? Si no es así, estoy bastante seguro de que sé lo que tengo que hacer y será apretando los dientes, pero al menos sé lo que va a costar. ¡Si tienes alguna sugerencia que pueda hacer esto más fácil y menos peligroso por favor comparte tus pensamientos! Por ejemplo, supongo que ningún usuario debería cambiar su UID mientras está conectado, ¿no? De todos modos, todas las ideas son bienvenidas.

0 votos

La solución a este problema se llama. LDAP

3voto

Kerry Puntos 100

He utilizado este procedimiento para cambiar los uid's en MacOS Tiger y Ubuntu. La información de las contraseñas ha cambiado.

Bien, ¿cómo puedo comprobar mi UID? He oído que es peligroso cambiar el UID, así que ¿cómo debo hacer si quiero que los permisos funcionen en ambos sistemas operativos?

Puedes cambiar los permisos de los archivos y directorios en cualquiera de los dos sistemas operativos.

Te sugiero que hagas una copia de seguridad completa de tu sistema. Deberías crear una segunda cuenta de administrador desde la cual utilizarás para cambiar tu cuenta original. Debe cerrar la sesión de su cuenta original antes de proceder.

Mac OS X ... disco duro -> Aplicaciones -> Utilidades -> terminal

Ubuntu ... Aplicaciones > Accesorios > Terminal o donde sea que esté la Terminal hoy en día.

Su usuario actual es: echo $USER Supongamos que mi usuario

Para conocer tu UID y GID hazlo:

ls -ln
ls -l

O bien, puede utilizar el comando id.

id

Compara el resultado y anota lo que encuentres.

Es mejor que utilices el valor numérico para tu userid. En este caso es 500. Para listar todos los archivos pertenecientes a un userid haga:

sudo find / -user 500 -exec ls {} \;

añadir una -x antes de la / limita la búsqueda al sistema de archivos actual.

Tienes que ajustar el uid y el gid en la definición de tu cuenta.

En el terminal de Ubuntu,

man 5 passwd  

... le dará el formato del archivo passwd.

sudo nano /etc/passwd

... el formato es nombre de usuario, contraseña, uid, gid, ...

control-o ... para guardar control-x ... para salir

Los grupos se definen en /etc/group

cat /etc/group

Ahora cambie el UID y el GID de todos los archivos: Es mejor que uses el valor numérico para tu userid. En este caso es 500.

sudo find / -user 500 -exec chown 1100:211 {} \;

/* Where chown has the format of chown uid:gid file-name */
/* adding -print before -exec lists the files that will be changed. */
/* You may want to leave off :211 if your uid & gid are not paired. */
/* Notice the -exec runs another command on the found file. */

sudo find / -group 20 -exec chgrp 211 {} \;

En el Mac se entra en el modo de usuario único manteniendo pulsado command-s cuando se enciende la máquina. Por si acaso tienes problemas.

En Mac OS, hay algunos archivos que tienen el antiguo uid como parte de su nombre. El archivo .Trashes se utilizará en los medios de eliminación. Aquí hay otros directorios.

/.Trashes/500
/Library/Caches/com.apple.IntlDataCache.500
/Library/Caches/com.apple.IntlDataCache.sbdl.500
/Library/Caches/com.apple.user500pictureCache.tiff

Tendrá que buscar en los discos externos. Toda la basura está en una carpeta común con subcarpetas basadas en uid. Puedes usar el comando find para hacer una búsqueda:

find -x /  -iname "*500*" 

Tenga paciencia. Puede salir de este comando con un control-c

Es similar en Linux, pero basado en el nombre de usuario corto.

En Linux, hay algunos archivos que tienen el antiguo nombre corto del usuario como parte de sus nombres de archivo y carpeta.

Si algunos de los archivos están bloqueados en MacOS, tendrá que desbloquearlos. Ver - comentarios de Darf Nader más abajo. La bandera de bloqueo de MacOS corresponde a la bandera uchg de la capa Unix.

#To display flags:
ls -lO <filename>
#Turn off the lock:
sudo chflags nouchg 

Aquí hay otra explicación del procedimiento. ( Se pierden algunos archivos porque el autor comprueba sólo los lugares más probables. http://lissot.net/netinfo/change_user.html

Robert

0 votos

Debería haberle dado las gracias antes, ya que éste era el núcleo del proceso que utilicé. Lo único que no se aborda fueron los bloqueos y la necesidad de chflags para desbloquearlos. Desbloqueado, podría chown y luego devolverlos a su estado anterior de bloqueo para mantener la fidelidad aparte del UID. La parte crítica de esto fue capturar todos los find a un archivo y luego usar grep conjuros sobre la lista de archivos resultante para tipos específicos de valores atípicos y su tratamiento. Sin esta discreta lista de archivos, seguramente habría metido la pata. Un mes más tarde, ¡no hay consecuencias aparentes! Uf.

0 votos

Una cosa que se me olvidó informar fue que necesitaba arrancar en modo de recuperación para usar chflgs ¡! ¿Te has encontrado con esto?

0 votos

@Darf Nader ¿No funcionó el arranque en modo de usuario único? Creo que el modo de recuperación y el modo de usuario único son casi lo mismo, así que cualquier método que elijas es bueno.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X