У меня есть очень простой скрипт, который должен проверить, работает ли в основном shell_exec (или оператор backtick):
#!/usr/bin/php5
<?php
echo "This is a PHP script\n";
echo `ls -l /home/stoysnet/`;
Если я не запускаю это как root, оно всегда дает мне:
$ ./foo.php
This is a PHP script
Warning: _shell_exec(): Permission Denied in /home/stoysnet/foo.php on line 5
Я пытался запустить это через PHP несколькими разными способами, но всегда получаю одну и ту же ошибку. Однако когда я помещаю скрипт в подкаталог /etc/
, принадлежащий root:root
и выполняемый как root
, он работает.
Что дает?
Обновление: Просто чтобы уточнить:
- Я пытаюсь запустить его как пользователь
stoysnet
через командную строку. Я могу выполнить команду, переданную на shell_exec
через тот же сеанс.
- Если переместить сценарий на
/etc/somedir/
и выполнить как root
, он будет работать как положено.
- Сам скрипт запускается, только не оператор backtick или
shell_exec
part
- Заданы разрешения на выполнение, и
777
тоже не работает.