НСПК / 24.12.24 / перетяжка / 2W5zFK76vmn
НСПК / 24.12.24 / перетяжка / 2W5zFK76vmn
НСПК / 24.12.24 / перетяжка / 2W5zFK76vmn

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

Аватар Типичный программист
Отредактировано

6К открытий6К показов

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

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

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

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

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.

Следите за новыми постами
Следите за новыми постами по любимым темам
6К открытий6К показов