Пользователь с минимальными правами
Есть ли возможность создать пользователя, у которого не будет прав write и execute? Будет использоваться только его euid для запуска приложений.
Есть ли возможность создать пользователя, у которого не будет прав write и execute? Будет использоваться только его euid для запуска приложений.
Есть программа-сервер и клиенты. Сервер перенаправляет stdin/out клиентов в каналы и запускает бинарник/java апплет. С бинарниками проблем нет, а вот с java проблема. Перенаправление stdin работает хорошо, а stdout работает странно: при первом же вызове poll возвращает POLLHUP. Вызов апплета делаю через java -Xmx100m -cp ./dir class
Вот мой код
( Вот мой код )
Здравствуйте. Ситуация: есть программа-сервер на C, которая запускает программы-клиенты (не только бинарники, но и java апплеты и python скрипты) и общается с ними с помощью каналов (перенаправив stdin/stdout). Работает он по такой схеме: запускает все клиенты, приостанавливает их; по очереди восстанавливает, обменивается сообщениями и приостанавливает опять. Клиенты уже ограничены в памяти и времени отклика. У меня есть непосредственный доступ к исходному коду клиентов (я их обрабатываю/компилирую перед запуском сервера).
Проблема: не дать клиенту выполнить потенциально опасный код (fork, exec, write, работа с файловой системой, сетью, потоками и т.д., тоесть [практически] все системные вызовы). Если остановить клиента перед системным вызовом, сервер сам его завершит, поскольку клиент не сможет вовремя ответить. Я пересмотрел исходный код ejudge, там используется ptrace(0x4281, 0, 0, 0), но нужно устанавливать патч ядра. Как можно организовать подобную защиту?