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