Итак, моя группа пытается создать среду с разделяемым сервером для различных веб-сервисов. Я думаю, мы остановились на настройке disable_functions и disable_classes для всего сайта в php.ini и php_admin_value, чтобы заставить open_basedir в httpd.conf каждого приложения.
для скриптов php и переключение пользователей пассажира для скриптов ruby.
Однако нам все еще нужно найти что-то для python. Passenger поддерживает python, но не для обеспечения безопасности отдельных подкаталогов для отдельных приложений (это все или ничего на уровне домена).
Какие-либо предложения?
(И если что-либо из предыдущего не имеет смысла - ну, я тот парень, который должен настроить поддержку python, а не парень, который установил поддержку php или ruby, так что есть еще кое-что ", а затем немного волшебства случается "шаги туда с моей точки зрения").






Ну, есть система под названием virtualenv, которая позволяет вам запускать Python в своего рода безопасной среде и настраивать / загружать / отключать эти среды на лету. Я мало что знаю об этом, но вы должны всерьез взглянуть на это; вот описание с его веб-страницы (просто погуглите, и вы найдете):
The basic problem being addressed is one of dependencies and versions, and indirectly permissions. Imagine you have an application that needs version 1 of LibFoo, but another application requires version 2. How can you use both these applications? If you install everything into /usr/lib/python2.4/site-packages (or whatever your platform's standard location is), it's easy to end up in a situation where you unintentionally upgrade an application that shouldn't be upgraded.
Or more generally, what if you want to install an application and leave it be? If an application works, any change in its libraries or the versions of those libraries can break the application.
Also, what if you can't install packages into the global site-packages directory? For instance, on a shared host.
In all these cases, virtualenv can help you. It creates an environment that has its own installation directories, that doesn't share libraries with other virtualenv environments (and optionally doesn't use the globally installed libraries either).
«Безопасная среда», которую вы упомянули в контексте virtualenv, просто безопасна для кода. Он только заботится о том, чтобы скрипт, который запускается в venv, использовал правильный интерпретатор Python и библиотеки, он не применяет какую-либо «политику» безопасности, которая была упомянута в вопросе.