Ho creato accidentalmente un utente con un UID duplicato. Ho bisogno di consigli su come risolvere questa situazione.
Come puoi vedere, l'esecuzione di dscl mostra due utenti con lo stesso uid:
dscl . -list /Users uid | sort -nrk 2
jenkins 9999
original-user 9999
Questo è accaduto perché stavo modificando uno script di installazione del pacchetto e assegnato in modo errato un UniqueId esistente durante la creazione di un nuovo utente. UniqueId corrisponde all'uid per il mio account. Ora, quando accedo a OSX (con il mio account), OSX ha perso tutte le mie impostazioni del profilo (ad esempio Finder mostra a casa il nuovo utente anziché il mio, il browser ha perso la cronologia, ecc.)
Sebbene OSX mostri il profilo per il nuovo utente, Terminal riconosce correttamente l'utente con cui ho effettuato l'accesso. E quindi sono in grado di confermare che i miei vecchi file (es. Documenti, Download) esistono ancora intatti.
Questo è quello che ho corso per mettermi in questa situazione:
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
Come posso recuperare?