1

Я хочу выполнить приложение на моем сервере, но не хочу, чтобы это приложение модифицировало какие-либо файлы. Я ожидаю, что приложение будет читать файлы и выводить их в stdout/stderr. Однако я не знаю точно, что приложение может попытаться сделать, потому что оно было предоставлено мне кем-то другим.

Какой самый простой способ сделать это в Linux? Я использую Red Hat 5.

Один из способов, который я могу придумать, - создать нового пользователя, который имеет доступ только на уровне чтения. Есть ли другой способ сделать это без создания пользователя?

1 ответ1

2

Вы можете использовать команду chroot, чтобы ограничить процесс каталогом песочницы.

Если копирование необходимых файлов невозможно, используйте "bind mount", чтобы создать ссылку из каталога chroot на внешнюю файловую систему. Запустите команду монтирования из chroot.

mount /external/path /chroot/sandbox/ref_to_external -o bind

Как вы предложили: вы можете запустить ваше приложение как другой пользователь:

/bin/su - limitedUser -c "/path/to/xxxx"

Объяснение:

 /bin/su : switch user
 - : option to su, make it a login session (source profile for the user)
 limitedUser : user to become
 -c "/path/to..." : command to run

Убедитесь, что limitedUser принадлежит к группе, которая имеет только права на чтение + выполнение, но не имеет прав на запись.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .