Raspbian está configurado de manera predeterminada para que la cuenta raíz no pueda iniciar sesión con una contraseña. Esto se hace comenzando con una entrada en la /etc/password
que comienza:
root:x:0:0:
Los campos están separados por dos puntos y se explican en man 5 passwd
(tenga en cuenta que 5
, ya que man passwd
le dará la página del comando man passwd
; la sección 5 es para los archivos de configuración, y en este caso tienen el mismo nombre). Aquí el primero es el nombre ( root
), el tercero y el cuarto son los números numéricos uid y gid (ambos 0
), y el segundo es para la contraseña. Para la mayoría de las entradas de esta será x
, lo que indica la contraseña real está en otro archivo, /etc/shadow
.
Tenga en cuenta que "la contraseña real" no se almacena realmente en ningún lugar. Lo que se almacena shadow
es un hash unidireccional de la contraseña real. Un hash unidireccional es el resultado de un proceso que siempre producirá lo mismo (permitiendo que se verifique su contraseña), pero es irreversible. En otras palabras, si alguien tiene en sus manos shadow
, no hay forma de deducir la contraseña del hash. Sin embargo, si pueden modificar shadow
, obviamente pueden desactivar o cambiar lo que funcionará como contraseña. Pero nunca podrán descubrir sus contraseñas. Es por eso que incluso root
no puede hacer eso (aunque la raíz siempre puede cambiarlos a otra cosa sin necesitar el original).
En el caso de root, la entrada en shadow
comienza así, como lo hace para la mayoría de las otras cuentas del sistema:
root:*:
El *
indica que actualmente no hay una contraseña posible que pueda usarse para esta cuenta.
El usuario root puede cambiar esto, sin embargo, usando el passwd
comando para establecer una nueva contraseña, que reemplazará la *
con el hash mencionado anteriormente (estos siempre comienzan $n$
donde n
hay algún valor aleatorio que se usa como "sal" para el hash, pero usted no No necesito entender eso).
De todos modos, cuando configuro una tarjeta a partir de una imagen nueva, lo primero que hago es entrar /etc/passwd
y eliminar la x
entrada de la raíz, por lo que ahora comienza:
root::0:0
Observe que ahora no hay un segundo campo. Esto significa que no hay contraseña y todo lo que tiene que hacer es escribir root
en el indicador de inicio de sesión y se inicia sesión como root
. Luego puede usar passwd
para configurar uno.
Entonces, tiene dos opciones aquí, pero ambas requieren que saque la tarjeta del pi y acceda a la segunda partición desde otro sistema (que puede leer / escribir particiones ext4).
Restaurar sudoers
. Si tiene una imagen de referencia, esto es fácil, simplemente puede volver a ponerlo como estaba reemplazándolo. De lo contrario, es la opción más complicada ya que debe saber lo que está haciendo (y su historial sudoers
no es tan bueno ...).
Edite /etc/passwd
y elimine eso x
como se describió anteriormente, vuelva a colocar la tarjeta, inicie sesión como root
, cree una contraseña. Por supuesto, aún tendrá que arreglarlo sudoers
, pero la prueba y el error serán más fáciles ya que si realmente lo root
es, siempre podrá acceder a él.
Si no tiene un sistema que pueda acceder a los sistemas de archivos ext4 (un "Live CD" de Debian es una buena opción aquí), entonces está atascado. Tendrá que volver a actualizar la tarjeta y comenzar de nuevo.