shell_exec на php - PullRequest
       1

shell_exec на php

1 голос
/ 09 апреля 2011

Я использую команду shell_exec для отправки команд на мой школьный сервер Unix. Я могу делать что-то вроде ls echo и тому подобное, но все, что связано с созданием или удалением файла, не работает. Я подумал, что могу просто создать сценарий для команды, которую я хочу выполнить, и запустить сценарий с помощью shell_exec, однако это очень утомительный процесс, есть ли другой способ обойти эту проблему ??

Спасибо

Ответы [ 2 ]

2 голосов
/ 09 апреля 2011

shell_exec() - очень плохой способ выполнения команд только потому, что, оставляя его открытым, вы оставляете свой сервер намного более уязвимым, если кто-то использует ваш PHP-код или загружает PHP-файл.Вместо этого, если вы можете, вы должны использовать функции PHP, такие как mkdir() и fopen($file, '(r|a|w)+), чтобы ваш файл создавался, если он не существует.Фактически, оставляя shell_exec(), exec(), pass_thru() и т. П. В вашем коде, любые эксплойты могут выполнять команды оболочки на вашем сервере.

Теперь, что касается исходного вопроса, проверили ли выразрешения для файлов и каталогов, с которыми вы пытаетесь работать?Пользователь, работающий с вашим PHP, должен иметь разрешение на работу с файлами и каталогами, к которым вы пытаетесь получить доступ.Если вы не уверены, просто chmod 777 любые ваши файлы и каталоги, которые вам нужно использовать в PHP.

0 голосов
/ 09 апреля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...