about-maybe

En el siguiente artículo vamos a echar un vistazo a Maybe. Con esta herramienta vamos a poder saber fácilmente qué hará exactamente un comando o programa antes de ejecutarlo directamente desde la terminal. Esto lo conseguiremos con Maybe. La utilidad ejecuta procesos bajo el control de ptrace (con la ayuda de la biblioteca python-ptrace). La herramienta comenzará a funcionar cuando intercepta una llamada al sistema que está a punto de realizar cambios en el sistema de archivos. Registrará esa llamada y luego modifica los registros de la CPU para redirigir la llamada a una identificación syscall no válida (convirtiéndola efectivamente en una “no operación“) y configurará el valor de esa llamada no operativa a una que indique el éxito de la llamada original.

Esta es una herramienta simple que nos va a permitir ejecutar un comando y ver lo que hace a nuestros archivos sin hacerlo realmente. Después de revisar el resultado que nos listará, podremos decidir si realmente queremos ejecutarlo o no.

Instalar Maybe en Ubuntu

Para poder utilizar esta herramienta, debemos asegurarnos de tener instalado pip en nuestro sistema Gnu/Linux. Si no lo tenemos instalado, podremos hacerlo de manera sencilla como se muestra a continuación. Podremos utilizar la terminal (Ctrl+Alt+T) en Debian, Ubuntu y Linux Mint escribiendo la siguiente orden:

sudo apt-get install python-pip

Cuando ya tengamos instalado pip en nuestro sistema, ya podremos ejecute el siguiente comando para instalar Maybe desde la terminal:

sudo pip install maybe

Podremos saber más acerca de esta herramienta en la página de GitHub del proyecto.

Cómo saber qué hará un comando o programa antes de ejecutarlo

El uso de esta herramienta es extremadamente sencillo. Simplemente tendremos que agregar Maybe delante del comando que queramos ejecutar en nuestra terminal. Como ejemplo se puede ver el siguiente comando que he escrito en mi terminal:

maybe rm -r Ubunlog/

Se puede ver que voy a eliminar mediante el comando “rm” una carpeta llamada “Ubunlog” de mi sistema. En la siguiente captura se puede ver la salida que el comando me muestra en la terminal:

maybe-borrado-directorio

La herramienta Maybe va a realizar 6 operaciones del sistema de archivos y me muestra qué hará exactamente este comando (rm -r Ubunlog/). Ahora ya puedo decidir si debo o no realizar esta operación. Este es un ejemplo un poco sencilla demás, pero creo que se puede ver cual es la idea de la herramienta.

Por si no ha quedado totalmente clara la utilidad, aquí va otro ejemplo. Voy a instalar el cliente de escritorio Inboxer para Gmail. Para ello me voy a situar en la carpeta en la que me he descargado el archivo . AppImage y lo lanzo con Maybe. Esto es lo que el sistema me ha mostrado en la terminal (Ctrl+Alt+T):

maybe-instalacion-archivo-appimage

maybe ./inboxer-0.4.0-x86_64.AppImage

En caso de que la herramienta no detecte ninguna operación sobre el sistema de archivos, la terminal nos mostrará un mensaje de que no detectó ninguna operación sobre el sistema de archivos, por lo que no va a mostrar advertencias.

A partir de ahora, vamos a poder saber fácilmente qué hará un comando o un programa incluso antes de ejecutarlo. Como resultado, el sistema cree que todo lo que estás tratando de hacer está sucediendo realmente, cuando en realidad no es así.

Desinstalar Maybe

Para eliminar esta herramienta de nuestro sistema operativo, solo tendremos que utilizar la opción de desinstalación de pip. Para ello, abrimos una terminal (Ctrl+Alt+T) y escribimos en ella:

sudo pip uninstall maybe

Advertencia

Debemos tener mucho cuidado al usar esta utilidad en un sistema de producción o en cualquier sistema con información sensible. Esta no es una herramienta para ejecutar código no confiable en nuestro sistema. Un proceso que se ejecuta bajo Maybe aún puede causar daños graves a nuestro sistema porque solo un puñado de llamadas de sistema están bloqueadas. También podremos verificar si una operación como eliminar un archivo se realizó con syscalls de solo lectura y modificar su comportamiento en consecuencia.

 

Fuente: ubunlog

¿Quién está en línea?

Hay 5645 invitados y ningún miembro en línea