Проект Mono предлагает компилятор и библиотеку классов для C Sharp, совместимых с .NET 4.0. Совместимость улучшается с более поздними версиями. Ubuntu содержит 2.6.7, я считаю, это последняя долгосрочная стабильная версия. Mono 2.10.2 - это самый последний выпуск и имеет различные улучшения.
Для разработки установите monodevelop. Ubuntu предлагает MonoDevelop 2.4. Вы можете захватить MonoDevelop 2.6 beta 3, если вы приключен - Mono project , который устанавливает Mono 2.10.2 и MonoDevelop 2.6 beta 3.
Из того, что я могу сказать (и почти невозможно определить, что вы действительно пытаетесь решить / добиться - если что-то, вероятно, это проблема с XY), то, что вы пытаетесь сделать, это сделать так, чтобы веб-сервер может читать / записывать папки и файлы, но что «конечная точка», которую у вас есть для клиентов, может читать только данные. Вы не можете использовать его в обоих направлениях без вращения двух полностью независимых веб-серверов с совершенно разными наборами разрешений. Как было сказано в другом ответе, это не защитит вас от того, что ваш основной веб-сервер для чтения / записи защищен от атак.
Из моей интерпретации вам кажется, что вы хотите только пусть веб-сервер и соответствующий backend-дескриптор обращаются к файлам и обслуживающим URL-адресам для конечных клиентов для фактической загрузки (для изображений и т. д.). Это не более чем основные разрешения веб-сервера, которые я затронул в другом ответе. которые я связал в комментариях (и ниже в конце этого ответа.)
Это краткое описание шагов, необходимых для получения базовой структуры разрешений для файловой системы веб-сервера. Вы не должны делать больше, чем это. Если вы это сделаете, то это зависит от того, как вы пишете свой сервер для обработки разрешений, и выходит за рамки того, что здесь отвечает.
basic
sudo mkdir /var/www/PROJECTDIR
Шаг 2. Поместите все ваши файлы проекта там (как пользователь root для начала).
Шаг 2. Поместите все ваши файлы проекта там (в качестве root для начала).
sudo chown -R www-data:www-data /var/www/PROJECTDIR
Шаг 4. Дайте www-data права пользователя / группы для чтения / записи / выполнения для всех каталогов и привилегии чтения / записи для всех файлов в пределах директория проекта.
sudo find /var/www/PROJECTDIR -type d -exec chmod 770 {} \;
sudo find /var/www/PROJECTDIR -type f -exec chmod 660 {} \;
Шаг 4. Дайте www-data права пользователя / группы для чтения / записи / выполнения для всех каталогов и привилегии чтения / записи для всех файлов в каталоге проекта .
Кажется, вам не нужны какие-либо другие учетные записи пользователей самой системы (пользователи без полномочий root, другие пользователи системы и т. д.), чтобы иметь возможность видеть что-либо в подкаталогах здесь , поэтому вышесказанное выполнит это.
Вам также не нужны никакие базовые разрешения, потому что это до e, которые вы написали, чтобы правильно обрабатывать, должен ли данный запрос в свою очередь возвращать заданный URL для данного изображения в системе. Если у него нет такого типа обработки разрешений, это проблема для вашего отдельного бэкэнд, а не проблема NGINX, а не проблема с системными файлами.
Обратите внимание, что, как я сказал выше, это тот же набор инструкций из задачи XY , которая делает в основном то же самое.
Из того, что я могу сказать (и почти невозможно определить, что вы действительно пытаетесь решить / добиться - если что-то, вероятно, это проблема с XY), то, что вы пытаетесь сделать, это сделать так, чтобы веб-сервер может читать / записывать папки и файлы, но что «конечная точка», которую у вас есть для клиентов, может читать только данные. Вы не можете использовать его в обоих направлениях без вращения двух полностью независимых веб-серверов с совершенно разными наборами разрешений. Как было сказано в другом ответе, это не защитит вас от того, что ваш основной веб-сервер для чтения / записи защищен от атак.
Из моей интерпретации вам кажется, что вы хотите только пусть веб-сервер и соответствующий backend-дескриптор обращаются к файлам и обслуживающим URL-адресам для конечных клиентов для фактической загрузки (для изображений и т. д.). Это не более чем основные разрешения веб-сервера, которые я затронул в другом ответе. которые я связал в комментариях (и ниже в конце этого ответа.)
Это краткое описание шагов, необходимых для получения базовой структуры разрешений для файловой системы веб-сервера. Вы не должны делать больше, чем это. Если вы это сделаете, то это зависит от того, как вы пишете свой сервер для обработки разрешений, и выходит за рамки того, что здесь отвечает.
basic
sudo mkdir /var/www/PROJECTDIR
Шаг 2. Поместите все ваши файлы проекта там (как пользователь root для начала).
Шаг 2. Поместите все ваши файлы проекта там (в качестве root для начала).
sudo chown -R www-data:www-data /var/www/PROJECTDIR
Шаг 4. Дайте www-data права пользователя / группы для чтения / записи / выполнения для всех каталогов и привилегии чтения / записи для всех файлов в пределах директория проекта.
sudo find /var/www/PROJECTDIR -type d -exec chmod 770 {} \;
sudo find /var/www/PROJECTDIR -type f -exec chmod 660 {} \;
Шаг 4. Дайте www-data права пользователя / группы для чтения / записи / выполнения для всех каталогов и привилегии чтения / записи для всех файлов в каталоге проекта .
Кажется, вам не нужны какие-либо другие учетные записи пользователей самой системы (пользователи без полномочий root, другие пользователи системы и т. д.), чтобы иметь возможность видеть что-либо в подкаталогах здесь , поэтому вышесказанное выполнит это.
Вам также не нужны никакие базовые разрешения, потому что это до e, которые вы написали, чтобы правильно обрабатывать, должен ли данный запрос в свою очередь возвращать заданный URL для данного изображения в системе. Если у него нет такого типа обработки разрешений, это проблема для вашего отдельного бэкэнд, а не проблема NGINX, а не проблема с системными файлами.
Обратите внимание, что, как я сказал выше, это тот же набор инструкций из задачи XY , которая делает в основном то же самое.
Из того, что я могу сказать (и почти невозможно определить, что вы действительно пытаетесь решить / добиться - если что-то, вероятно, это проблема с XY), то, что вы пытаетесь сделать, это сделать так, чтобы веб-сервер может читать / записывать папки и файлы, но что «конечная точка», которую у вас есть для клиентов, может читать только данные. Вы не можете использовать его в обоих направлениях без вращения двух полностью независимых веб-серверов с совершенно разными наборами разрешений. Как было сказано в другом ответе, это не защитит вас от того, что ваш основной веб-сервер для чтения / записи защищен от атак.
Из моей интерпретации вам кажется, что вы хотите только пусть веб-сервер и соответствующий backend-дескриптор обращаются к файлам и обслуживающим URL-адресам для конечных клиентов для фактической загрузки (для изображений и т. д.). Это не более чем основные разрешения веб-сервера, которые я затронул в другом ответе. которые я связал в комментариях (и ниже в конце этого ответа.)
Это краткое описание шагов, необходимых для получения базовой структуры разрешений для файловой системы веб-сервера. Вы не должны делать больше, чем это. Если вы это сделаете, то это зависит от того, как вы пишете свой сервер для обработки разрешений, и выходит за рамки того, что здесь отвечает.
basic
sudo mkdir /var/www/PROJECTDIR
Шаг 2. Поместите все ваши файлы проекта там (как пользователь root для начала).
Шаг 2. Поместите все ваши файлы проекта там (в качестве root для начала).
sudo chown -R www-data:www-data /var/www/PROJECTDIR
Шаг 4. Дайте www-data права пользователя / группы для чтения / записи / выполнения для всех каталогов и привилегии чтения / записи для всех файлов в пределах директория проекта.
sudo find /var/www/PROJECTDIR -type d -exec chmod 770 {} \;
sudo find /var/www/PROJECTDIR -type f -exec chmod 660 {} \;
Шаг 4. Дайте www-data права пользователя / группы для чтения / записи / выполнения для всех каталогов и привилегии чтения / записи для всех файлов в каталоге проекта .
Кажется, вам не нужны какие-либо другие учетные записи пользователей самой системы (пользователи без полномочий root, другие пользователи системы и т. д.), чтобы иметь возможность видеть что-либо в подкаталогах здесь , поэтому вышесказанное выполнит это.
Вам также не нужны никакие базовые разрешения, потому что это до e, которые вы написали, чтобы правильно обрабатывать, должен ли данный запрос в свою очередь возвращать заданный URL для данного изображения в системе. Если у него нет такого типа обработки разрешений, это проблема для вашего отдельного бэкэнд, а не проблема NGINX, а не проблема с системными файлами.
Обратите внимание, что, как я сказал выше, это тот же набор инструкций из задачи XY , которая делает в основном то же самое.
Эти два требования внешне противоречивы:
Какие разрешения я должен использовать, чтобы сделать только веб-сервер, способный писать папки и изображения, а кто-либо еще может читать изображения только по запросу URL?Процесс веб-сервера отвечает за прием, организацию и хранение новых изображений и их последующий поиск. Для выполнения первой задачи необходимы права на запись. Единственный способ - запустить отдельные веб-серверы для хранения и поиска с разными привилегиями, однако я не уверен, что вы надеетесь получить через это: злоумышленник может атаковать сервер загрузки изображений, у которого есть права на запись. [!d3 ]
Эти два требования внешне противоречивы:
Какие разрешения я должен использовать, чтобы сделать только веб-сервер, способный писать папки и изображения, а кто-либо еще может читать изображения только по запросу URL?Процесс веб-сервера отвечает за прием, организацию и хранение новых изображений и их последующий поиск. Для выполнения первой задачи необходимы права на запись. Единственный способ - запустить отдельные веб-серверы для хранения и поиска с разными привилегиями, однако я не уверен, что вы надеетесь получить через это: злоумышленник может атаковать сервер загрузки изображений, у которого есть права на запись.
Эти два требования внешне противоречивы:
Какие разрешения я должен использовать, чтобы сделать только веб-сервер, способный писать папки и изображения, а кто-либо еще может читать изображения только по запросу URL?Процесс веб-сервера отвечает за прием, организацию и хранение новых изображений и их последующий поиск. Для выполнения первой задачи необходимы права на запись. Единственный способ - запустить отдельные веб-серверы для хранения и поиска с разными привилегиями, однако я не уверен, что вы надеетесь получить через это: злоумышленник может атаковать сервер загрузки изображений, у которого есть права на запись.