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

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

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

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

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

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

Подробнее

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

0
задан 1 July 2020 в 06:01
1 ответ

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

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

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

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

0
ответ дан 1 July 2020 в 06:47

Теги

Похожие вопросы