iis — получение доступа запрещено для команды cmd с использованием функции php

Я использую PHP под IIS 6.

Когда я использую любую функцию PHP для запуска команд cmd (например, exec() или же system()), он всегда показывает «Доступ запрещен».

Даже такие команды, как ipconfig показывают ту же ошибку «доступ запрещен». Я дал все разрешения моей папке проекта, но она не работала.

Пожалуйста, дайте мне знать кого-либо причину этого.

1

Решение

Когда вы выполняете какую-то команду, используя exec, эта команда будет выполнена с учетной записью пользователя, на котором запущен IIS (который обычно IUSR_«machine-name» на IIS 6), поэтому разрешения вашего проекта не имеют к этому никакого отношения.

Что вам нужно сделать, это оценить права доступа к файлу C:\Windows\System32\cmd.exe и добавить разрешения для IUSR_«machine-name»,

Кроме того, вам, вероятно, потребуется использовать CACLS для изменения списка контроля доступа. замещать IUSR_MachineName на следующую команду для пользователя, выполняющего PHP, а затем выполните эту команду:

CACLS c:\windows\system32\cmd.exe /E /G IUSR_MachineName:F

Если вы получили ошибку и не можете изменить ACL, ваш последний ресурс должен сначала выполнить следующую команду:

takeown /F c:\windows\system32\cmd.exe

Вам также может потребоваться установить правильные разрешения и ACL для команд, которые вы пытаетесь выполнить (например, C:\Windows\System32\schtasks.exe)

ЗаметкаДелайте это с осторожностью. Если у вас есть какая-то уязвимость, которая позволяет вашим пользователям выполнять команды, это может иметь неприятные последствия.

2

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

Других решений пока нет …

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