Referente à: /etc/passwd

Iniciado por MthsCbrl, 17 de Março de 2013, 23:36

tópico anterior - próximo tópico

MthsCbrl



Olá, Pessoal. Boa noite!



Venho até vocês, solicitar ajuda. Pois, eu fiz a maior "cagada" da minha vida ao seguir a dica de um dos Administradores (clcampos) desse fórum.


  Eu estava pesquisando na internet, algo que explicasse como alterar o nome do meu computador e o meu nome de utilizador.
  Achei o que estava procurando, como diz o ditado - "quem procura, acha". Mas, após ter feito o que menciona no tutorial do clcampos, eu me arrependi profundamente de ter achado o que procurava! Pois, uma das etapas do procedimento é ir até o terminal e efetuar a troca do nome relativo à pasta "#HOME", tal procedimento exige o seguinte comando em terminal: sudo mv /home/SEU-USUÁRIO-ATUAL /home/SEU-NOVO-USUARIO. Após ter aplicado o comando, o sistema - como de costume - exigiu a minha senha para que ele pudesse aplicar o "sudo", porém, para a minha surpresa, foi me retornado a seguinte mensagem: "Sorry, try again.". Ou seja, minha senha sumiu. Como eu faço para reverter isso?

  Minha sorte foi não ter reiniciado o computador antes de fazer isso, pois, caso eu tivesse reiniciado, não poderia fazer o login.
  Eu copiei tudo o que estava no arquivo "/etc/passwd", arquivo este que foi alterado e, também, foi o causador desse problema!



Segue abaixo o que estava no arquivo:

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
syslog:x:101:103::/home/syslog:/bin/false
messagebus:x:102:105::/var/run/dbus:/bin/false
colord:x:103:108:colord colour management daemon,,,:/var/lib/colord:/bin/false
lightdm:x:104:111:Light Display Manager:/var/lib/lightdm:/bin/false
whoopsie:x:105:114::/nonexistent:/bin/false
avahi-autoipd:x:106:117:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/bin/false
avahi:x:107:118:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
usbmux:x:108:46:usbmux daemon,,,:/home/usbmux:/bin/false
kernoops:x:109:65534:Kernel Oops Tracking Daemon,,,:/:/bin/false
pulse:x:110:119:PulseAudio daemon,,,:/var/run/pulse:/bin/false
rtkit:x:111:122:RealtimeKit,,,:/proc:/bin/false
speech-dispatcher:x:112:29:Speech Dispatcher,,,:/var/run/speech-dispatcher:/bin/sh
hplip:x:113:7:HPLIP system user,,,:/var/run/hplip:/bin/false
saned:x:114:123::/home/saned:/bin/false


* Esta é a linha que foi alterada - era assim, antes da alteração *

mthscbrl:x:1000:1000:Cabral,,,:/home/mthscbrl:/bin/bash


jetty:x:115:126::/usr/share/jetty:/bin/false
clamav:x:116:127::/var/lib/clamav:/bin/false
debian-tor:x:117:128::/var/lib/tor:/bin/bash
mysql:x:118:130:MySQL Server,,,:/nonexistent:/bin/false
bind:x:119:131::/var/cache/bind:/bin/false
privoxy:x:120:65534::/etc/privoxy:/bin/false



Me ajudem, por gentileza.

Atenciosamente,
MthsCbrl.

Citação de: clcampos online 09 de Janeiro de 2009, 22:51
Bem, sou dos que gosta do terminal, então é assim que posso indicar, mas tenha muito cuidado em fazer isto para não ter problemas, e leia até o fim, só depois execute algum comando..

1o.) Faça backup do arquivo /etc/passwd:

sudo   cp   /etc/passwd   /etc/passwd.bkp.20090109

2o.) Edite o arquivo:

gedit   /etc/passwd

3o.) Altere o nome do seu usuário (O nome do usuário é a informação em negrito abaixo):

Citarclcampos:x:1000:1000:Cristiano,,,:/home/clcampos:/bin/bash
Cuidado com a sintaxe da linha, altere apenas o nome do arquivo, mantendo todos os demais caracteres, principalmente os : (dois pontos).

4o.) Neste ponto você já alterou o nome do usuário, mas se quiser ainda pode alterar também a sua $HOME (no meu caso: /home/clcampos). Para isso você altera também no mesmo arquivo/linha a informação dela (em negrito abaixo):

CitarNOME-NOVO-DO-USUARIO:x:1000:1000:Cristiano,,,:/home/clcampos:/bin/bash

Porém caso altere esta informação você também deverá alterar o diretório relativo a ela. Para isso execute o comando abaixo adaptando as informações para sua realidade:

Citarsudo   mv   /home/SEU-USUÁRIO-ATUAL   /home/SEU-NOVO-USUARIO

5o.) Por fim sobrou apenas o nome do seu grupo, que tem exatamente o mesmo nome do usuário. Ele esta no arquivo /etc/group, e você altera de forma similar ao já indicado. Não esqueça de fazer backup do arquivo antes caso queira mudar.

6o.) Para evitar problemas recomendo confirmar as permissões de dono/grupo da sua $HOME e reiniciar o sistema imediatamente.

Citarsudo   chown -R SEU-NOVO-USUARIO:GRUPO-DO-SEU-USUARIO   /home/SUA-NOVA-HOME

sudo  reboot


selvaking

Existe o comando "usermod" que é a maneira correta de se fazer isto.

A conta root está funcionando? Vc criou uma senha pra ela antes deste ocorrido?
Dê-me um computador com o Tux que movo o mundo!

Linux User #323049

zekkerj

Olá MthsCbrl,

Sua senha não fica nesse arquivo. O que ocorreu foi que ao trocar o nome do usuário no arquivo /etc/passwd, o sistema ficou inconsistente.

Não é difícil recuperar, mesmo depois de rebootar (aliás, é o que vc vai precisar fazer); dê boot com um LiveCD, monte a partição do seu sistema, encontre o arquivo /etc/passwd lá dentro e edite-o, retornando ao conteúdo original.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

MthsCbrl

#3
Citação de: zekkerj online 18 de Março de 2013, 11:47
Olá MthsCbrl,

Sua senha não fica nesse arquivo. O que ocorreu foi que ao trocar o nome do usuário no arquivo /etc/passwd, o sistema ficou inconsistente.

Não é difícil recuperar, mesmo depois de rebootar (aliás, é o que vc vai precisar fazer); dê boot com um LiveCD, monte a partição do seu sistema, encontre o arquivo /etc/passwd lá dentro e edite-o, retornando ao conteúdo original.


Muito obrigado, ZekkeRJ.

Havia me esquecido de recuperar meu sistema deste modo, hackeando o Grub. Fiquei tão desesperado que esqueci das saídas mais fáceis!
Vou deixar a solução abaixo, caso alguém necessite.


1) Iniciar o sistema através de um Live CD.
2) Pelo Live CD, monte a partição que contém seu / (assim, supondo que você montou em /mnt/partição)
3) Abra o arquivo /mnt/partição/etc/passwd.
4) Procure uma linha que comece com root. Ela vai estar, mais ou menos, assim: root:x:1:1:root:/root:/bin/bash
5) Apague o x entre o primeiro e o segundo dois-pontos.

6) Abra o arquivo /mnt/partição/etc/shadow e procure a linha que inicie com root - apague tudo que você encontrar entre o primeiro e o segundo dois-pontos.
7) Ainda no Live CD, roda os comandos

$  sudo su -
# chroot /mnt/partição
# passwd


Todavia, irá criar uma senha de root fresquinha para o seu GNU/Linux instalado.
Reinicie o computador. Faça o login no modo texto e use o chown para alterar a propriedade do novo diretório de usuário.

zekkerj

Evite usar esse tutorial, pois ele também mexe onde não deve.

Se vc já deu boot no LiveCD, o root entrou sem senha; não é necessário criar uma senha pro root. Apenas monte a partição, entre (como root) no chroot, e restaure o usuário.

Se vc precisar mesmo mexer no arquivo /etc/passwd, primeiro desative as shadow passwords com o comando "pwunconv". Depois de mexer, se tudo estiver certo, vc restaura as shadow passwords com o comando "pwconv".
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D