Проблема с разрешениями при загрузке изображений с использованием PHP в IIS

StackOverflow https://stackoverflow.com/questions/622318

  •  05-07-2019
  •  | 
  •  

Вопрос

Мы только что переместили веб-сайт на новый сервер, оба сервера работают под управлением Windows Server 2003 с IIS в качестве веб-сервера.

При загрузке изображений мы требуем, чтобы загруженные файлы имели определенные разрешения для учетной записи NETWORK SERVICE. Изображения загружаются с использованием PHP, затем они фильтруются ImageMagick с использованием двоичного файла mogrify.exe для изменения размера и помещаются в новую папку, созданную PHP.

Проблема, с которой мы сталкиваемся, заключается в том, что загруженный файл не наследует разрешения NETWORK SERVICE, хотя папка имеет.

Я запустил filemon, чтобы увидеть все ошибки и получить следующее:

mogrify.exe: 6396 ОТКРЫТЬ C: \ inetpub \ wwwroot \ example.com \ data \ 334480 \ test.jpg ОТКЛЮЧЕННЫЙ ДОСТУП ДЛЯ NT AUTHORITY \ NETWORK SERVICE

Причина, по которой нам требуется доступ к NETWORK SERVICE, заключается в сценарии ASP.NET, который мы используем для изменения размера изображения на лету. Я искал в Google, но не могу найти решение. Есть идеи?

Это было полезно?

Решение

Успешно решив проблему, я изменил dmp загрузки tmp в php.ini на C: \ Test и дал Test необходимые мне права доступа. Я уже сделал это изменение, но при дальнейшей проверке upload_tmp_dir дважды устанавливается в php. INI-файл. Загруженные файлы наследуют разрешения временного каталога.

Другие советы

Вы убедились, что " СЕТЕВАЯ СЛУЖБА " ACL применяется к «этой папке, подпапкам и файлам», где бы она ни применялась. Кроме того, попробуйте создать новую папку где-нибудь еще с тем же списком ACL и посмотрите, не наследуют ли файлы, созданные в PHP, разрешение.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top