shell_exec (user apache)

  • Автор темы sergo_stavropol
  • Дата начала

sergo_stavropol

Guest
shell_exec (user apache)

Заметил одну странность и не пойму как понять в чем ее причина.
Ос - Linux, веб-сервер - apache

1. PHP && Shell_exec
Работает скрипт примерно след.содержания:
PHP:
$ht_file  = "/var/testwww/html/test/pdf/pb.html"; 
$ps_file  = "/var/testwww/html/test/pdf/pb1.ps"; 
$cmd1 = "html2ps -e koi8-r ".$ht_file." > ".$ps_file; 
var_dump(shell_exec($cmd1));      // string(0) "" 
var_dump(shell_exec("whoami")); // string(7) "apache "
То есть выполняется перловый бинарник html2ps - конвертит html в postscript.

2. Shell
Даем пользователю apache доступ к /bin/bash и выполняем то же, но в командн.оболочке:
Код:
#su - apache
$html2ps -e koi8-r /var/testwww/html/test/pdf/pb.html  > /var/testwww/html/test/pdf/pb2.ps
3. Результаты
Код:
#ls -l 
-rw-r--r--  1 apache apache 53278 фев 7 12:32 pb1.ps
-rw-r--r--  1 apache apache 51618 фев 7 12:32 pb2.ps
-rw-r--r--  1 apache apache  3253 фев  7 12:32 pb.html
--------------------------------------------------------
Получаются после выполнения одной и тойже команды pb1.ps и pb2.ps разного размера. Нашел чем они отличаются - несколькими строками, где есть инфа о шрифтах. Может быть когда команда выполняется "через апач", нет какой-либо информации о переменных окружения юзера?

-~{}~ 07.02.05 13:07:

Так и есть.
Переменные окружения.
Выполнил команду set в php-скрипте и в оболочке, получил разные результаты.
Но как определить какую установить чтобы все работало правильно?

-~{}~ 07.02.05 14:27:

хм..
а что, системную переменную окружения нельзя установить в php-скрипте?
PHP:
shell_exec("export aaa=bbb"); 
var_dump(shell_exec("set"));    // переменной aaa нет
-~{}~ 07.02.05 15:42:

никаких соображений не будет?
 
Сверху