Cambiar password Odoo desde terminal usando CryptContext (Compatible con Odoo 13.0, 14.0 y 15.0)

Cambiar password Odoo desde terminal usando CryptContext (Compatible con Odoo 13.0, 14.0 y 15.0)

Las contraseñas son la primera línea de defensa al proteger cualquier sistema, incluido Odoo. Muchas veces perdemos el acceso ya sea por un descuido o porque el proveedor NO la entregó; una buena alternativa es actualizarla desde terminal siempre y cuando tengamos acceso SSH y tengamos instalado en el sistema una sesión interactiva de python3 (Funciona para versión Odoo 12.0 o posterior). Esto permite que la seguridad de tu sistema sea mucho más confiable. En este tutorial, aprenderás cómo cambiar una contraseña en Odoo 13.0.

 

Primero deberás ingresar a una terminal vía SSH de preferencia el server donde tienes instalado Odoo ya que posteriormente utilizaremos una librería que es dependencia del mismo.

 

Ingresar el comando python3 y presionar [enter].

 

~$ python3

 

Posteriormente importaremos la librería CryptContext de la siguiente manera:

 

>>> from passlib.context import CryptContext

 

Enseguida asignaremos el nivel de ecriptación o HASH como se muestra a continuación:

 

>>> setpw = CryptContext(schemes=['pbkdf2_sha512'])

 

Después nos queda usar el método encrypt pásandole como parámetro nuestro nuevo password así:

 

>>> setpw.encrypt('NuevoPassword123.22%6')

 

El resultado lo debemos almacenar en el portapapeles copiando el resultado. Ejemplo de Hash:

 

pbkdf2_123123asdasd091281818179qweqnahg195a$a

 

Por último debemos actualizar el password desde postgres para ello haremos lo siguiente:

 

~$ sudo su postgres


~$ psql NombreDeLaBaseDeDatos


Si todo lo ejecutamos correctamente recibiremos el siguiente mensaje:

 

You are now connected to database "NombreDeLaBaseDeDatos" as user "postgres".

 

Ejecutaremos un comando UPDATE a la tabla res_users usando el ID del Administrador de Odoo (normalmente es el ID 2 en nuevas instalaciones).


NombreDeLaBaseDeDatos=# UPDATE res_users SET password='HashResultanteDelPasoAnterior' WHERE id=2;

 

Por ultimo salimos de la sesión de base de datos activa con el siguiente comando:


NombreDeLaBaseDeDatos =# \q

Ejecutamos exit para salir del usuario postgres.

~$ exit

Ingresamos al login de Odoo con nuestra IP o dominio Y

¡Ahora podemos ingresar con el usuario Administrador y nuestro Nuevo Password (NuevoPassword123.22%6)!

 

Fuente: Odoo Forum