Maslinux
Las noticias más recientes sobre GNU-Linux

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

¿Alguna vez te preguntaste qué hará un comando de Unix antes de ejecutarlo? No todo el mundo sabe lo que hará un comando o programa en particular. Por supuesto, puedes verificarlo con Explainshell. Necesitas copiar/pegar el comando en el sitio web de Explainshell y te permite saber qué hace cada parte de un comando de Linux. Sin embargo, no es necesario. Ahora, podemos saber fácilmente qué hará exactamente un comando o programa antes de ejecutarlo, directamente desde la Terminal. Una herramienta simple que te permite ejecutar un comando y ver lo que hace a tus archivos, pero sin hacerlo realmente. Después de revisar el resultado enumerado, puedes decidir si realmente deseas ejecutarlo o no.

¿Cómo funciona “maybe“?

Maybe” ejecuta procesos bajo el control de ptrace con la ayuda de la biblioteca python-ptrace. Cuando intercepta una llamada al sistema que está a punto de realizar cambios en el sistema de archivos, registra 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 devolver el valor de esa llamada no operativa a una que indique el éxito de la llamada original. Como resultado, el proceso cree que todo lo que está tratando de hacer está sucediendo realmente, cuando en realidad nada es así.

Advertencia: Debes tener mucho cuidado al usar esta utilidad en un sistema de producción o en cualquier sistema que te interese. Puede causar daños graves, ya que bloqueará un puñado de llamadas de sistema.

Instalando “Maybe

Asegúrate de haber instalado pip en tu sistema Linux. De lo contrario, instálalo como se muestra a continuación según la distribución que uses.

En Arch Linux y sus derivados como Antergos, Manjaro Linux, instala pip usando el siguiente comando:

sudo pacman -S python-pip

En RHELCentOS:

sudo yum install epel-release
sudo yum install python-pip

En Fedora:

sudo dnf install epel-release
sudo dnf install python-pip

En DebianUbuntuLinux Mint:

sudo apt-get install python-pip

En SUSEopenSUSE:

sudo zypper install python-pip

Una vez que pip instalado, ejecuta el siguiente comando para instalar “Maybe“.

sudo pip install maybe 

El uso es absolutamente fácil. Simplemente agrega “maybe” delante de un comando que quieras ejecutar.

Permíteme mostrarte un ejemplo.

$ maybe rm -r ostechnix/

Como puedes ver, voy a eliminar una carpeta llamada “ostechnix” de mi sistema. Aquí está la salida de muestra.

maybe has prevented rm -r ostechnix/ from performing 5 file system operations:

 delete /home/sk/inboxer-0.4.0-x86_64.AppImage
 delete /home/sk/Docker.pdf
 delete /home/sk/Idhayathai Oru Nodi.mp3
 delete /home/sk/dThmLbB334_1398236878432.jpg
 delete /home/sk/ostechnix

Do you want to rerun rm -r ostechnix/ and permit these operations? [y/N] y

 

La herramienta “maybe” realiza 5 operaciones del sistema de archivos y me muestra qué hará exactamente este comando (rm -r ostechnix /). Ahora puedo decidir si debo realizar esta operación o no. Genial, ¿sí? ¡En efecto!

Aquí hay otro ejemplo. Voy a instalar el cliente de escritorio Inboxer para Gmail. Esto es lo que conseguí.

 

$ maybe ./inboxer-0.4.0-x86_64.AppImage 
fuse: bad mount point `/tmp/.mount_inboxemDzuGV': No such file or directory
squashfuse 0.1.100 (c) 2012 Dave Vasilevsky

Usage: /home/sk/Downloads/inboxer-0.4.0-x86_64.AppImage [options] ARCHIVE MOUNTPOINT

FUSE options:
 -d -o debug enable debug output (implies -f)
 -f foreground operation
 -s disable multi-threaded operation

open dir error: No such file or directory
maybe has prevented ./inboxer-0.4.0-x86_64.AppImage from performing 1 file system operations:

create directory /tmp/.mount_inboxemDzuGV

Do you want to rerun ./inboxer-0.4.0-x86_64.AppImage and permit these operations? [y/N]

 

Si no detecta ninguna operación del sistema de archivos, simplemente mostrará un resultado como el siguiente.

Por ejemplo, ejecuto este comando para actualizar mi Arch Linux.

$ maybe sudo pacman -Syu
sudo: effective uid is not 0, is /usr/bin/sudo on a file system with the 'nosuid' option set or an NFS file system without root privileges?
maybe has not detected any file system operations from sudo pacman -Syu.

¿Ves? No detectó ninguna operación del sistema de archivos, por lo que no hubo advertencias. Esto es absolutamente brillante y exactamente lo que estaba buscando. A partir de ahora, puedo saber fácilmente qué hará un comando o un programa incluso antes de ejecutarlo.

Fuente

(Visitada 1 veces, 1 visitas hoy )

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

¿Dinero público? ¡Código Público! – Únete a la campaña de la FSFE

Mediante el uso de software libre, los datos de los ciudadanos se mantienen más seguros y las posibilidades de éxito ataques de los criminales se reduce. El software libre también puede utilizarse como base para mejores aplicaciones, basándose en él para crear programas más eficientes y seguros. En resumen, el Software Libre puede ayudarnos a construir una sociedad mejor para todos.Firma aquí Para más info, Visita este enlace

Populares

  • Dar la guerra con KDE Plasma (Podcast) (142)
  • Aprende a usar las páginas MAN eficientemente (141)
  • UNIX vs GNU/Linux (136)
  • KDE Applications 17.12 viene con muchas mejoras (127)
  • Clonación de discos usando comandos dd y cat para sistemas GNU/Linux (119)
  • Cómo instalar Firefox Quantum en GNU/Linux (30)
  • Cómo instalar temas en Ubuntu 17.10 (21)

Categorías

Archivos

Este blog apoya a Slimbook

Porque producen ultrabooks ensamblados en España con software y hardware libre.

Suscripción por email

Puedes suscribirte a las noticias más recientes por correo electrónico

10 años en la Web

Maslinux.es utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies