Я бы хотел (из кода) запустить процесс с сильно ограниченными привилегиями.
- Может сохранять файлы, но только в своей папке и ограничен квотой.
- Может использовать память в пределах квоты.
- Время ЦП (включая любые запускаемые им подпроцессы) ограничено квотой.
- Невозможно общаться с любым другим процессом, кроме его собственного и интерфейса.к моей программе контроллера через стандартный ввод / вывод.
- Невозможно взаимодействовать с любыми устройствами.
- Больше ничего не видно в сети.
(IЯ строю систему в виде сетки. Запущенный код может быть враждебным.)
Вот что я получил до сих пор ... - Заранее, создайте несколько пользователей, grid00-grid99.Назначьте каждому диску / памяти / ЦПУ квоту в соответствии с настройками.
Чтобы запустить процесс ...
- Выберите неиспользуемого пользователя gridxx.
- Создайте папку внутридомашняя папка пользователя.
- Жесткая ссылка / bin, / usr и т. д. в этой папке.
- Создайте новые папки / home / gridxx и / tmp в этой папке.
- Скопируйте в файлы программы.
- Переключитесь на пользователя gridxx.
- chroot в новую папку.
- Запустите новый процесс.
Я что-то пропустил?
Большое спасибо.