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
La solución a este problema se llama. LDAP