Ограничить доступ Python Exec к одному каталогу

У меня есть скрипт Python, который выполняет строку кода с функцией exec. Мне нужен способ ограничить доступ чтения / записи скрипта к текущему каталогу. Как мне этого добиться?

Или есть ли способ ограничить среду скрипта python напрямую через командную строку, чтобы при запуске интерпретатора он не разрешал запись из каталога? Могу ли я сделать это с помощью virtualenv? Как?

В общем, мое приложение - это веб-портал, где люди могут писать и запускать приложения на Python и получать ответ - и я разместил это на heroku. Теперь может быть несколько пользователей с несколькими папками, и ни один пользователь не должен иметь доступа к папкам других или даже к системным файлам и папкам. Права доступа должны определяться пользователем в приложении nodejs (веб-приложении), а не локальным пользователем. Как мне этого добиться?

2 ответа

Выполнить код как пользователь, который владеет только этим конкретным каталогом и не имеет разрешений где-либо еще?

Однако, если вы не полностью доверяете источнику кода, вы просто не должны использовать exec при любых обстоятельствах. Помните, скажем, вы придумали решение на python... код exec мог буквально отменить любые ограничения, которые вы на него наложили, прежде чем совершать его гнусные действия. Если вы сообщите нам проблему, которую вы пытаетесь решить, мы, вероятно, сможем придумать лучшую идею.

Вопрос сводится к следующему: как мне безопасно выполнить код, которому я не доверяю.
Ты не можешь
Либо вы знаете, что делает код, либо не выполняете его.
Вы можете иметь изолированную среду для вашего процесса, например, с помощью Docker. Но варианты использования далеки от выполнения небезопасного кода.

Другие вопросы по тегам