Depois de apagar a senha no arquivo
/etc/shadow, a nova senha deve ser digitada logo ainda no shell com o comando passwd. Isso se deve porque se você estiver com a inicialização em modo gráfico, poderá dar problemas com o KDE ou o Gnome, e o "su" (Switch User) pode não funcionar.
Isso acontece, às vezes, porque o sistema vai tentar encriptar uma string nula e daí, logicamente, a senha aparecerá vazia, mas não estará vazia. Como o código hash não pode ser descriptografado, ele vai ser gerado de novo e comparado com a sequência disponível anteriormente. Se ambos forem iguais, o acesso é liberado, senão, o acesso é negado.
Se isso acontecer em modo texto, o root e/ou o usuário não conseguirão logar. Não esquecendo também que na maioria das distribuições as permissões do X não se atualizam e daí o root fica sem permissão para usar o ambiente gráfico. Não cabe a nós dizermos por que isso acontece em algumas distribuições.
Sem a senha de root e com a inicialização em modo gráfico poderá dar problema no "su" (Switch User) e, se o sistema inicializar, certos programas ou aplicativos poderão apresentar mau funcionamento.
A sequência de comandos em uma versão pode ser diferente em outra versão da mesma distribuição
Linux.
Às vezes, ao tentar abrir o arquivo /etc/shadow aparecerá uma mensagem citando que existe um arquivo /etc/.shadow.swp, se isso acontecer devemos apagar esse arquivo com o comando: rm /etc/.shadow.swp. Arquivos com a extensão .swp são arquivos de troca que alguns editores de texto criam na memória swap (tipo um backup).
Ao abrir um arquivo com o editor de texto "vi" devemos primeiro pressionar a tecla "Insert" para depois apagarmos ou escrevermos alguma coisa. Para sair e salvar faça o seguinte: pressione a tecla ESC, depois as teclas SHIFT + Ç (os ":"(dois pontos) podem estar na tecla "ç") e depois digite as letras wq (na tela embaixo à esquerda aparecerá :wq ) e dê enter.
As senhas a serem apagadas no arquivo /etc/shadow estão criptografadas entre ":" e ficam após o nome do usuário. Exemplo:
root:$1$gjt&*GSYouIeenAEB6eTLXwh0:1486:0:99999:7:::
Deverá ficar assim:
root::1486:0:99999:7:::
Destrinchando a linha acima:
Os ":" são apenas os separadores dos campos. Os campos do shadow podem e devem ser utilizados para configurações de segurança da senha.
Campo | Significado |
root | Nome do usuário |
$1$gjt&*GSYouIeenAEB6eTLXwh0 | Senha criptografada |
1486 | Número de dias desde que a senha foi alterada |
0 | Número mínino de dias até que a senha possa ser alterada novamente. Zero permite a alteração sem esperar. |
99999 | Número de dias depois do qual devemos alterar a senha. O padrão é 99999, o que dá 274 anos. |
7 | Número de dias nos quais o sistema avisa com antecedência que a senha vai expirar. |
O penúltimo campo (em branco) é o número de dias desde que a conta foi bloqueada e o último campo (em branco também) é um campo reservado (para fazermos nossas besteiras colocando ali o que quisermos).
Os seguintes comandos foram usados:
# mount -o remount,rw / *Remonta o diretório raiz com permissão de leitura(Read) e escrita(Write). O "-o" significa option;
# mount -a *Monta todos os sistemas de arquivos e diretórios que estão disponíveis no arquivo fstab;
# mount *Mostra o que está montado;
# vi /etc/shadow *Entra no arquivo shadow pelo editor de texto "vi";
# sync *Quando você acessa um arquivo, o Linux, por padrão, faz uma cópia deste arquivo para a memória cache. O comando sync força a gravação no HD do que está na memória cache. Use com parcimônia este comando;
# umount -a *Desmonta tudo;
# rm *Remove arquivos;
# passwd *Insere uma nova senha de root;
# passwd nome_do_usuario *Insere uma nova senha de usuário;
< enter > *Executa o comando digitado.
Sempre prefira o parâmetro init=/bin/bash sem rw, para depois, dentro do bash, remontar a raiz com rw, pois às vezes na linha do kernel que você está alterando já tem o parâmetro ro.
Aconselhamos a ler todo o artigo antes de sair feito louco digitando comandos sem ter a mínima noção do que está fazendo. Agora... se você souber o que está fazendo: nem precisa ler este artigo!