Restablecer relación usuario “admin” vs grupo “total Access” en Elastix



Restablecer relación usuario “admin” vs grupo “total Access” en Elastix



Hacía algún tiempo atrás me llamo un cliente solicitando ayuda con su central telefónica Elastix porque no tenía acceso a ella; lo primero que se me vino a la mente es que haya olvidado la contraseña, cosa muy fácil de realizar que se encuentra en cualquier parte de la red pues se procede con la siguiente línea ejecutada en la terminal.

sqlite3 /var/www/db/acl.db "UPDATE acl_user SET md5_password='`echo -n engelausmetall|md5sum|cut -d' ' -f1`' WHERE name='admin'"

Esta línea envía un UPDATE a la tabla de acl_user modificando la contraseña del admin, donde el password va a ser modificado a: “engelausmetall”





Bueno el caso no era ese ya que lo que había realmente sucedido que por error cambio el grupo del admin



Dejándolo un usuario “admin” sin ningún permiso alguno, imposibilitándolo de realizar cualquier modificación en la central



Como sabemos Elastix maneja un sistema de ACL, la información de los ACLs se almacena en una base de datos SQLite llamada “acl.db”. Esta base contiene algunas tablas que enlistamos a continuación incluyendo la famosa tabla “acl_user” la cual modificamos la contraseña al principio del post.





De esta base nos va a interesar dos tablas que son:

“acl_group” donde se encuentran los id de los grupos incluyendo el de full acceso asignado para el administrador




Y la última tabla que “acl_membership” que almacena la relación usuario vs grupo; normalmente se vería de la siguiente manera






Una vez que sucedió el error de cambio de relación de grupo “total access” del usuario “admin”  se visualiza con el id del grupo “extension”



Bueno después de tanta explicación pasaremos a la acción primero visualizaremos los id del grupo “total Access” y la relación de usuario vs grupo

1.- Accedemos a la base de datos SQLite

sqlite3 /var/www/db/acl.db

2.- Visualizamos las tablas mencionadas con anterioridad

select * from acl_group;
select * from acl_membership;

3.- Ahora procedemos a salir de la base de datos y ejecutamos la siguiente línea en la terminal para cambiar el último valor 1|1|3 que es el id 3 al id 1 que pertenece al grupo total Access

sqlite3 /var/www/db/acl.db "UPDATE acl_membership SET id_group = '1' WHERE id = '1'"

Quedando restablecido el acceso del usuario administrador




 

3 comentarios:

  1. Saludos amigo que tal. Sabes que tengo un caso parecido pero en vez de cambiar el usuario admin al grupo de extensiones fue cambiado al grupo de operador, he tratado de volver como estaba pero sin éxito, si puedes ayudar te agradecido.

    ResponderEliminar
  2. amigos asi esta en la actualidad.

    al entrar con el usuario y clave admin aparece operador.

    con la clave root pude obtener esto:


    sqlite> select * from acl_group;
    total access|1|administrator
    Operator|2|Operator
    extension user|3|extension
    sqlite> select * from acl_membership;
    2|2|1
    3|1|2
    sqlite> select * from acl_user;
    1|admin|admin|1a7730e90128b04378113e13baa9cb04|341
    2|ssh |ssh |867d849edb29031b2598f9db92e2be90|
    sqlite>

    ResponderEliminar
  3. Men, casi 4 años despues de esta publicación y salvaste mi salud mental

    ResponderEliminar