Утилита для проверки того, что сделает команда с вашими файлами, без её реального выполнения

Допустим, вы хотите выполнить rm -rf pic*, но вы на самом деле уверены, что вам нужно именно это? На сто процентов уверены?

Утилита maybe позволяет проверить, что сделает с файлами определённый скрипт или команда, но не выполнять их на самом деле. Получив полный список действий, можно применить их или отказаться от изменений.

maybe

Как это работает?

Maybe запускает процесс под контролем ptrace и перехватывает все системные вызовы, изменяющие файловую систему. Эти данные записываются, а затем производятся изменения регистров CPU так, чтобы вызов был некорректным, но вместе с тем по всем признакам для вызывающего процесса завершился успехом.

В результате, команда продолжает выполняться, как будто изменения произошли, хотя их не было.

Однако авторы предупреждают, что использовать maybe для выполнения подозрительного кода не рекомендуется. Такой процесс всё равно может нанести существенный вред вашей системе, так как перехватываются не все системные вызовы. Используйте утилиту только для проверки своих собственных ошибок в командах, которые вы всё равно собираетесь выполнить.

Установка

Для maybe нужен Python 2.7+/3.2+. Если у вас есть пакетный менеджер pip, то просто выполните

pip install maybe

от имени su или из virtualenv-окружения. Чтобы собрать из исходного кода, склонируйте репозиторий и выполните

pip install -e .

в коре директории проекта.

Поддерживаемые ОС

На текущий момент полностью поддерживается Linux. Под FreeBSD/OpenBSD есть проблемы с перехватом дочерних процессов.

Использование

maybe COMMAND [ARGUMENT]...

Никакие другие параметры не принимаются.

Пример

maybe mkdir test

Лицензия

Автор проекта Emanuel Weidmann, код распространяется по GNU GPLv3.