Назад | Перейти на главную страницу

Как остановить запущенный сценарий оболочки, если он выполняет какие-то опасные операции?

Я имею в виду, как динамически останавливать запущенный сценарий оболочки в зависимости от того, какую операцию он выполняет. Потому что некоторые опасные команды, такие как rm, если использовать регулярное выражение перед запуском, некоторые крайние ситуации могут исчезнуть, например

#!/bin/bash
name=""
$name rm a.py

все равно удалит a.py.

Итак, есть ли способ определить, что следующая команда запущенного скрипта, и остановить ее, если она совпадает.

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

Больше

Мне не разрешено изменять сценарии, потому что это было предоставлено другими.

В первую очередь вам не следует запускать ненадежные сторонние скрипты.

Фильтрация вызовов оболочки мощь быть достигнуто, когда они приводят к разветвлению других двоичных файлов с помощью AppArmor, SELinux, GrSec или других инструментов контроля безопасности.

Однако чистый bash может сделать слишком много без разветвления, чтобы этого было достаточно.

Не запускайте сценарий и не читайте его перед запуском. Если вы не доверяете стороннему провайдеру, но должен запустите его, вам останется его прочитать.