J'ai accidentellement créé un utilisateur avec un UID en double. J'ai besoin de conseils sur la façon de résoudre ce problème.
Comme vous pouvez le voir, en exécutant dscl, deux utilisateurs avec le même uid s'affichent :
dscl . -list /Users uid | sort -nrk 2
jenkins 9999
original-user 9999
Cela s'est produit parce que je modifiais un script d'installation de packages et j'ai attribué à tort un UniqueId existant lors de la création d'un nouvel utilisateur. Cet UniqueId correspond à l'uid de mon propre compte. Maintenant, lorsque je me connecte à OSX (avec mon propre compte), OSX a perdu tous mes paramètres de profil (par exemple, Finder affiche le dossier personnel du nouvel utilisateur au lieu du mien, le navigateur a perdu mon historique, etc.)
Bien qu'OSX affiche le profil du nouvel utilisateur, Terminal reconnaît correctement l'utilisateur avec lequel je me suis connecté. Par conséquent, je peux confirmer que mes anciens fichiers (par exemple, Documents, Téléchargements) existent toujours intactes.
Voici ce que j'ai exécuté pour me retrouver dans cette situation :
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
Comment puis-je récupérer ?