Неверно сохраняются права при копировании через shell_exec

_Евгений

Новичок
Мне нужно скопировать произвольную попку всеми ее подпапками, файлами и правами на них.
Когда я делаю в консоли cp -R /full/path/from /full/path/to то все происходит как надо.

Когда же я пытаюсь выполнить эту операцию через php, например так:
PHP:
shell_exec("cp -R /full/path/from /full/path/to");
то после копирования и у самой папки to и у ее подпапок права 600 вместо 700, как у папки from. Таким образом папка недоступна для ее открытия.

Точно так же ведут себя и другие подобные команды: exec, ``
php 5.3.2
safe_mode = Off
 

tz-lom

Продвинутый новичок
_Евгений
вопрос в том как настроенно окружение,не забывайте что php работает из другой группы и пользователя и комманды он выполняет от имени себя
 

baev

‹°°¬•
Команда форума
Тема к «программированию на php» отношения практически не имеет.
Переношу.
 

_Евгений

Новичок
_Евгений
вопрос в том как настроенно окружение,не забывайте что php работает из другой группы и пользователя и комманды он выполняет от имени себя
Все-таки непонятности продолжаются а проблемы, которые связаны с ними и запуском сторонних скриптов из php накапливаются.

Команда:
php -r "echo `whoami`;"

дает не какого-то там абстрактного пользователя, а меня.
Команда:
php -r "`touch test.txt`;"

создает файл у которого владелец тоже я, и группа моя.
И у всех процессов, которые запускаются через php, видно, что владелец тоже я. А только вот ведут себя эти процессы так, как будто у них какой-то другой владелец. Как это можно объяснить?
А что значит "вопрос в том как настроено окружение"? Какое именно окружение имеется ввиду?
:(
 

fixxxer

К.О.
Партнер клуба
1) man umask и вокруг
2) твое непонимание того, как работают unix-системы, не имеет никакого отношения к php
 

tz-lom

Продвинутый новичок
_Евгений
php -r ...
ну и? запускаешь то ты от себя эту комманду,так что она работает от тебя
права наследуются от запустившей проги,а не раздаются поимённо
посмотри что тот же код отдаст будучи запущенным с сервера
 
  • Like
Реакции: Dovg

_Евгений

Новичок
_Евгений
php -r ...
ну и? запускаешь то ты от себя эту комманду,так что она работает от тебя
права наследуются от запустившей проги,а не раздаются поимённо
посмотри что тот же код отдаст будучи запущенным с сервера
В данной ситуации я все команды запускал через терминал от себя.



1) man umask и вокруг
2) твое непонимание того, как работают unix-системы, не имеет никакого отношения к php
Спасибо, я наконец разобрался!!!
Проблема оказывается была в том, что один из плагинов делал umask(0111). И после этого в создаваемые папки не могли писаться файлы.
Ура! Теперь ситуация спасена!
 
Сверху