Автор Тема: PHP не выполняет команды ОС  (Прочитано 11644 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sergo_stavropol

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 27
  • +0/-0
  • 0
    • Просмотр профиля
    • http://plyazhi.ru
PHP не выполняет команды ОС
« : 16 Декабря 2002, 03:07:25 »
PHP не выполняет команды операционной среды (Linux)

в частности, сначала обнаружил, что не сработало архивирование зааплоаденного файла
exec("gzip -c price.xls > price.gz");

а потом начал пытаться выполнить любые другие команды - тот же результат.  В чем дело? что нужно настроить? у меня root-доступ к серверу.

Оффлайн rembo

  • Больной
  • Постоялец
  • ***
  • Сообщений: 219
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.v4.ru
PHP не выполняет команды ОС
« Ответ #1 : 16 Декабря 2002, 06:02:52 »
а что говорит при этом? секрет? или поделишься?
программист должен все сделать так, чтоб потом ничего не делать

Оффлайн gad

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 28
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
PHP не выполняет команды ОС
« Ответ #2 : 16 Декабря 2002, 06:56:43 »
А раньше выполнял?

Оффлайн sergo_stavropol

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 27
  • +0/-0
  • 0
    • Просмотр профиля
    • http://plyazhi.ru
PHP не выполняет команды ОС
« Ответ #3 : 16 Декабря 2002, 09:21:44 »
rembo
да ничего не говорит, просто не делает ничего

gad
раньше я просто не пользовался ими

Предвижу еще один вопрос:  из командной строки в самой ОС все выполняется, в скриптах - нет

Оффлайн Bang

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 120
  • +0/-0
  • 0
    • Просмотр профиля
    • http://anna.comcor.ru
PHP не выполняет команды ОС
« Ответ #4 : 16 Декабря 2002, 10:19:31 »
может, попробовать прописать полный путь к каталогам, где лежат эти команды?
best wishes!
bang

Оффлайн gad

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 28
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
PHP не выполняет команды ОС
« Ответ #5 : 16 Декабря 2002, 12:32:30 »
apache выпускает из домашней директории?
типа вайлик почитать в другом месте  скажем /home/bin/?

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
PHP не выполняет команды ОС
« Ответ #6 : 16 Декабря 2002, 12:37:28 »
А у тебя может safemode включен? Посмотри phpinfo();
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
PHP не выполняет команды ОС
« Ответ #7 : 16 Декабря 2002, 13:03:24 »
круто
одинаковые ответы в одинаковой последовательности
http://phpclub.net/talk/showthread.php?s=&threadid=27851

Оффлайн sergo_stavropol

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 27
  • +0/-0
  • 0
    • Просмотр профиля
    • http://plyazhi.ru
PHP не выполняет команды ОС
« Ответ #8 : 16 Декабря 2002, 14:36:37 »
safe_mode = off

функция  posix_geteuid ();
вернула мне "nobody"  - стало  ясно, что тут собака порылась.  
с другой стороны,  не совсем понял, что делает эта функция - выявляет того, кто выполнил скрипт или того кто его создал

ls -l говорит, что создал его я, а не nobody

Оффлайн sergo_stavropol

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 27
  • +0/-0
  • 0
    • Просмотр профиля
    • http://plyazhi.ru
PHP не выполняет команды ОС
« Ответ #9 : 16 Декабря 2002, 15:33:28 »
хотя я посмотерл phpinfo на других серверах - у всех USER/GROUP = nobody...

и еще что я заметил: все что я пробовал раньше - это команды, которые записывают файлы на сервер. Сделал
"exec ("ls"); - получилось.  Следовательно, нету прав...
Права у скрипта, который содержит команды OS: -rwxr-xr-x ,
на папку в котрой он лежит: drwxr-xr-x

Мужики, если я во что-то туго втыкаюсь, то сорри - я совсем не знаю UNIX, но вот обстоятельства сложились так что нужно втыкаться. и как можно скорее.. так что если сморожу какую глупость или юуду тормозить - поймите правильно...

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
PHP не выполняет команды ОС
« Ответ #10 : 16 Декабря 2002, 17:11:09 »
Я тоже в юниках не очень секу, но всё же: попробуй поставить права доступа 777.;)
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

Оффлайн gad

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 28
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
PHP не выполняет команды ОС
« Ответ #11 : 17 Декабря 2002, 06:20:57 »
не нада так ставить!

Оффлайн sergo_stavropol

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 27
  • +0/-0
  • 0
    • Просмотр профиля
    • http://plyazhi.ru
PHP не выполняет команды ОС
« Ответ #12 : 17 Декабря 2002, 11:01:43 »
все, спасибо, со всем справился.
на папку в которой  я делал всякие exec("gzip.."), exec("cp..") сменил owner\'a
chown Myusername.nobody /home/../folder - то есть дал группе nobody как владельцу php и запускателю Апача побольше прав на эту папку.

Права на нее сделал drwxrwxrwx (ну а по-другому ведь никак)

отсюда вытекает следующий вопрос:  
если все смогут в нее писать (так как последняя группа rwx), то это же наводит на соответствующие мысли...  
если бы туда писались неисполняемые файлы - это еще полбеды,  но они не могут быть неисполняемыми, так как в них эти пресловутые команды OC.  

то есть, юзер сможет залить туда php или cgi скрипт  с какой-нибудь гадостью и выполнить его...

конечно, чтобы пользователь попал на страницу с формой для закачки файла,  ему нужно будет авторизоваться, но во-первых, бывают случаи, когда авторизацию обходят :), а во -вторых, теоритечески обладатели логинов и паролей для авторизации тоже могут оказаться любителями "повзламывать что-нибудь"  В этой связи я даю при закачке  файлу  принудительно имя price.xls, но вот недавно прочитал в хакере, что и это легко обходят: не помню о чем там шла речь, но в общем, проверку на расширение обошли кажется с помощью перлового символа "конец строки"

может,  стоит тему  отдельную создать по  этому вопросу ?
« Последнее редактирование: 17 Декабря 2002, 11:09:48 от sergo_stavropol »

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
PHP не выполняет команды ОС
« Ответ #13 : 17 Декабря 2002, 11:48:01 »
а зачем на эту папку x?
хотя РНР выполнится и без х.
а у тебя что - эта папка под корнем веб-сервера?
Не приходила мысль расположить ее повыше?

Оффлайн sergo_stavropol

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 27
  • +0/-0
  • 0
    • Просмотр профиля
    • http://plyazhi.ru
PHP не выполняет команды ОС
« Ответ #14 : 17 Декабря 2002, 12:12:26 »
RomikChef

мне нужно чтобы после закачки файла он (файл) попадал в директорию, доступную через веб, так как он должен скачиваться пользователями

если я положу его вне /htdocs,  то никто ведь его скачать не сможет
« Последнее редактирование: 17 Декабря 2002, 12:27:09 от sergo_stavropol »

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28