Я имею в виду, как динамически останавливать запущенный сценарий оболочки в зависимости от того, какую операцию он выполняет. Потому что некоторые опасные команды, такие как rm
, если использовать регулярное выражение перед запуском, некоторые крайние ситуации могут исчезнуть, например
#!/bin/bash
name=""
$name rm a.py
все равно удалит a.py
.
Итак, есть ли способ определить, что следующая команда запущенного скрипта, и остановить ее, если она совпадает.
Возможно, сложное регулярное выражение может сделать это перед запуском, но я хочу знать, есть ли хорошее решение с запущенными скриптами.
Мне не разрешено изменять сценарии, потому что это было предоставлено другими.
В первую очередь вам не следует запускать ненадежные сторонние скрипты.
Фильтрация вызовов оболочки мощь быть достигнуто, когда они приводят к разветвлению других двоичных файлов с помощью AppArmor, SELinux, GrSec или других инструментов контроля безопасности.
Однако чистый bash может сделать слишком много без разветвления, чтобы этого было достаточно.
Не запускайте сценарий и не читайте его перед запуском. Если вы не доверяете стороннему провайдеру, но должен запустите его, вам останется его прочитать.