Как установить разрешения пользователей с IIS7 для доступа к каталогу сетевого диска

для первого упоминания, этот вопрос является расширением моего предыдущего вопроса Вот.
И моя цель все та же. У меня есть сервер IIS7 (где я использую PHP) на сетевом диске (диск 1), когда я пытаюсь получить доступ к другому сетевому диску (диск 2), где необходимо получить доступ к файлам PDF с pdftotext.exe.

На диске 1 у меня также есть виртуальный каталог / каталог (virDir) в каталоге (tarDir) на диске 2, когда хранятся все файлы, к которым мне нужен доступ.

Когда я запускаю pdftotext.exe сам, все работает как шарм, на диске 1 создается выходной файл с pdfcontent, и все живут счастливыми до смерти. Но когда я пытаюсь выполнить скрипт PHP, хранится на диске 1 в virDir, который запускается pdftotext.exe с помощью команды exec возвращает 1, и файл не создается.

В моем последнем вопросе я понял, что это, вероятно, проблема с разрешениями, но я немного запутался, как их установить. У IIS7 есть несколько внутренних пользователей, таких как IUSR и IIS_IUSRS, и когда я звоню get_current_user(); в php он установлен на testUser.

Итак, какие разрешения мне нужно установить для обоих каталогов (virDir и tarDir), чтобы сервер мог получить к ним доступ?

Я пытался, чтобы testUser установил права «Изменить», «Чтение», «Содержимое папки», «Чтение», «Запись» на tarDir (диск 2), а IUSR, «testUser» и «II_IUSRS» имеют права «Чтение», «Список содержимого папки», «Чтение», «Запись» на tarDir (диск). 1).

Когда я пытаюсь получить доступ к «нормальным» файлам, таким как txt, pptx и т. Д., Я могу читать их без проблем (я использую для этого библиотеку php), но когда я пытаюсь использовать pdftotext.exe, это не удается.

Может кто-то видит, что я делаю не так?

РЕДАКТИРОВАТЬ:
Так что я сделал еще одно тестирование, и когда я запускаю эту команду (я currious, кто запускает командную строку)

echo "<br> who am i in command line? <br>";
$out = array();
exec('cmd /c whoami 2>&1',$out,$exitcode);
echo "<br />EXEC: ( exitcode : $exitcode )";
echo "<hr /><pre>";
print_r($out);
echo "</pre>";

Запущенный на диске 1, он показывает, что командная строка запускается testUser, но когда я запускаю ее на диске 1 virDir, он возвращает 1. Так что, вероятно, возникнут проблемы с разрешениями на выполнение команд в оболочке … Я придумаю любой намек …

3

Решение

Так что, похоже, проблема была не в разрешениях (я установил permisions для обоих каталогов на testUser, и все равно получаю ту же ошибку), но когда я переместил pdftotext.exe в виртуальный каталог, и теперь он выглядит так, как будто он работает. Но мне любопытно, почему …

0

Другие решения

Используйте разрешение как «Все», чтобы к каталогу можно было обращаться без проблем.

шаги:

  1. щелкните правой кнопкой мыши на папке каталога и выберите свойства
  2. На вкладке «Безопасность» нажмите кнопку «Изменить».
  3. Теперь нажмите кнопку Добавить
  4. Укажите «Все» в поле: введите имя объекта и нажмите «Проверить имена», чтобы распознать его.
  5. Дать полный контроль и применить

Недавно я столкнулся с той же проблемой, вышеуказанный шаг решил ее

0

По вопросам рекламы [email protected]