Maneira correta de alterar o nome de usuário no Ubuntu ou em qualquer linux

26

Estou usando o Ubuntu 12.04 e fiz algumas customizações. Também farei um novo iso que é personalizado para o ubuntu.

O que quero perguntar é como posso mudar meu nome de usuário. Há muita configuração na minha pasta pessoal atual. Portanto, não quero estragar a alteração do nome de usuário.

Existe alguma prática recomendada ou fluxo de trabalho para fazer isso?

CorpusCallosum
fonte
Seu diretório inicial geralmente é criado com seu nome de usuário, mas você pode alterar o nome de usuário sem alterar o diretório inicial, alterando os primeiros elementos das entradas em / etc / passwd e / etc / shadow. Certifique-se de poder fazer login como root (não apenas sudo no login de usuário), caso cometa um erro.
Anthon
e se eu quiser alterar o nome do diretório inicial? e o que exatamente significa dizer os primeiros elementos?
precisa saber é o seguinte

Respostas:

28

O caminho realmente certo? Digamos que você queira alterar o usuário 'peter' para 'paul'.

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

Isso altera o nome, o grupo, o diretório inicial e a propriedade e o grupo desse diretório para os novos, junto com todos os arquivos. Você acaba com um usuário indistinguível de ter sido criado originalmente como 'paul'.

Outra maneira seria editar os primeiros campos das entradas de peter nos arquivos /etc/passwde /etc/shadow. Altere todas as ocorrências de 'peter' para 'paul' em /etc/group. Renomeie o diretório inicial de /home/peterpara /home/paul. E então, chown -R paul /home/peterpara obter as propriedades e associações do diretório e todos os arquivos e diretórios abaixo dele, para obter os novos.

Steve Bergman
fonte
3
Não há necessidade do chown se você tiver editado / etc / passwd {, sombra, grupo} - As lojas de inode proprietário & grupos numericamente
Graham Nicholls
5

Eu recomendaria não tentar alterar o nome de um usuário. Isso geralmente ocorre com problemas quando o nome do usuário é estaticamente referenciado nos arquivos de configuração na forma do diretório inicial do usuário /home/<username>. Eles quase nunca são escritos de maneira genérica; portanto, é melhor criar apenas um novo nome de usuário e migrar os arquivos e dados do usuário para a nova conta.

slm
fonte
11
Obrigado pelo comentário. Criei um novo usuário e alterei o ID do usuário / grupo e o diretório pessoal em relação ao antigo. parece que tudo está funcionando bem. Você acha que esse método também pode causar problemas?
precisa saber é o seguinte
3

Experimente o comando usermod .

exec sudo su
usermod --login newname oldname
dgmltn
fonte
Basta fazer 'sudo, o que você vai fazer'. Fazer o sudo su não registrará corretamente os comandos.
Keith Twombley
3

Você pode mudar isso; consulte Como altero meu nome de usuário? no AskUbuntu. Essas instruções funcionaram bem para mim. Para preservar sua configuração, basta fazer um link simbólico para o diretório inicial antigo, conforme descrito nas respostas a essa pergunta.

z0r
fonte
3

Use usermod para alterar o nome de usuário e o diretório inicial . Altere o usuário peter para paul:

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

altere o diretório inicial e mova tudo para lá (criado se necessário)

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

Altere o nome do grupo , mas não use usermod, pois exige que você crie outro grupo (por exemplo, GID 1001) e, embora atualize o GID para tudo dentro do diretório $ HOME, será necessário procurar e alterar o arquivos e diretórios em outros lugares com a propriedade do grupo antigo. Em vez disso, basta alterar o nome do grupo manualmente.

nano /etc/group

e mudar

peter:x:1000:

para

paul:x:1000:

Você precisará alterar os nomes de arquivos usados ​​pelo cron, at e outros serviços que usam o nome de usuário em vez do UID. Usar

find /var -name "*peter*"

para encontrar esses arquivos.

Você também precisará alterar os arquivos de configuração usados ​​por alguns serviços, como os aplicativos de manipulação de correio.

Por fim, scripts usando "/ home / peter /" precisarão ser editados. Altere as ocorrências de "/ home / peter /" para "$ HOME".

Não é muito trabalhoso alterar a identidade do usuário, você só precisa ser cuidadoso.

Duane
fonte
Promovido porque esta é a mesma abordagem que eu uso (pelas mesmas razões em relação à preservação do GID). Aliás, você pode realmente combinar os dois usermodcomandos em um e também lembre-se de editar /etc/gshadowjunto com /etc/group; Os dois podem ser alterados com o GNU sed: sudo sed -i 's/oldname/newname/g' /etc/{group,gshadow}- ou melhor ainda com sudo groupmod -n newname oldname. Bem feito para destacar algumas das outras dicas, como ter que alterar manualmente o nome do crontab do usuário (se houver).
Anthony G - justiça para Monica
Adendo rápido a isso ... você não pode fazer login enquanto estiver fazendo isso. Crie um novo usuário temporário que faça parte do grupo sudoers, efetue login com ele, faça as alterações, efetue logout do novo accound temporário, efetue login no nome renomeado e exclua a conta temporária.
Janus