2013-03-27 3 views
2

Я работаю над webapp (работает на сервере Ubuntu), который позволит пользователю запускать код Octave (в основном Matlab). Тем не менее, я хочу, чтобы они могли читать или изменять папки в назначенной домашней папке.chroot alternative

Я знаю chroot - это один из способов сделать это, но он небезопасен, и вам нужны привилегии root для chroot (что в идеале приложение не понадобится).

Кроме того, я мог прочитать код пользователя перед запуском и выбросить ошибку, если они попытаются записать файл, но для этого мне нужно будет думать о КАЖДОМ способе, которым пользователь может нарушать мои правила, чтобы предотвратить его ,

Я просмотрел Linux-VServer, но для каждого пользователя потребуется отдельный виртуальный сервер (если только я не ошибаюсь).

Редактировать: Я могу настроить соединение SSH и заключить в тюрьму соединение, но это кажется излишним ресурсо-жадным.

Есть ли способ, которым я мог бы заключить в тюрьму пользователя или процесс в определенную папку, не используя chroot?

+0

Если у вас есть возможность изменения операционных систем: FreeBSD имеет более функциональные возможности для заключения в тюрьму процессов. Вероятно, другие вкусы BSD тоже. – Thomas

ответ

0

Проверьте lxc.

http://lxc.sourceforge.net/

LXC является ... "LXC является пакет управления для Linux в пользовательском пространстве контейнеров." Это похоже на виртуализацию групп.

+0

docker.io тоже довольно приятный. –

+0

lxc не обеспечивает надежную изоляцию. По-моему, это по дизайну. – cmc

0

Вы можете использовать Coffer, который довольно хорошенькая обертка вокруг chroot. Он делает много тяжелой работы для вас.

https://github.com/Max00355/Coffer