Domanda Come cambio il mio nome utente?


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

Come posso cambiare questo (incluso il nome della mia home directory e il nome nel terminale) senza perdere le impostazioni per le applicazioni?
Come mantenere le autorizzazioni e le mie chiavi per varie autorizzazioni (ad esempio e-mail, SSH, GPG e altro)?
Quali impostazioni potrebbero andare perse se avessi cambiato il mio nome utente?


262
2018-04-08 08:25


origine




risposte:


I sistemi operativi Unix-like separano il nome utente dall'identità dell'utente, quindi puoi tranquillamente cambiare il nome senza influenzare l'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 il usermod strumento.

Per cambiare nome utente (probabilmente è meglio farlo senza essere loggato):

sudo usermod -l newUsername oldUsername

Questo tuttavia non rinomina la cartella Inizio.

Per cambiare la cartella home, usa

sudo usermod -d /home/newHomeDir -m newUsername

dopo aver cambiato il nome utente.

Ad esempio, è possibile disconnettersi, passare a una console (Ctrl+alt+F1), e sudo su - diventare la vera radice (al contrario di sudo -s, dove $ HOME è ancora / home / tuo nome.) Forse devi anche prima uccidere alcuni processi ancora in esecuzione da questo utente. Per farlo, entra ps -u username, cerca il PID corrispondente e uccidili vicino kill PID-number.

Aggiornamento: come detto, alcuni file possono fare riferimento alla tua vecchia home directory. È possibile mantenere un collegamento simbolico per la compatibilità con le versioni precedenti, e g ln -s /home/newname /home/oldname oppure puoi cambiare 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 esperti come me:
Poiché ho solo un account utente (amministratore), non mi permette di cambiare il nome utente ("hai già effettuato l'accesso" era la risposta in TTY1 (Ctrl+alt+F1). Per aggirare questo:

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

    sudo adduser temporary
    

    imposta la password.

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

    sudo adduser temporary sudo
    
  3. Disconnettersi con il comando exit.
  4. Ritorna a tty1: Accedi con l'account utente "temporaneo" e la password. Cambia il tuo nome utente e la cartella come menzionato sopra. exit (finché non si ottiene il prompt di accesso)
  5. Torna a TTY7 (Ctrl+alt+F7) per accedere alla schermata del desktop normale / GUI e vedere se funziona.
  6. Elimina utente e cartella temporanei:

    sudo deluser temporary
    sudo rm -r /home/temporary
    

257
2018-04-08 08:48



Questo sfortunatamente non è vero per i diversi file di configurazione sotto $ HOME, prova a eseguire qualcosa di simile grep -IRFl /home/username ~ e vedrai quanti riferimenti alla tua home directory sono memorizzati lì. - arrange
Era una soluzione semplice: bastava usare l'editor Account utente in unità, seguito da riavvio. - Steve Koch
Per quelli con una cartella home crittografata, dovrai modificare /home/.ecryptfs/oldusername/.ecryptfs/Private.mnt per indicare la tua nuova cartella home, altrimenti non potrai accedere tramite Unity. - raphael
sudo usermod -d /home/edge -m edge rendimenti: usermod: Directory /home/empedokles could not be renamed in /home/edge Ad esempio, il passaggio 4 non funzionerà. - empedokles
@JTC mai modificare sudoers con piano nano. Usa sempre visudo. - styrofoam fly


Per mettere tutto insieme:

  1. Alla 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 usando l'account "root" e la password che hai precedentemente impostato.

  6. Cambia il nome utente e la cartella Inizio sul nuovo nome che desideri.

    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 si stesse utilizzando ecryptfs (directory home crittografata). Monta la tua directory criptata usando ecryptfs-recover-privatee modifica <mountpoint>/.ecryptfs/Private.mnt per riflettere la tua nuova directory home.

  10. Disconnettersi.

    exit
    
  11. stampa Ctrl+alt+F7.

E ora puoi accedere utilizzando il tuo nuovo nome utente.


90
2017-07-06 09:43



Se dopo usermod -l  ottieni un user <oldname> is currently used by process <processno>, puoi trovare quel processo (probabilmente un demone, o tmux / schermo) usando ps aux | grep <processno>. Potresti voler fermare con grazia quel processo, altrimenti puoi farlo kill <processno>. - RedPixel
Grazie per aver messo insieme questo commento. È stato molto utile Due cose che potrebbero essere citate però. Dopo il punto 4 ho riavviato in modo da non ricevere messaggi di errore al punto 6. Inoltre, una volta completato questo processo, il file / etc / passwd avrà un commento ID corrispondente al vecchio nome utente. Ciò causerà la schermata di accesso per visualizzare 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 login" con il nome utente. Questo ha aggiornato il file / etc / passwd e risolto il problema. - Jibbers
Questo è il modo più semplice e infallibile per farlo. È meglio riavviare dopo il passo 4 come suggerito da @Jibbers. - Yerke
Vorrei dire che i "segnalibri nelle finestre del browser di file" ora puntano alle vecchie cartelle, quindi devo cancellare quei segnalibri. - ollydbg23
Non funzionerà. Se premi Ctrl + Alt + F1 all'inizio stai provando ad accedere all'utente appena creato che non permetterà. - empedokles


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

Prima rimontare la radice

mount -o remount,rw /

Per cambiare il nome utente e il nome della cartella home,

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

Per il nome del gruppo,

groupmod -n <newgroup> <oldgroup>

24
2018-04-08 09:23



quando lo uso usermod -l <newname> -d /home/<newname> -m <oldname> questo mi dà errore usermod: user oldusername is currently used by process 3170 e se uccido il processo ancora mi dà lo stesso errore. usando Ubuntu 13.10 - Waqas
NON FARE QUESTA SE L'ELENCO DOMESTICO DELLA CASA È CRIPTATO !!!! Ho seguito questa procedura e mi ha inviato per una corsa di 2 ore ... L'unico modo per recuperare è eseguire di nuovo questa procedura e rimettere il nome originale (non gradito). Il problema che si presenterà è "Impossibile aprire il mount" punto" - Mike


(Uso di Ubuntu 13.10, 14.04, 16.04) Fare clic sull'icona "Impostazioni di sistema". Quindi fare clic su "Account utente". Il tuo account amministratore dovrebbe essere visualizzato. Clicca sul pulsante "Unlock". Inserisci la tua password utente come richiesto per consentire le modifiche al tuo account. Una volta sbloccato, puoi fare clic sul tuo vecchio nome utente che desideri modificare e digitare un nuovo nome utente per sostituirlo. Dopo aver digitato il nuovo nome, fai clic sul pulsante "Blocca" per rendere permanente la modifica. Riavvia Ubuntu.


10
2017-07-07 22:45



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


Quando si riceve usermod: can't change /etc/password basta eseguire i seguenti comandi:

Nella console di ripristino root eseguire:

mount -o remount,rw /

Quindi rieseguire:

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

3
2017-07-30 12:14





quando lo fai usermod -l <newname> -d /home/<newname> -m <oldname> otterrete useradd: can't change /etc/passwd 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>

0
2017-08-06 06:12





Dal momento che non tutti i PC hanno il usermod app puoi farlo manualmente. A partire da root aperto /etc/passwd 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

a:

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

quindi se hai lavorato su root fai il login e se hai effettuato l'accesso user, disconnessione e relogin.


-3
2017-12-16 13:15



Ho provato in questo modo (prima ho scoperto il usermod comando) e la password dell'utente non è più accettata. - Ben Voigt
@ BenVig non tutti i PC hanno il usermod - Малъ Скрылевъ
È Ubuntu! Se non ce l'ha usermod l'installazione è interrotta poiché fa parte del passwd pacchetto, che è necessario. - Auspex