Я работаю над webapp (работает на сервере Ubuntu), который позволит пользователю запускать код Octave (в основном Matlab). Тем не менее, я хочу, чтобы они могли читать или изменять папки в назначенной домашней папке.chroot alternative
Я знаю chroot
- это один из способов сделать это, но он небезопасен, и вам нужны привилегии root для chroot (что в идеале приложение не понадобится).
Кроме того, я мог прочитать код пользователя перед запуском и выбросить ошибку, если они попытаются записать файл, но для этого мне нужно будет думать о КАЖДОМ способе, которым пользователь может нарушать мои правила, чтобы предотвратить его ,
Я просмотрел Linux-VServer, но для каждого пользователя потребуется отдельный виртуальный сервер (если только я не ошибаюсь).
Редактировать: Я могу настроить соединение SSH и заключить в тюрьму соединение, но это кажется излишним ресурсо-жадным.
Есть ли способ, которым я мог бы заключить в тюрьму пользователя или процесс в определенную папку, не используя chroot
?
Если у вас есть возможность изменения операционных систем: FreeBSD имеет более функциональные возможности для заключения в тюрьму процессов. Вероятно, другие вкусы BSD тоже. – Thomas