Разрешение файлов с nginx [закрыто]

Проект 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.

0
задан 2 January 2018 в 16:03

6 ответов

Из того, что я могу сказать (и почти невозможно определить, что вы действительно пытаетесь решить / добиться - если что-то, вероятно, это проблема с 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 , которая делает в основном то же самое.

0
ответ дан 22 May 2018 в 15:49
  • 1
    Спасибо за ваш ответ человек, это именно то, что я искал, и мне жаль, если я не разъяснил это с первого места – Ali Adil 4 January 2018 в 14:36
  • 2
    Простейшей командой для репликации прав доступа будет: sudo chmod -R ug=rwX,o= /var/www/PROJECTDIR. – David Foerster 23 January 2018 в 03:45

Из того, что я могу сказать (и почти невозможно определить, что вы действительно пытаетесь решить / добиться - если что-то, вероятно, это проблема с 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 , которая делает в основном то же самое.

1
ответ дан 18 July 2018 в 00:04

Из того, что я могу сказать (и почти невозможно определить, что вы действительно пытаетесь решить / добиться - если что-то, вероятно, это проблема с 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 , которая делает в основном то же самое.

1
ответ дан 24 July 2018 в 17:09

Эти два требования внешне противоречивы:

Какие разрешения я должен использовать, чтобы сделать только веб-сервер, способный писать папки и изображения, а кто-либо еще может читать изображения только по запросу URL?

Процесс веб-сервера отвечает за прием, организацию и хранение новых изображений и их последующий поиск. Для выполнения первой задачи необходимы права на запись. Единственный способ - запустить отдельные веб-серверы для хранения и поиска с разными привилегиями, однако я не уверен, что вы надеетесь получить через это: злоумышленник может атаковать сервер загрузки изображений, у которого есть права на запись. [!d3 ]

1
ответ дан 22 May 2018 в 15:49
  • 1
    Как я уже упоминал, я новичок в веб-серверах. Все, что мне нужно (например, CMS), не делает мою папку «Изображения» общедоступной для любого, и все запросы пользователей API могут читать изображения по URL-адресам, но я не знаю, как для этого – Ali Adil 2 January 2018 в 21:52
  • 2
    @AliAdil SOunds, как проблема XY . Также звучит для меня так, как вы должны не пытаться создать свой проект с помощью веб-сервера, не понимая при этом соответствующей файловой системы Linux и ее разрешения. Но это мое мнение как системный администратор, а не как модератор сайта. – Thomas Ward♦ 2 January 2018 в 22:48

Эти два требования внешне противоречивы:

Какие разрешения я должен использовать, чтобы сделать только веб-сервер, способный писать папки и изображения, а кто-либо еще может читать изображения только по запросу URL?

Процесс веб-сервера отвечает за прием, организацию и хранение новых изображений и их последующий поиск. Для выполнения первой задачи необходимы права на запись. Единственный способ - запустить отдельные веб-серверы для хранения и поиска с разными привилегиями, однако я не уверен, что вы надеетесь получить через это: злоумышленник может атаковать сервер загрузки изображений, у которого есть права на запись.

1
ответ дан 18 July 2018 в 00:04

Эти два требования внешне противоречивы:

Какие разрешения я должен использовать, чтобы сделать только веб-сервер, способный писать папки и изображения, а кто-либо еще может читать изображения только по запросу URL?

Процесс веб-сервера отвечает за прием, организацию и хранение новых изображений и их последующий поиск. Для выполнения первой задачи необходимы права на запись. Единственный способ - запустить отдельные веб-серверы для хранения и поиска с разными привилегиями, однако я не уверен, что вы надеетесь получить через это: злоумышленник может атаковать сервер загрузки изображений, у которого есть права на запись.

1
ответ дан 24 July 2018 в 17:09
  • 1
    Как я уже упоминал, я новичок в веб-серверах. Все, что мне нужно (например, CMS), не делает мою папку «Изображения» общедоступной для любого, и все запросы пользователей API могут читать изображения по URL-адресам, но я не знаю, как для этого – Ali Adil 2 January 2018 в 21:52
  • 2
    @AliAdil SOunds, как проблема XY . Также звучит для меня так, как вы должны не пытаться создать свой проект с помощью веб-сервера, не понимая при этом соответствующей файловой системы Linux и ее разрешения. Но это мое мнение как системный администратор, а не как модератор сайта. – Thomas Ward♦ 2 January 2018 в 22:48

Другие вопросы по тегам:

Похожие вопросы: