2012-06-28 29 views
5

Estoy buscando una forma de cambiar la contraseña de un usuario root en un sistema Linux a través de un script bash, sin iniciar el sistema. Lo único que he encontrado hasta ahora es quitar la contraseña o usar un chroot, que prefiero no usar.
Sé cómo vaciar la contraseña de root, pero tengo que cambiarla a una contraseña diferente definida anteriormente en el script.
Tengo acceso de administrador a todo el sistema de archivos.
El sistema está utilizando contraseñas ocultas, ¿hay alguna manera de generar una contraseña oculta encriptada sin iniciar sesión/chrooting?
¿Alguna otra forma de cambiar la contraseña de root del script?Cambiar la contraseña de root del script

+1

Algunos consejos [aquí] (http://mywiki.wooledge.org/BashFAQ/078). Hay maneras. Depende de la plataforma. – ormaaj

+0

Gracias por la respuesta. Esta puede ser la solución. No sabía que Debian tenía un comando mkpasswd, probaré esto e informaré. – SharkWipf

Respuesta

8

La contraseña hash está en /etc/shadow. Simplemente puede reemplazarlo con un hash generado (salado). El formato para el hash de contraseña se describe en crypt (3). El valor predeterminado es DES, pero en los sistemas glibc2 que puede contener uno de los varios métodos de cifrado diferentes:

ID | Method 
--------------------------------------------------------- 
1 | MD5 
2a | Blowfish (not in mainline glibc; added in some 
    | Linux distributions) 
5 | SHA-256 (since glibc 2.7) 
6 | SHA-512 (since glibc 2.7) 

Así que una cadena de contraseñas ocultas podría tener este aspecto: $5$saltysalt$KhboodWTnuXJ5siXvWx5mxYXbnuNJOxROfD1inCILfD

En este caso, el primer $ 5 $ parte indica que es un hash SHA-256, la parte media es la sal y el resto es el hash real.

para generar uno, utilizar mejor (3) función de cripta del sistema, por ejemplo, con un programa en C mínimo:

#include <stdio.h> 
#include <crypt.h> 

int main(int argc, char *argv[]) { 
     printf("%s\n", crypt(argv[1], argv[2])); 
} 

compilar con cc mkpass.c -o mkpass -lcrypt y luego correr con la cadena de la contraseña y la sal de texto claro para generar una cadena que puede poner en /etc/shadow:

./mkpass yourpassword yoursalt     # DES (default) 
./mkpass yourpassword '$6$yoursalt$encrypted' # SHA-512 (quote your $) 

La segunda forma podrían no ser compatibles en sistemas Linux mayores. Mejor mira la cadena existente en tu archivo shadow y usa el mismo tipo hash (de la lista $ id $ en la parte superior).

+0

Esto funcionó perfectamente, gracias! – SharkWipf

-1

Presione e en la pestaña Ubuntu en la pantalla del menú de selección del sistema operativo. actualizar el comando de la siguiente manera

rw init=/bin/bash 

Se le caerá el intérprete de comandos de Linux. Cambie su contraseña de root simplemente ingresando el comando llamado passwd root.

Cuestiones relacionadas