Установка возможности на сценарии не будет эффективной. Это - аналогичная ситуация как не работа setuid
обдумал сценарий. Подобный как в последнем случае это - реализация как execve
хижина дескрипторов и безопасность, рассуждающая позади него (для деталей см.: Позвольте setuid на сценариях оболочки).
Я думаю, что у Вас есть эти опции
установите возможности на самом интерпретаторе (на самом деле скорее копия его)
запишите исполняемый файл обертки, который будет иметь hardcoded логику, чтобы выполнить Ваш сценарий и установить желаемые возможности на этом исполняемом файле
chroot
можно было бы неправильно использовать такую оберткуВ обоих случаях необходимо было бы удостовериться, что набор возможностей выживет execve
путем установки inheritable
флаг. Вы могли бы также использовать pam_cap
распределенный с libcap
обычно, для фактической активации желаемых возможностей конфигурацией только для выбранных пользователей.
И в целом Вы хотите удостовериться, что никто не может изменить поведение Вашего интерпретатора изменяющей средой, например. PYTHON_PATH
или что-то подобное.