Usuario creado accidentalmente con UID duplicado. ¿Como arreglar?

2

He creado accidentalmente un usuario con un UID duplicado. Necesito consejos sobre cómo solucionar este problema.

Como puede ver, la ejecución de dscl muestra dos usuarios con el mismo uid:

dscl . -list /Users uid | sort -nrk 2
jenkins                 9999
original-user           9999

Esto sucedió porque estaba ajustando una secuencia de comandos del instalador de paquetes y asigné incorrectamente un UniqueId existente al crear un nuevo usuario. El UniqueId coincide con el uid de mi propia cuenta. Ahora cuando inicio sesión en OSX (con mi propia cuenta), OSX ha perdido todos los ajustes de mi perfil (es decir, el Finder muestra el inicio para el nuevo usuario en lugar del mío, el navegador ha perdido mi historial, etc.).

Aunque OSX muestra el perfil para el nuevo usuario, Terminal reconoce correctamente al usuario con el que inicié sesión. Y, por lo tanto, puedo confirmar que mis archivos antiguos (es decir, documentos, descargas) todavía existen intactos.

Esto es lo que corrí para meterme en esta situación:

uid=9999
gid=$uid
while dscl -search /Groups gid $gid | grep -q $gid; do
    echo "gid $gid is not free, trying next"
    gid=$(($gid + 1))
done
echo "Using gid $gid for jenkins"

dscl . -create /Groups/jenkins PrimaryGroupID $gid

dscl . -create /Users/jenkins UserShell /bin/bash
dscl . -create /Users/jenkins Password '*'
dscl . -create /Users/jenkins UniqueID $uid
dscl . -create /Users/jenkins PrimaryGroupID $gid
dscl . -create /Users/jenkins NFSHomeDirectory "$JENKINS_HOMEDIR"

dscl . -append /Groups/jenkins GroupMembership jenkins

¿Cómo puedo recuperarme?

    
pregunta Justin 26.04.2015 - 03:20

2 respuestas

1

Puedo ver dos opciones:

  1. Elimine el usuario jenkins , créelo nuevamente (esta vez con un UID único), luego repita todos los comandos que utilizó para crear sus archivos. Esta es probablemente la mejor opción si no ha creado ningún dato o personalización adicional desde que se creó el jenkins . Tenga cuidado al eliminar el usuario jenkins para asegurarse de no eliminar original-user .

  2. Más kludgy: cambie el UID de uno de los usuarios editando manualmente /etc/passwd , luego use chown -R para cambiar la propiedad de los archivos de ese usuario de manera apropiada. Esto es kludgy y podría funcionar pero también podría no funcionar.

Iría con la opción # 1, personalmente.

    
respondido por el D.W. 26.04.2015 - 08:48
2

En Mac OS X, puede cambiar el UID de un usuario local usando Preferencias del sistema > Usuarios & Grupos.

Abra el candado allí para permitir que se realicen cambios y luego haga clic con el botón derecho en el usuario que desea cambiar.

NOTA: no debe haber iniciado sesión en esa cuenta en el momento de realizar el cambio.

Además, los permisos POSIX seguirán el UID, por lo que después de cambiarlo, es posible que deba cambiar la propiedad del usuario para esa carpeta de inicio o no podrá iniciar sesión en la cuenta modificada.

El comando para cambiar la propiedad sería:

sudo chown -R <account_name> /path/to/userhomefolder
    
respondido por el Phoenix 26.04.2015 - 09:05

Lea otras preguntas en las etiquetas