Меняется владелец файла на www. Как предотвратить это?

LA
На сайте с 03.06.2008
Offline
105
835

Написал скрипт, который делает своё дело и пишет в файлы (fopen(), fwrite(), fclose(); file_put_contents()) из папки tmp логи. Заметил, что ни с того ни с сего владелец файла меняется на www и при этом скрипт отказывается работать, ссылаясь на то, что нет прав к файлу.

Изначально на все файлы и папку поставлен один и тот же пользователь (права не рутовые) и чмод 777. Так же в скрипте есть curl функции, в которых используется CURLOPT_COOKIEJAR & CURLOPT_COOKIEFILE. У файла, в который пишутся куки тоже иногда меняется владелец на www.

В самом скрипте ничего затрагивающего владельцев файла нет.

Почему меняется владелец? Что происходит? Работаю на vds: FreeBSD 6, php 5.2.6, Apache2 - взят у minivds.

Уже задолбался лазить в ssh и менять владельца обратно.

Помогите, пожалуйста.

DI
На сайте с 03.01.2007
Offline
123
#1

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

Высказывание идиотского утверждения требует на порядок меньше усилий, чем его последовательное и обоснованное опровержение и более того, иногда это опровержение вообще невозможно. © (http://zhurnal.lib.ru/s/shapiro_m_a/raspidiota.shtml)
LA
На сайте с 03.06.2008
Offline
105
#2

DenIT, почему тогда вываливаются сообщения о "Permission denied"? Может права файла на 777 перед открытием всегда ставить?

DI
На сайте с 03.01.2007
Offline
123
#3
lord_alfred:
Изначально на все файлы и папку поставлен один и тот же пользователь (права не рутовые) и чмод 777

А точно 777 стоит на протяжении всех действий с файлом?

А вообще, скорее всего, у вас в php safe_mode включен - он, насколько я помню, запрещает доступ к чужим файлам. Я уже давно администрированием не занимался, но вроде решается это настройками группы для www. Хотя лучше конечно избавиться от safe_mode - геморроя много будет с его ограничениями.

bubblegum777
На сайте с 04.05.2008
Offline
42
#4

Поставьте права 4770 на папку

LA
На сайте с 03.06.2008
Offline
105
#5
DenIT:
А вообще, скорее всего, у вас в php safe_mode включен - он, насколько я помню, запрещает доступ к чужим файлам. Я уже давно администрированием не занимался, но вроде решается это настройками группы для www. Хотя лучше конечно избавиться от safe_mode - геморроя много будет с его ограничениями.

safe_mode выключен.

bubblegum777:
Поставьте права 4770 на папку

почему такая уверенность, что это поможет? Не ставил пока что.

bubblegum777
На сайте с 04.05.2008
Offline
42
#6
lord_alfred:
safe_mode выключен.


почему такая уверенность, что это поможет? Не ставил пока что.

Не проще проверить, чем здесь постить? Сталкивался с подобной проблемой

LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#7
bubblegum777:
Поставьте права 4770 на папку

+1

Этоже простая логика.

Вам можно съесть сыр (файл), но он в комнате (папке) к которому доступ запрещён. Вывод нужен доступ к комнате (папке).

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
bubblegum777
На сайте с 04.05.2008
Offline
42
#8

Права на папку он и так отдал chmod 777; бит в первой цифре для папки определяет владельца создаваемых файлов

LA
На сайте с 03.06.2008
Offline
105
#9
LEOnidUKG:
Вам можно съесть сыр (файл), но он в комнате (папке) к которому доступ запрещён. Вывод нужен доступ к комнате (папке).

на папку стояло 777.

bubblegum777:
Не проще проверить, чем здесь постить? Сталкивался с подобной проблемой

поставил, сейчас потестирую.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий