Come posso cambiare il mio nome utente?


325

Qualche tempo fa, quando ho installato Ubuntu, ho scelto un nome utente piuttosto stupido per il mio account che non voglio più usare.

Come posso cambiare questo (incluso il nome della mia home directory e il nome nel terminale) senza perdere le impostazioni per le applicazioni?
Come posso conservare le autorizzazioni e le chiavi per varie autenticazioni (ad es. E-mail, SSH, GPG e altro)?
Quali impostazioni potrebbero andare perse se cambiassi il mio nome utente?


Perché non possiamo accedere a /usr/share/applications/users.desktop >> Fare clic sull'utente per il quale è necessario modificare il nome. >> Fai clic su Cambia nome utente >> Cambia nome >> Fai clic su OK. Penso che questo sarebbe il modo più semplice per cambiare il nome utente, no?
Anand,

Risposte:


325

I sistemi operativi simili a Unix separano il nome utente dall'identità dell'utente, quindi è possibile modificarlo in sicurezza senza influire sull'ID. Tutte le autorizzazioni, i file, ecc. Sono legati alla tua identità (uid), non al tuo nome utente.

Per gestire ogni aspetto del database utente, si utilizza lo usermodstrumento.

Per cambiare il nome utente (probabilmente è meglio farlo senza aver effettuato l'accesso):

sudo usermod -l newUsername oldUsername

Questo, tuttavia, non rinomina la cartella principale.

Per modificare la cartella principale, utilizzare

sudo usermod -d /home/newHomeDir -m newUsername

dopo aver modificato il nome utente.

Ad esempio, è possibile disconnettersi, passare a una console ( Ctrl+ Alt+ F1) e sudo su -diventare root reale (al contrario sudo -s, dove $ HOME è ancora / home / nome utente). Forse è necessario anche uccidere alcuni processi ancora in esecuzione da questo utente primo. Per fare ciò, entra ps -u username, cerca il PID corrispondente e uccidilo kill PID-number.

Aggiornamento: come indicato, alcuni file potrebbero fare riferimento alla tua vecchia directory home. Puoi mantenere un link simbolico per la compatibilità con le versioni precedenti, ad esempio ln -s /home/newname /home/oldnameoppure puoi modificare il contenuto del file con sed -i.bak 's/*oldname*/*newname*/g' *list of files*Crea un backup per ogni file con estensione .bak.

Alcune informazioni aggiuntive per utenti non così esperti come me:
dato che ho UN SOLO account utente (amministratore), non mi permetterebbe di cambiare il nome utente ("sei già connesso" è stata la risposta in TTY1 ( Ctrl+ Alt+ F1). intorno a questo:

  1. Accedi con le tue vecchie credenziali e aggiungi un nuovo utente, ad esempio "temporaneo" in TTY1:

    sudo adduser temporary
    

    imposta la password.

  2. Consenti all'utente temporaneo di eseguire sudo aggiungendo l'utente al gruppo sudo:

    sudo adduser temporary sudo
    
  3. Esci con il comando exit.
  4. Torna a tty1: accedi con l'account utente e la password "temporanei". Cambia il tuo nome utente e la cartella come indicato sopra. exit(fino a quando non viene visualizzato il prompt di accesso)
  5. Torna a TTY7 ( Ctrl+ Alt+ F7) per accedere alla schermata GUI / desktop normale e vedere se funziona.
  6. Elimina utente e cartella temporanei:

    sudo deluser temporary
    sudo rm -r /home/temporary
    

11
Questo non è purtroppo vero per diversi file di configurazione in $ HOME, prova a eseguire qualcosa del genere grep -IRFl /home/username ~e vedrai quanti riferimenti alla tua home directory sono memorizzati lì.
organizzare l'

1
È stata una soluzione semplice: ho dovuto semplicemente utilizzare l'editor degli account utente in unità, seguito dal riavvio.
Steve Koch,

6
Per quelli con una cartella home crittografata, dovrai modificare /home/.ecryptfs/oldusername/.ecryptfs/Private.mntper puntare alla tua nuova cartella home, altrimenti non potrai accedere tramite Unity.
Raffaello,

2
sudo usermod -d /home/edge -m edgerese: usermod: Directory /home/empedokles could not be renamed in /home/edgecioè il passaggio 4 non funzionerà.
Empedokles

2
@JTC non modifica maisudoers con il semplice nano. Usa sempre visudo.
polistirolo vola il

108

Per mettere tutto insieme:

  1. Nella schermata iniziale premere Ctrl+ Alt+ F1.
  2. Accedi usando il tuo nome utente e password.
  3. Imposta una password per l'account "root".

    sudo passwd root
    
  4. Disconnettersi.

    exit
    
  5. Accedi utilizzando l'account "root" e la password che hai impostato in precedenza.

  6. Modificare il nome utente e la cartella principale con il nuovo nome desiderato.

    usermod -l <newname> -d /home/<newname> -m <oldname>
    
  7. Cambia il nome del gruppo con il nuovo nome che desideri.

    groupmod -n <newgroup> <oldgroup>
    
  8. Blocca l'account "root".

    passwd -l root
    
  9. Se stavi utilizzando ecryptfs (home directory crittografata). Monta la tua directory crittografata usando ecryptfs-recover-privatee modifica <mountpoint>/.ecryptfs/Private.mntper riflettere la tua nuova home directory.

  10. Disconnettersi.

    exit
    
  11. Premi Ctrl+ Alt+ F7.

E ora puoi accedere utilizzando il tuo nuovo nome utente.


6
Se dopo usermod -l aver ottenuto un user <oldname> is currently used by process <processno>, puoi trovare quel processo (probabilmente un demone, o tmux / screen) usando ps aux | grep <processno>. Potresti voler interrompere con garbo quel processo, altrimenti puoi kill <processno>.
RedPixel,

1
Grazie per aver messo insieme questo commento. È stato molto utile Due cose che potrebbero essere menzionate però. Dopo il passaggio 4 ho riavviato in modo da non ricevere messaggi di errore al passaggio 6. Inoltre, al termine di questo processo, il file / etc / passwd avrà un commento ID corrispondente al vecchio nome utente. In questo modo la schermata di accesso visualizzerà il vecchio nome di accesso. Non sono riuscito a trovare un modo decente per risolverlo dalla riga di comando, ma l'ho risolto accedendo all'account utente, andando alle impostazioni dell'account e cambiando il "Nome di accesso" al nome utente. Ciò ha aggiornato il file / etc / passwd e risolto il problema.
Jibbers,

1
Questo è il modo più semplice e sicuro per farlo. È meglio riavviare dopo il passaggio 4 come suggerito da @Jibbers.
Yerke,

Vorrei menzionare che i "segnalibri nelle finestre del browser File" ora puntano alle vecchie cartelle, quindi devo eliminare quei segnalibri.
ollydbg23

Non funzionerà Se premi Ctrl + Alt + F1 all'inizio sta tentando di accedere all'utente appena creato che non consentirà.
Empedokles

27

Riavvia in modalità di ripristino e vai alla shell del prompt di root ("Drop to root shell prompt")

Prima rimonta la radice

mount -o remount,rw /

Per modificare il nome utente e il nome della cartella principale,

usermod -l <newname> -d /home/<newname> -m <oldname>

Per nome del gruppo,

groupmod -n <newgroup> <oldgroup>

1
quando uso usermod -l <newname> -d /home/<newname> -m <oldname>questo mi dà errore usermod: user oldusername is currently used by process 3170e se uccido ancora il processo mi dà lo stesso errore. usando ubuntu 13.10
Waqas

4
NON FARE QUESTO SE LA TUA DIRECTORY DI CASA È CRIPTATA !!!! Ho seguito questa procedura e mi ha inviato per un giro selvaggio di 2 ore ... L'unico modo per recuperare è eseguire di nuovo questa procedura e reinserire il nome originale (non apprezzato). Il problema che avrai sarà "Impossibile installare chdir in mount punto "
Mike,

Perché non possiamo accedere a /usr/share/applications/users.desktop >> Fare clic sull'utente per il quale è necessario modificare il nome. >> Fai clic su Cambia nome utente >> Cambia nome >> Fai clic su OK. Penso che questo sarebbe il modo più semplice per cambiare il nome utente, no?
Anand,

9

Su Ubuntu 13.10, 14.04, 16.04:

  1. Fai clic sull'icona "Impostazioni di sistema".
  2. Fai clic su "Account utente".
  3. Il tuo account amministratore dovrebbe essere visualizzato.
  4. Fai clic sul pulsante "Sblocca".
  5. Immettere la password dell'utente come richiesto per consentire le modifiche al proprio account.
  6. Una volta sbloccato, è possibile fare clic sul vecchio nome utente che si desidera modificare e digitare un nuovo nome utente per sostituirlo.
  7. Dopo aver digitato il nuovo nome, fare clic sul pulsante "Blocca" per rendere permanente la modifica.
  8. Riavvia Ubuntu.

3
Questo non ha cambiato il nome utente per me, solo il nome. Il vecchio nome utente appare ancora nel terminale e come home directory e gruppo (anche dopo il riavvio).
DougC

3

Quando ricevi, usermod: can't change /etc/passwordesegui solo i seguenti comandi:

Nella console di ripristino principale eseguire:

mount -o remount,rw /

Quindi rieseguire:

usermod -l <newname> -d /home/<newname> -m <oldname>

Perché non possiamo accedere a /usr/share/applications/users.desktop >> Fare clic sull'utente per il quale è necessario modificare il nome. >> Fai clic su Cambia nome utente >> Cambia nome >> Fai clic su OK. Penso che questo sarebbe il modo più semplice per cambiare il nome utente, no?
Anand,

1

La risposta elencata qui da @ karthick87 funziona perfettamente ma ecco cosa farei solo per essere sicuro ed evitare tutti i problemi:

  1. Crea un account / utente separato e assicurati che questo account / utente funzioni di root o accedi come qualsiasi utente root-capace.
  2. Disconnettersi con l'account corrente e quindi accedere con l'account menzionato nel passaggio 1.
  3. Uccidi tutti i processi dell'utente precedente.
  4. Ora segui i passaggi indicati da @ karthick87 e modifica il nome utente e anche il proprietario della directory home.
  5. Quindi segui la risposta di @Sriraj Hebbar per cambiare il nome del gruppo.
  6. disconnettersi con l'utente di riserva e accedere con l'utente. Se hai creato un utente extra, eliminalo.

0

quando lo farai usermod -l <newname> -d /home/<newname> -m <oldname>riceverai useradd: can't change /etc/passwdun messaggio di errore per evitare questo basta aggiungere sudo --al comando sopra come

sudo -- usermod -l <newname> -d /home/<newname> -m <oldname>

e

sudo --  groupmod -n <newgroup> <oldgroup>

-3

Poiché non tutti i PC hanno l' usermodapp, puoi farlo manualmente. A partire da root aperto /etc/passwdper modificare:

sudo vim /etc/passwd

e cambia il nome dell'utente all'inizio di una riga:

user:x:500:501:username:home/user:/bin/bash

per:

newuser:x:500:501:username:home/user:/bin/bash

quindi se hai lavorato su root basta effettuare il login e se hai effettuato l'accesso user, disconnettiti e riconnettiti.


Ho provato in questo modo (prima di scoprire il usermodcomando) e la password dell'utente non è più accettata.
Ben Voigt,

@BenVoigt non tutti i pc hanno l'usermod
Малъ Скрылевъ

3
È Ubuntu! Se non è presente, usermodl'installazione viene interrotta in quanto fa parte del passwdpacchetto, che è necessario .
Auspex,
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.