Questão Como eu mudo meu nome de usuário?


Algum tempo atrás, quando eu instalei o Ubuntu eu escolhi um nome de usuário bastante estúpido para a minha conta que eu não quero mais usar.

Como faço para alterar isso (incluindo o nome do meu diretório pessoal e o nome no terminal) sem perder as configurações dos aplicativos?
Como mantenho permissões e minhas chaves para várias autenticações (por exemplo, email, SSH, GPG e mais)?
Quais configurações poderiam se perder se eu mudasse meu nome de usuário?


262
2018-04-08 08:25


origem




Respostas:


Sistemas operacionais semelhantes ao Unix desacoplam o nome do usuário da identidade do usuário, portanto, você pode alterar o nome com segurança sem afetar o ID. Todas as permissões, arquivos, etc estão vinculados à sua identidade (uid), não ao seu nome de usuário.

Para gerenciar todos os aspectos do banco de dados do usuário, use o usermod ferramenta.

Para alterar o nome de usuário (provavelmente é melhor fazer isso sem estar logado):

sudo usermod -l newUsername oldUsername

No entanto, isso não renomeia a pasta base.

Para alterar a pasta home, use

sudo usermod -d /home/newHomeDir -m newUsername

depois que você mudou o nome de usuário.

Por exemplo, você poderia sair, cair para um console (Ctrl+Alt+F1) e sudo su - para se tornar verdadeira raiz (em oposição a sudo -s, onde $ HOME ainda é / home / yourname.) Talvez você também tenha que matar alguns processos ainda em execução desse usuário primeiro. Para fazer isso, digite ps -u username, procure o PID correspondente e mate-os por kill PID-number.

Update: conforme as configurações mencionadas, alguns arquivos podem fazer referência ao seu antigo diretório inicial. Você pode manter um symlink para compatibilidade com versões anteriores, por exemplo, ln -s /home/newname /home/oldname ou você pode alterar o conteúdo do arquivo com sed -i.bak 's/*oldname*/*newname*/g' *list of files* Ele cria um backup para cada arquivo com uma extensão .bak.

Algumas informações adicionais para usuários não tão experientes como eu:
Como eu só tenho uma conta de usuário (administrador), ele não me deixa alterar o nome de usuário ("você já está logado" foi a resposta em TTY1 (Ctrl+Alt+F1). Para contornar isso:

  1. Faça login com suas credenciais antigas e adicione um novo usuário, por exemplo, "temporário" em TTY1:

    sudo adduser temporary
    

    definir a senha.

  2. Permita que o usuário temporário execute o sudo adicionando o usuário ao grupo sudo:

    sudo adduser temporary sudo
    
  3. Sair com o comando exit.
  4. Retornar para tty1: faça o login com a conta de usuário 'temporária' e senha. Altere seu nome de usuário e pasta conforme mencionado acima. exit (até você obter o prompt de login)
  5. Volte para o TTY7 (Ctrl+Alt+F7) para fazer o login na tela GUI / desktop normal e ver se isso funciona.
  6. Excluir usuário e pasta temporários:

    sudo deluser temporary
    sudo rm -r /home/temporary
    

258
2018-04-08 08:48



Isso infelizmente não é verdade para arquivos de configuração diferentes em $ HOME, tente executar algo como grep -IRFl /home/username ~ e você verá quantas referências ao seu diretório pessoal estão armazenadas lá. - arrange
Foi uma correção simples - Só tive que usar o editor de contas de usuário em unidade, seguido de reiniciar. - Steve Koch
Para aqueles com uma pasta pessoal criptografada, você terá que editar /home/.ecryptfs/oldusername/.ecryptfs/Private.mnt para apontar para sua nova pasta base, senão você não conseguirá fazer o login via Unity. - raphael
sudo usermod -d /home/edge -m edge rendimentos: usermod: Directory /home/empedokles could not be renamed in /home/edge ou seja, o passo 4 não funcionará. - empedokles
@ Jtc Nunca editar sudoers com planície nano. Sempre use visudo. - styrofoam fly


Para juntar tudo:

  1. No ecrã inicial, prima Ctrl+Alt+F1.
  2. Entre usando seu nome de usuário e senha.
  3. Defina uma senha para a conta "root".

    sudo passwd root
    
  4. Sair.

    exit
    
  5. Faça o login usando a conta "root" e a senha que você definiu anteriormente.

  6. Altere o nome de usuário e a pasta base para o novo nome que você deseja.

    usermod -l <newname> -d /home/<newname> -m <oldname>
    
  7. Altere o nome do grupo para o novo nome que você deseja.

    groupmod -n <newgroup> <oldgroup>
    
  8. Bloqueie a conta "root".

    passwd -l root
    
  9. Se você estava usando o ecryptfs (diretório inicial criptografado). Monte seu diretório criptografado usando ecryptfs-recover-privatee edite <mountpoint>/.ecryptfs/Private.mnt para refletir seu novo diretório inicial.

  10. Sair.

    exit
    
  11. pressione Ctrl+Alt+F7.

E agora você pode fazer login usando seu novo nome de usuário.


90
2017-07-06 09:43



Se depois usermod -l  você ganha um user <oldname> is currently used by process <processno>, você pode encontrar esse processo (provavelmente um daemon, ou tmux / screen) usando ps aux | grep <processno>. Você pode querer graciosamente parar esse processo, caso contrário você pode kill <processno>. - RedPixel
Obrigado por colocar este comentário em conjunto. Foi muito útil. Duas coisas que podem ser mencionadas. Após o passo 4 eu reiniciei para que eu não recebesse mensagens de erro na etapa 6. Além disso, após esse processo ser concluído, o arquivo / etc / passwd terá um comentário de ID correspondente ao nome de usuário antigo. Isso fará com que a tela de login exiba o nome de login antigo. Eu não consegui encontrar uma maneira decente de consertá-lo na linha de comando, mas eu corrigi-lo, entrando na conta do usuário, indo para as configurações da conta e alterando o "Nome de Login" para o nome de usuário. Isso atualizou o arquivo / etc / passwd e corrigiu o problema. - Jibbers
Esta é a maneira mais fácil e à prova de erros para fazê-lo. É melhor reiniciar após o passo 4, como sugerido pela @Jibbers. - Yerke
Eu mencionaria que os "marcadores nas janelas do navegador de arquivos" estão apontando para as pastas antigas, por isso preciso excluir esses marcadores. - ollydbg23
Não vai funcionar. Se você pressionar Ctrl + Alt + F1 no início, ele tentará efetuar login no usuário recém-criado, o que não será permitido. - empedokles


Reinicie no modo de recuperação e vá até o shell de prompt raiz ("Descartar o prompt do shell de root")

Primeiro remontar a raiz

mount -o remount,rw /

Para alterar o nome de usuário e o nome da pasta base,

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

Para o nome do grupo,

groupmod -n <newgroup> <oldgroup>

24
2018-04-08 09:23



quando eu uso usermod -l <newname> -d /home/<newname> -m <oldname> isso me dá erro usermod: user oldusername is currently used by process 3170 e se eu matar o processo ainda me dá o mesmo erro. Usando o Ubuntu 13.10 - Waqas
NÃO FAÇA ISSO SE O DIRETÓRIO DA SUA CASA ESTIVER ENCRIPTADO !!!! Eu segui este procedimento e ele me mandou para um passeio selvagem de 2 horas ... A única maneira de recuperar é executar este procedimento novamente e colocar o nome original (não apreciado) de volta. O problema que você terá é "Não é possível entrar na montagem ponto" - Mike


(Usando o Ubuntu 13.10, 14.04, 16.04) Clique no ícone "Configurações do Sistema". Em seguida, clique em "Contas de Usuário". Sua conta de administrador deve ser exibida. Clique no botão "Desbloquear". Digite sua senha de usuário conforme solicitado para permitir alterações em sua conta. Uma vez desbloqueado, você pode clicar no seu antigo nome de usuário que deseja alterar e digitar um novo nome de usuário para substituí-lo. Depois de digitar o novo nome, clique no botão "Bloquear" para tornar a alteração permanente. Reinicie o Ubuntu.


10
2017-07-07 22:45



Isso não mudou o nome de usuário para mim, apenas o nome. O nome de usuário antigo ainda aparece no terminal e como o diretório inicial e o grupo (mesmo após a reinicialização). - DougC


Ao receber usermod: can't change /etc/password apenas execute os seguintes comandos:

Na execução do console de recuperação raiz:

mount -o remount,rw /

Em seguida, execute novamente:

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

3
2017-07-30 12:14





quando você faz usermod -l <newname> -d /home/<newname> -m <oldname> você vai ter useradd: can't change /etc/passwd mensagem de erro para evitar isso basta adicionar sudo -- acima comando como

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

e

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

0
2017-08-06 06:12





Já que nem todos os PCs têm o usermod app você pode fazer isso manualmente. A partir da raiz aberta /etc/passwd editar:

sudo vim /etc/passwd

e altere o nome do usuário no início de uma linha:

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

para:

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

então se você trabalhou de root apenas faça o login, e se você foi logado user, logoff e relogin.


-3
2017-12-16 13:15



Eu tentei desse jeito (antes de descobrir o usermod comando) e a senha do usuário não é mais aceita. - Ben Voigt
@BenVoigt nem todos os pcs têm o usermod - Малъ Скрылевъ
É o Ubuntu! Se não tiver usermod sua instalação está quebrada, pois é parte do passwd pacote, que é requeridos. - Auspex