Modo corretto di cambiare nome utente in Ubuntu o qualsiasi Linux


26

Sto usando Ubuntu 12.04 e ho effettuato alcune personalizzazioni. Lo farò anche un nuovo iso che è personalizzato Ubuntu.

Quello che voglio chiedere è come posso cambiare il mio nome utente. Ci sono molte configurazioni nella mia cartella principale corrente. Quindi non voglio sbagliare cambiando il nome utente.

Quindi c'è qualche best practice o flusso di lavoro per farlo?


La tua home directory viene spesso creata con il tuo nome utente, ma puoi cambiare il nome utente senza cambiare la home directory cambiando i primi elementi delle voci in / etc / passwd e / etc / shadow. Assicurati di poter accedere come root (non solo sudo dal tuo login utente) in caso di errore.
Anthon,

cosa succede se voglio cambiare il nome della home directory? e cosa significa esattamente dicendo i primi elementi?
CorpusCallosum

Risposte:


28

Il veramente modo giusto? Supponi di voler cambiare l'utente "peter" in "paul".

groupadd paul
usermod -d /home/paul -m -g paul -l paul peter

Questo cambia il nome, il gruppo, la home directory e la proprietà e il gruppo di quella directory in quelli nuovi, insieme a tutti i file. Si finisce con un utente indistinguibile dall'essere stato originariamente creato come 'paul'.

Un altro modo sarebbe quello di modificare i primi campi delle voci di Peter nei file /etc/passwde /etc/shadow. Quindi cambia ogni ricorrenza di "peter" in "paul" in /etc/group. Quindi rinominare la directory principale da /home/petera /home/paul. E poi chown -R paul /home/peterper ottenere le proprietà e le grouphip della directory e tutti i file e le directory sottostanti per avere quelle nuove.


3
Non è necessario l'abito se hai modificato / etc / {passwd, shadow, group} - l'inode memorizza numericamente il proprietario e i gruppi
Graham Nicholls

5

Consiglierei di non tentare di cambiare il nome di un utente. Questo è generalmente battuto con problemi quando il nome dell'utente viene fatto riferimento in modo statico nel file di configurazione sotto forma di directory home dell'utente, /home/<username>. Questi non sono quasi mai scritti in modo generico, quindi di solito è meglio creare un nuovo nome utente e quindi migrare i file e i dati dell'utente sul nuovo account.


1
Grazie per il commento. Ho creato un nuovo utente e ho cambiato userid / group e home directory rispetto a quello vecchio. sembra che tutto funzioni alla grande. Pensi che questo metodo possa anche causare problemi?
CorpusCallosum

3

Prova il comando usermod .

exec sudo su
usermod --login newname oldname

Fai semplicemente "sudo qualunque cosa avresti fatto". Fare sudo su non registra correttamente i comandi.
Keith Twombley,

3

Puoi cambiarlo; vedi Come posso cambiare il mio nome utente? su AskUbuntu. Quelle istruzioni hanno funzionato bene per me. Per preservare la tua configurazione, crea un link simbolico per la tua vecchia home directory come descritto nelle risposte a quella domanda.


3

Utilizzare usermod per modificare il nome utente e la home directory . Cambia utente peter in paul:

usermod -l paul peter
grep paul /etc/passwd /etc/shadow       # check

cambia home directory e sposta tutto lì (creato se necessario)

usermod -m -d /home/paul paul
grep paul /etc/passwd               # check

Cambia il nome del gruppo , ma non usare usermod in quanto richiede prima di creare un altro gruppo (es. GID 1001) e sebbene aggiornerà il GID per tutto ciò che si trova nella directory $ HOME, dovrai cercare e cambiare il file e directory altrove con la vecchia proprietà del gruppo. Invece, basta cambiare il nome del gruppo manualmente.

nano /etc/group

e cambia

peter:x:1000:

a

paul:x:1000:

Dovrai modificare i nomi dei file utilizzati da cron, at e altri servizi che utilizzano il nome utente anziché l'UID. Uso

find /var -name "*peter*"

per trovare questi file.

Dovrai anche modificare i file di configurazione utilizzati da alcuni servizi come le applicazioni di gestione della posta.

Infine, gli script che usano "/ home / peter /" dovranno essere modificati. Cambia le occorrenze di "/ home / peter /" in "$ HOME".

Non è molto lavoro per modificare le identità degli utenti, devi solo essere accurato.


È stato votato perché questo è lo stesso approccio che uso (per gli stessi motivi per quanto riguarda la conservazione del GID). A proposito, puoi effettivamente combinare i due usermodcomandi in uno e dovresti anche ricordare di modificare /etc/gshadowinsieme /etc/group; I due possono essere cambiati con GNU sed: sudo sed -i 's/oldname/newname/g' /etc/{group,gshadow}- o meglio ancora con sudo groupmod -n newname oldname. Ben fatto per evidenziare alcuni degli altri gotcha come dover cambiare manualmente il nome del crontab dell'utente (se ne ha uno).
Anthony G - giustizia per Monica il

Addendum rapido a questo ... non puoi accedere mentre lo fai. Crea un nuovo utente temporaneo che fa parte del gruppo sudoers, accedi con quello, apporta le modifiche, esci dal nuovo account temporaneo, accedi a quello rinominato ed elimina l'account temporaneo.
Janus
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.