Это мнимый пример того, что я люблю делать. Не воспринимайте это слишком буквально.Могу ли я загрузить библиотеку или процесс с ограниченными разрешениями?
Скажите, что мой процесс запускается как www-data, и у меня есть сценарий lua под названием thedevil.lua. Он попытается удалить, испортить и вызвать как можно больше проблем. Я хотел бы запустить процесс (или загрузить общий объект), который имеет интерпретатор lua, и он попытается разрушить все мои веб-сайты, поскольку пользователь является www-данными.
Есть ли способ, который я могу сказать, позволяет создать этот процесс (или загрузить библиотеку) с правами LIMITED. Скажем, скрипт находится в /var/www/devilscript/thedevil.lua
. Я бы хотел дать ей разрешения для /tmp/www/devilscript
и /var/www/devilscript/
. Это возможно? Я не хочу создавать нового пользователя с именем devilscript и давать ему ограниченные разрешения, кроме запуска процесса как этого пользователя. Я просто хочу сказать, что я www-data, но я хочу только дать этому процессу/lib подмножество того, что я могу сделать.
-edit- Не могли бы вы дать мне имя функций для выполнения указанного так или двоичного с более низкими разрешениями?
-edit2- Могут ли окна делать что-то вроде того, что я спросил?
Я использую C++, но не могли бы вы дать мне имя c-метода, который делает это? общая библиотека мудрая я только видел dlopen, и у этого не было этого варианта. Процесс мудрый я еще не смотрел. –
К сожалению, это зависит как от точной ОС, так и от версии той операционной системы, которую вы используете, и даже в этом случае используемые методы неприятно усложняются. Боюсь, это потребует руководства. Если вы обнаружите свою ОС в приведенном выше листинге, попробуйте найти руководства для этой конкретной ОС - например, в Linux вы можете проверить, поддерживает ли ваша система SELinux или Apparmor, или что у вас есть, и обратитесь к руководству. – Perry
arg. Я не хотел chroot (чего я еще не сделал до этого) или создавал пользователей bc, может быть тысячи, и проект (который динамически создается) может переименовать. Это было бы так просто, если бы я мог сказать, что этот exe работает как виртуальный пользователь или я-но-ограниченный. -edit- я использую debian, но я надеялся, что linux сделает это изначально. –