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:
Reinicie.
Digite a senha de inicialização, se houver.
Entre no menu do seu carregador de inicialização.
Se o modo de usuário único estiver disponível, selecione-o (o Debian chama isso de 'Modo de recuperação').
Caso contrário, e você executa o GRUB:
Destaque sua opção de inicialização normal.
Pressione epara entrar no modo de edição. Você pode ser solicitado a fornecer uma senha do GRUB lá.
Destaque a linha começando com kernelou linux.
Pressione e.
Adicione a palavra 'single' no final. (não esqueça de acrescentar um espaço!)
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 é:
Monte o volume raiz.
Comece passwdcorrendo.
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:
Obtenha acesso root ao computador (catch-22 - e o verdadeiro truque)
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?
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.
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 :
Entre no menu GRUB e pressione e.
Escolha a linha que começa com kernel, pressione enovamente.
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.
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)
Respostas:
Aqui estão algumas maneiras pelas quais consigo pensar, desde o menos invasivo até o mais invasivo.
Sem reiniciar
Com sudo: se você tiver
sudo
permissões para executarpasswd
, você pode: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
sudo
acesso, mas você fazer têm acesso a editar/etc/{passwd,shadow}
. Abra/etc/shadow
, comsudoedit /etc/shadow
ou comsudo $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:
kernel
oulinux
.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:
e
reboot
, ou, se você conhece seu nível de execução normal, digatelinit 2
(ou seja o que for).Substituindo
init
: 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 desingle
, você adicionainit=/bin/sh
. Isso será executado/bin/sh
no lugar deinit
e fornecerá um shell muito cedo, com quase sem comodidades. Neste ponto, seu objetivo é:passwd
correndo.passwd
comandoDependendo 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/sh
e 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 extraviadocat
e 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:
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 estarvi
no sistema de recuperação). Depois dissoreboot
, 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:
fonte
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ê precisachmod u+w shadow
. Encontre a entrada pararoot
, provavelmente é a primeira e se parece com isso:Apague tudo entre os dois primeiros dois pontos para acabar com:
Então
chmod u-w shadow
. Agora você pode reiniciar o sistema e o root não terá senha. Você pode digitarroot
no prompt de login e ele não solicitará um. Você pode usarpasswd
para definir um.Para ter um cuidado extra:
/etc/shadow
primeiro.fonte
passwd
em um ambiente chroot a partir do CD ao vivo?/etc/shadow
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 :
kernel
, pressione enovamente.single
. Em seguida, pressione ENTERe bsaia dela.Você chegará a um prompt onde poderá digitar
passwd root
e alterar a senha. Em seguida, digitereboot
para reiniciar o sistema.fonte
/boot/grub/grub.conf
para remover a senha bootloader e/etc/inittab
mudar o shell de usuário único para algo como bin / / sh (@pradeepchhetri cc)