2 votos

Usuario creado accidentalmente con un UID duplicado. ¿Cómo solucionarlo?

He creado accidentalmente un usuario con un UID duplicado. Necesito consejo 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 un instalador de paquetes script y asigné incorrectamente un UniqueId existente al crear un nuevo usuario. El UniqueId coincide con el uid de mi propia cuenta. Ahora cuando me conecto a OSX (con mi propia cuenta), OSX ha perdido toda la configuración de mi perfil (es decir, el Finder muestra la casa del nuevo usuario en lugar de la mía, el navegador ha perdido mi historial, etc).

Aunque OSX muestra el perfil del nuevo usuario, Terminal reconoce correctamente el usuario con el que me he conectado. Y por lo tanto soy capaz de confirmar mis viejos archivos (es decir, Documento, Descargas) todavía existen intactos.

Esto es lo que corrí para ponerme 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?

2voto

meataxe Puntos 6

En Mac OS X, puede cambiar el UID de un usuario local mediante Preferencias del Sistema > Usuarios y Grupos.

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

NOTA: No debes estar conectado a esa cuenta en el momento de hacer el cambio.

Además, los permisos POSIX seguirán el UID, por lo que después de cambiarlo es posible que tenga que cambiar la propiedad del usuario para esa carpeta de inicio o se enfrentaría a no poder entrar en la cuenta cambiada.

El comando para cambiar la propiedad sería:

sudo chown -R <account_name> /path/to/userhomefolder

1voto

Joe Puntos 224

Veo dos opciones:

  1. Borrar el jenkins usuario, créalo de nuevo (con un UID único esta vez), y luego repite todos los comandos que usaste para crear sus archivos. Esta es probablemente la mejor opción si no ha creado ningún dato extra o personalización desde el jenkins fue creado. Tenga cuidado al borrar el jenkins usuario para asegurarse de que no borra original-user .

  2. Más kludgy: cambiar el UID de uno de los usuarios editando manualmente /etc/passwd , a continuación, utilice chown -R para cambiar la propiedad de los archivos de ese usuario apropiadamente. Esto es un poco complicado y podría funcionar, pero también podría no funcionar.

Personalmente, me decantaría por la opción 1.

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