Como podemos alterar a senha do root?

Respostas:

63

Aqui estão algumas maneiras pelas quais consigo pensar, desde o menos invasivo até o mais invasivo.

Sem reiniciar

Com sudo: se você tiver sudopermissões para executar passwd, você pode:

sudo passwd root

Digite sua senha e digite uma nova senha para root duas vezes. Feito.

Edição de arquivos : isso funciona no caso improvável que você não tem pleno sudoacesso, mas você fazer têm acesso a editar /etc/{passwd,shadow}. Abra /etc/shadow, com sudoedit /etc/shadowou com sudo $EDITOR /etc/shadow. Substitua o campo de senha da raiz (todos os caracteres aleatórios entre o segundo e o terceiro ponto :) pelo campo de senha do seu próprio usuário. Salve . O local tem a mesma senha que você. Faça login e altere a senha para outra coisa.

Estes são os mais fáceis.

Reinicialização necessária

Modo de usuário único : isso foi explicado por Renan. Funciona se você pode acessar o GRUB (ou o seu gerenciador de inicialização) e editar a linha de comando do Linux. Não funciona se você usa Debian, Ubuntu e alguns outros. Algumas configurações do carregador de inicialização exigem uma senha para fazer isso, e você deve saber para prosseguir. Sem mais delongas:

  1. Reinicie.
  2. Digite a senha de inicialização, se houver.
  3. Entre no menu do seu carregador de inicialização.
  4. Se o modo de usuário único estiver disponível, selecione-o (o Debian chama isso de 'Modo de recuperação').
  5. Caso contrário, e você executa o GRUB:
    1. Destaque sua opção de inicialização normal.
    2. Pressione epara entrar no modo de edição. Você pode ser solicitado a fornecer uma senha do GRUB lá.
    3. Destaque a linha começando com kernelou linux.
    4. Pressione e.
    5. Adicione a palavra 'single' no final. (não esqueça de acrescentar um espaço!)
    6. Pressione Entere inicialize a sub-rotina editada. Alguns GRUBs usam Ctrl- X, alguns usam b. Diz qual está na parte inferior da tela.

Seu sistema será inicializado no modo de usuário único. Algumas distribuições não solicitarão uma senha root neste momento (o Debian e o Debian o fazem). Você é a raiz agora. Mude sua senha:

mount / -o remount,rw
passwd # Enter your new password twice at the prompts
mount / -o remount,ro
sync # some people sync multiple times. Do what pleases you.
reboot

e reboot, ou, se você conhece seu nível de execução normal, diga telinit 2(ou seja o que for).

Substituindoinit : superficialmente semelhante ao truque do modo de usuário único, com praticamente as mesmas instruções, mas requer muito mais proeza com a linha de comando. Você inicializa seu kernel como acima, mas, em vez de single, você adiciona init=/bin/sh. Isso será executado /bin/shno lugar de inite fornecerá um shell muito cedo, com quase sem comodidades. Neste ponto, seu objetivo é:

  1. Monte o volume raiz.
  2. Comece passwdcorrendo.
  3. Mude sua senha com o passwdcomando

Dependendo da configuração específica, elas podem ser triviais (idênticas às instruções para o modo de usuário único) ou altamente não triviais: carregar módulos, inicializar o RAID de software, abrir volumes criptografados, iniciar o LVM etc. Sem init, você não está executando daemons ou outros processos, mas /bin/she seus filhos, então você está literalmente sozinho. Você também não tem controle de tarefas, portanto, tenha cuidado com o que digitar. Um foi extraviado cate você pode ter que reiniciar se não conseguir sair dele.

Disco de resgate : é fácil. Inicialize um disco de recuperação de sua escolha. Monte seu sistema de arquivos raiz. O processo depende de como seus volumes são estratificados, mas eventualmente se resume a:

 # do some stuff to make your root volume available.
 # The rescue disk may, or may not do it automatically.
 mkdir /tmp/my-root
 mount /dev/$SOME_ROOT_DEV /tmp/my-root
 $EDITOR /tmp/my-root/etc/shadow
 # Follow the `/etc/shadow` editing instructions near the top
 cd /
 umount /tmp/my-root
 reboot

Obviamente, $SOME_ROOT_DEVé o nome do dispositivo de bloco atribuído ao seu sistema de arquivos raiz pelo disco de recuperação e $EDITORé o seu editor favorito (que pode estar vino sistema de recuperação). Depois disso reboot, permita que a máquina inicialize normalmente; A senha do root será a do seu próprio usuário. Faça o login como root e altere-o imediatamente.

Outras maneiras

Obviamente, existem inúmeras variações para o acima. Todos eles se resumem a dois passos:

  1. Obtenha acesso root ao computador (catch-22 - e o verdadeiro truque)
  2. Mude a senha do root de alguma forma.
Alexios
fonte
Enfim, fazer isso remotamente? Supondo que o SSH foi encerrado.
CMCDragonkai
11
Sem o SSH (ou, presumindo qualquer outro método assustadoramente inseguro, como rsh ou telnet), você não tem acesso remoto à máquina, portanto não pode alterar a senha. A menos, é claro, que o computador de destino tenha um problema conhecido remotamente explorável, que pode ajudá-lo de alguma forma a gerar um shell. O pensamento me aterroriza mais do que um daemon telnet rodando nele. :)
Alexios
Então eu teria que me teleportar fisicamente lá para consertar?
CMCDragonkai
WRT "Altere a senha do root de alguma forma", veja aqui: unix.stackexchange.com/a/168422/25985
goldilocks
7

Isso deve funcionar em praticamente qualquer distro, eu acho.

Se você puder acessar a partição raiz de outro sistema, por exemplo, um CD ao vivo, poderá, como raiz, editar /etc/shadow; primeiro você precisa chmod u+w shadow. Encontre a entrada para root, provavelmente é a primeira e se parece com isso:

root:$6$asdG0[..etc...]ae/:15666:0:99999:7:::

Apague tudo entre os dois primeiros dois pontos para acabar com:

root::15666:0:99999:7:::

Então chmod u-w shadow. Agora você pode reiniciar o sistema e o root não terá senha. Você pode digitar rootno prompt de login e ele não solicitará um. Você pode usar passwdpara definir um.

Para ter um cuidado extra:

  • Crie uma cópia de backup do /etc/shadowprimeiro.
  • Não efetue login como ninguém, exceto como root até definir uma nova senha. Isso não é crítico, mas protege contra a possibilidade teórica de malware sem privilégios, fazendo algum tipo de saudação ("Ei, talvez não haja senha de root ..."). OMI meio rebuscado.
Cachinhos Dourados
fonte
Isso funcionará, mas, garoto, isso me faz estremecer * para remover a senha de uma conta root. Presumo que o Ubuntu não o deixe cair em um shell raiz no nível de execução 1? Ou uma idéia melhor não seria executar passwdem um ambiente chroot a partir do CD ao vivo?
18714 SailorCire
Se você se sentir mais seguro tentando esses outros métodos primeiro, vá em frente. Mas, desde que você não deixe o sistema sem uma senha de root, tudo ficará bem. Não haveria sentido em malware que tentasse explorar isso, porque, se estivesse em execução na inicialização, já teria privilégios de root. Portanto, não faça login como qualquer outra pessoa primeiro, eu acho (pode ser um problema em sistemas que não permitem root no gerenciador de exibição, a menos que você possa mudar para o console). Mesmo assim, parece bastante improvável.
precisa
@SailorCire ^^^
goldilocks
Também tenho muita dúvida sobre a possibilidade de malware. No entanto, a ideia por trás do que sugeri é que proíbe o tipo de mentalidade "Ah, eu vou mudar mais tarde, porque funciona agora", na qual muitos de nós caímos.
17119 SailorCire
Você também pode consultar esta resposta para obter maneiras de gerar manualmente uma senha para/etc/shadow
NullUser
4

A julgar pelas tags, acredito que você esteja usando o RHEL, mas esta solução deve funcionar igualmente bem para todas as distros.

Se a senha root for esquecida, você poderá inicializar no modo de usuário único e usá-lo para alterar a senha. Esta abordagem é descrita no guia passo a passo da Red Hat :

  1. Entre no menu GRUB e pressione e.
  2. Escolha a linha que começa com kernel, pressione enovamente.
  3. No final desta linha, coloque single. Em seguida, pressione ENTERe bsaia dela.

Você chegará a um prompt onde poderá digitar passwd roote alterar a senha. Em seguida, digite rebootpara reiniciar o sistema.

Renan
fonte
11
Isso funcionará apenas se você não tiver nenhuma senha de inicialização.
Pradeepchhetri
11
E se você não estiver usando / sbin / sulogin para shell de usuário único (ele solicitará a senha do root).
James O'Gorman
Se você pode obter para o sistema de arquivo que você pode editar /boot/grub/grub.confpara remover a senha bootloader e /etc/inittabmudar o shell de usuário único para algo como bin / / sh (@pradeepchhetri cc)
NullUser