¿Cómo podemos cambiar la contraseña de root?


Respuestas:


63

Aquí hay algunas maneras en que puedo pensar, desde las menos intrusivas hasta las más intrusivas.

Sin reiniciar

Con sudo: si tiene sudopermisos para ejecutar passwd, puede hacer:

sudo passwd root

Ingrese su contraseña, luego ingrese una nueva contraseña para root dos veces. Hecho.

Edición de archivos : esto funciona en el caso poco probable de que no tenga sudoacceso completo , pero tiene acceso para editar /etc/{passwd,shadow}. Abierto /etc/shadow, ya sea con sudoedit /etc/shadowo con sudo $EDITOR /etc/shadow. Reemplace el campo de contraseña de root (todos los caracteres aleatorios entre el segundo y tercer punto :) con el campo de contraseña de su propio usuario. Salvar. El local tiene la misma contraseña que tú. Inicie sesión y cambie la contraseña a otra cosa.

Estos son los fáciles.

Reinicio requerido

Modo de usuario único : esto fue explicado por Renan. Funciona si puede acceder a GRUB (o su cargador de arranque) y puede editar la línea de comandos de Linux. No funciona si usa Debian, Ubuntu y algunos otros. Algunas configuraciones del cargador de arranque requieren una contraseña para hacerlo, y debe saberlo para continuar. Sin más preámbulos:

  1. Reiniciar.
  2. Ingrese la contraseña de inicio, si la hay.
  3. Ingrese al menú de su gestor de arranque.
  4. Si el modo de usuario único está disponible, selecciónelo (Debian lo llama 'Modo de recuperación').
  5. Si no, y ejecutas GRUB:
    1. Destaque su opción de arranque normal.
    2. Presione epara ingresar al modo de edición. Es posible que se le solicite una contraseña GRUB allí.
    3. Resalte la línea que comienza con kernelo linux.
    4. Presione e.
    5. Agregue la palabra 'single' al final. (¡no olvides anteponer un espacio!)
    6. Presione Entery arranque la estrofa editada. Algunos gusanos utilizan Ctrl- X, algún uso b. Dice cuál es en la parte inferior de la pantalla.

Su sistema se iniciará en modo de usuario único. Algunas distribuciones no le pedirán una contraseña de root en este momento (Debian y las basadas en Debian lo hacen). Eres root ahora. Cambia tu contraseña:

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

y reboot, o, si conoce su nivel de ejecución normal, diga telinit 2(o lo que sea).

Reemplazoinit : superficialmente similar al truco del modo de usuario único, con en gran medida las mismas instrucciones, pero requiere mucha más destreza con la línea de comando. Arrancas tu kernel como se indicó anteriormente, pero en lugar de eso single, agregas init=/bin/sh. Esto se ejecutará /bin/shen lugar de init, y le dará una cáscara muy temprana con casi ninguna comodidad. En este punto, su objetivo es:

  1. Montar el volumen raíz.
  2. Ponte a passwdcorrer.
  3. Cambia tu contraseña con el passwdcomando.

Dependiendo de su configuración particular, estos pueden ser triviales (idénticos a las instrucciones para el modo de usuario único) o altamente no triviales: cargar módulos, inicializar RAID de software, abrir volúmenes cifrados, iniciar LVM, etc. Sin init, no estás ejecutando dæmons ni ningún otro proceso, sino /bin/shsus hijos, por lo que estás literalmente solo. Tampoco tienes control de trabajo, así que ten cuidado con lo que escribes. Se extravió caty es posible que deba reiniciar si no puede salir de él.

Disco de rescate : este es fácil. Arranca un disco de rescate de tu elección. Monta tu sistema de archivos raíz. El proceso depende de cómo se distribuyen los volúmenes, pero finalmente se reduce 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_DEVes el nombre del dispositivo de bloque asignado a su sistema de archivos raíz por el disco de rescate y $EDITORes su editor favorito (que puede tener que estar vien el sistema de rescate). Después de rebooteso, permita que la máquina arranque normalmente; la contraseña de root será la de tu propio usuario. Inicie sesión como root y cámbielo de inmediato.

Otras maneras

Obviamente, hay innumerables variaciones a lo anterior. Todos se reducen a dos pasos:

  1. Obtenga acceso de root a la computadora (catch-22 - y el verdadero truco)
  2. Cambiar la contraseña de root de alguna manera.

De todos modos para hacer esto de forma remota? Suponiendo que SSH se apagó.
CMCDragonkai

1
Sin SSH (o, suponiendo cualquiera de los otros métodos inseguros como rsh o telnet), no tiene acceso remoto a la máquina, por lo que no puede cambiar la contraseña. A menos que, por supuesto, la computadora de destino tenga un problema conocido explotable de forma remota que pueda ayudarlo a generar un shell. El pensamiento me aterroriza más que un demonio telnet corriendo sobre él. :)
Alexios

¿Entonces tendría que teletransportarme físicamente allí para arreglarlo?
CMCDragonkai

WRT "Cambiar la contraseña de root de alguna manera", ver aquí: unix.stackexchange.com/a/168422/25985
goldilocks

7

Esto debería funcionar en casi cualquier distribución, creo.

Si puede acceder a la partición raíz desde otro sistema, por ejemplo, un CD en vivo, puede como raíz desde allí editar /etc/shadow; Primero tienes que hacerlo chmod u+w shadow. Encuentre la entrada para root, es probable que sea la primera y se vea más o menos así:

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

Borra todo entre los dos primeros dos puntos para que termines con:

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

Entonces chmod u-w shadow. Ahora puede reiniciar el sistema y la raíz no tendrá contraseña. Simplemente puede escribir rooten el indicador de inicio de sesión y no solicitará uno. Luego puede usar passwdpara configurar uno.

Para tener mucho cuidado:

  • Crea una copia de seguridad de /etc/shadowprimero.
  • No inicie sesión como nadie más que root hasta que haya establecido una nueva contraseña. Esto no es crítico, pero protege contra la posibilidad teórica de que el malware no privilegiado haga algún tipo de granizo ("Oye, tal vez no hay una contraseña de root ..."). Un poco descabellado IMO.

Eso funcionará, pero chico me hace * encoger * para eliminar la contraseña de una cuenta raíz. ¿Supongo que Ubuntu no te deja en un shell de raíz en el nivel de ejecución 1? ¿O no sería una mejor idea ejecutar passwden un entorno chroot desde el CD en vivo?
SailorCire

Si se siente más seguro probando esos otros métodos primero, continúe. Pero siempre y cuando no salga del sistema sin una contraseña de root, esto debería estar bien. No habría ningún punto en el malware que intentara explotar esto, porque si se estuviera ejecutando en el arranque, de todos modos ya tiene privilegios de root. Entonces, no inicie sesión como cualquier otra persona primero, supongo (podría ser un problema en los sistemas que no permiten la raíz a través del administrador de pantalla, a menos que pueda cambiar a la consola). Incluso entonces parece bastante improbable.
Ricitos

@SailorCire ^^^
goldilocks

Tengo muchas dudas sobre la posibilidad de malware también. Sin embargo, la idea detrás de lo que sugerí es que prohíbe el tipo de mentalidad "Oh, lo cambiaré más tarde, porque funciona ahora" en el que muchos de nosotros caemos.
SailorCire

También puede consultar esta respuesta para obtener formas de generar manualmente una contraseña para/etc/shadow
NullUser

4

A juzgar por las etiquetas, supongo que está utilizando RHEL, pero esta solución debería funcionar igual de bien para todas las distribuciones.

Si olvida la contraseña de root, puede iniciar en modo de usuario único y usarla para cambiar la contraseña. Este enfoque se describe en la guía paso a paso de Red Hat :

  1. Ingrese al menú GRUB y presione e.
  2. Elija la línea que comienza kernel, presione enuevamente.
  3. Al final de esta línea, pon single. Luego presiona ENTERy bsaca de él.

Eventualmente llegarás a un mensaje donde puedes escribir passwd rooty cambiar la contraseña. Luego escriba rebootpara reiniciar el sistema.


1
Esto funcionará solo si no tiene ninguna contraseña de arranque.
pradeepchhetri

1
Y si no está utilizando / sbin / sulogin para el shell de usuario único (solicitará la contraseña de root).
James O'Gorman el

Si puede acceder al sistema de archivos, puede editar /boot/grub/grub.confpara eliminar la contraseña del gestor de arranque y /etc/inittabcambiar el shell de usuario único a algo como / bin / sh (cc @pradeepchhetri)
NullUser
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.