maybe? Интересная песочница для отладки операций с файлами в скриптах Linux.

ALARM: Продукт, описанный ниже, более не поддерживается автором.

В среде мастхэв программ для Linux пользователя похоже прибыло. На этот раз это утилита, написанная на Python, позволяющая смоделировать последствия выполнения произвольной команды, т.е. ответить на вопрос, а что-же именно произойдет с файлами и дополнительно подстелить соломки. При этом сам разработчик обращает внимание на то, что программа перехватывает лишь часть системных вызовов и не может быть защитой для исполнения неблагонадежного ПО.

В среде мастхэв программ для Linux пользователя похоже прибыло. На этот раз это утилита, написанная на Python, позволяющая смоделировать последствия выполнения произвольной команды, т.е. ответить на вопрос, а что-же именно произойдет с файлами и дополнительно подстелить соломки. При этом сам разработчик обращает внимание на то, что программа перехватывает лишь часть системных вызовов и не может быть защитой для исполнения неблагонадежного ПО.

Требования для утилиты достаточно тривиальны. Это наличие Python 2.7+/3.2+ и пакета python-pip. Maybe работает под Linux и ограниченно в BSD. Под OS X его нет и вероятно не появится, пока в ней не будет реализован python-ptrace. На гитхабе утилита живет по адресу https://github.com/p-e-w/maybe Установка программы осуществляется с помощью pip:

1
sudo pip install maybe

Синтаксис работы следующий:

1
maybe COMMAND [ARGUMENT]

Теперь проверим утилиту в действии. Введем команду:

1
maybe touch test.txt

Программа вернет подобный результат:

1
2
3
maybe has prevented touch test.txt from performing 1 file system operations:
create file /home/admins.su/test.txt
Do you want to rerun touch test.txt and permit these operations? [y/N]

Мы видим, что выполнение команды приведет к созданию файла /home/user/test.txt и утилита спрашивает, хотим ли мы выполнить данную команду. Теперь переименуем файл:

1
maybe mv test.txt test.sh

maybe вернет следующую информацию:

1
2
3
maybe has prevented mv test.txt test.sh from performing 1 file system operations:
rename /home/cucadmuh/test.txt to test.sh
Do you want to rerun mv test.txt test.sh and permit these operations? [y/N]

Согласимся. Теперь сделаем файл исполняемым:

1
maybe chmod +x test.sh
1
2
maybe has prevented chmod +x test.sh from performing 1 file system operations:
change permissions of /home/cucadmuh/temp/test.sh to rwxrwxr-x

Остальные операции отлавливаются аналогичным образом.

Утилита совсем свежая и при активном использовании не всегда мы получаем всю информацию в том виде, в котором хотелось бы. Но уже сейчас она может заинтересовать многих, так как позволяет добавить чуть больше спокойствия при выполнении рискованных операций. На момент написания статьи опубликована версия 0.3.0. С нетерпением ждем развития проекта.


Смотрите также

comments powered by Disqus