Utente accidentalmente creato con UID duplicato. Come risolvere?

2

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?

    
posta Justin 26.04.2015 - 03:20
fonte

2 risposte

1

Posso vedere due opzioni:

  1. Elimina l'utente jenkins , crearlo di nuovo (con un UID univoco questa volta), quindi ripetere tutti i comandi utilizzati per creare i suoi file. Questa è probabilmente l'opzione migliore se non hai creato dati o personalizzazioni aggiuntive poiché è stato creato jenkins . Fai attenzione quando elimini l'utente jenkins per assicurarti di non eliminare original-user .

  2. Altro kludgy: modifica l'UID di uno degli utenti modificando manualmente /etc/passwd , quindi usa chown -R per modificare la proprietà dei file di quell'utente in modo appropriato. Questo è kludgy e potrebbe funzionare, ma potrebbe anche non funzionare.

Vado con l'opzione n. 1, personalmente.

    
risposta data 26.04.2015 - 08:48
fonte
2

Su Mac OS X, puoi modificare un UID di un utente locale utilizzando Preferenze di Sistema > Utenti e amp; Gruppi.

Apri il lucchetto per consentire le modifiche e fai clic con il pulsante destro del mouse sull'utente che desideri modificare.

NOTA: non devi accedere a quell'account nel momento in cui apporti la modifica.

Inoltre, le autorizzazioni POSIX seguiranno l'UID, quindi dopo averle modificate potrebbe essere necessario modificare la proprietà dell'utente per quella cartella principale o si rischia di non essere in grado di accedere all'account modificato.

Il comando per modificare la proprietà sarebbe:

sudo chown -R <account_name> /path/to/userhomefolder
    
risposta data 26.04.2015 - 09:05
fonte

Leggi altre domande sui tag