Page 1 of 1

Права созданных PHP файлов и папок

Posted: Thu Jun 25, 2009 5:43 pm
by Sonya
Такая ситуация. Есть сервер, на котором PHP запускался под wwwdata, без suPHP и все с этим связанные приятности. Попросила провайдера, чтобы поставил suPHP, сделал.

Я выполнила:
chown -R user:user /my/root/directory
chmod -R 755 /my/root/directory

Сегодня заметила, что не работают скрипты, в которых создаются файлы и папки. Порылась. Оказывается новые папки создаются c правами 700, а новые файлы с правами 600. Естественно в браузере ни те ни другие недоступны. Нужно, чтобы автоматически было 755.

Нужны настройки для всего сервера, слишком много скриптов, чтобы мучиться с umask теперь. Не могу найти, где это поставить можно.

Есть сервер, есть вход root, есть даже confixx, головы нет  ;D

---------------------------------
EDIT: нашла /etc/suphp/suphp.conf , поменяла в нем Umask с 0077 на 0022. Теперь новые файлы создаются с 644, новые папки с 755.

Но проблема осталась с GD2 функцией imagejpeg, этот хрен при создании "тумбинашек" (c) делает права 600 ...  ???

Re: Права созданных PHP файлов и папок

Posted: Thu Jun 25, 2009 6:35 pm
by ZYV
umask по ssh что даёт?

Re: Права созданных PHP файлов и папок

Posted: Thu Jun 25, 2009 6:40 pm
by Sonya
ZYV wrote: umask по ssh что даёт?
0022
(если rootом смотреть)

Стоп, там не imagejpeg, там что-то другое хандрит, но пока не пойму что. Если картинка не уменьшается (в оригинале мелкая), то все нормально с тем же imagejpeg, а вот с тумбинашками не получается...

Re: Права созданных PHP файлов и папок

Posted: Thu Jun 25, 2009 7:17 pm
by Sonya
Нашла бяку, не понимаю, почему так:

1. Загружается картинка и сохраняется при помощи imagejpeg (OK)
2. Если картинка больше, чем надо, создается тумбинашка (OK)
3. Если создалась тумбинашка, то в imagejpeg создается файл с тем же именем (по сути картинка перезаписывается)

Вот, в этом третьем шаге какая-то проблема. Если картинка НЕ существует, то права присваются 644, если пишется "поверх" существующей, то 600. Вставила туда unlink, проблема решилась. Правда, не понимаю каким образом перезапись файла влияет на его права... Мучает меня линукс, ох, как мучает.

Re: Права созданных PHP файлов и папок

Posted: Fri Jun 26, 2009 9:00 am
by ZYV
Sonya wrote: 0022
(если rootом смотреть)
Так не рутом, разумеется, а тем пользователем от которого запускается php. На это есть замечательная команда su.

Я вообще думал, что imagejpeg - это функция GD2. Че-то я не понял, зачем вообще пункт 3, если всё уже создано.

Перезапись не должна влиять, только если процессы не были запущены в разное время до и после смены umask. Ты, надеюсь, перезагружалась после внесения своих изменений?

Re: Права созданных PHP файлов и папок

Posted: Fri Jun 26, 2009 11:09 am
by Sonya
ZYV wrote: Так не рутом, разумеется, а тем пользователем от которого запускается php. На это есть замечательная команда su.
Видишь, как все запущено.
ZYV wrote: Я вообще думал, что imagejpeg - это функция GD2. Че-то я не понял, зачем вообще пункт 3, если всё уже создано.
Да, GD2. Пункт третий выполняется в скрипте только, если загруженная картинка превышает максимально допустимый размер превьюшки. Т.е. в первом пункте картинка сохраняется как есть, а в третьем пункте перезаписывается, если слишком большая.
ZYV wrote: Перезапись не должна влиять...
Это логично. Поэтому я в глубоких раздумьях почему мой сервер нелогично поступает. Причем так непотребно себя вести, он стал с переходом на suPHP.
ZYV wrote: Ты, надеюсь, перезагружалась после внесения своих изменений?
Сейчас я открою тебе страшную тайну  :o : Я не знаю, как перезагрузить сервер. У меня в confixx стоит, что вебсервер автоматически перезагружается каждые 2 минуты. Поэтому, каждый раз, когда я что-то меняю в настройках, я терпеливо жду 5 минут (на всякий пожарный) и потом проверяю. Как правило, все хавается без моей активной перезагрузки.

Re: Права созданных PHP файлов и папок

Posted: Fri Jun 26, 2009 10:30 pm
by ZYV
Sonya wrote: Да, GD2. Пункт третий выполняется в скрипте только, если загруженная картинка превышает максимально допустимый размер превьюшки. Т.е. в первом пункте картинка сохраняется как есть, а в третьем пункте перезаписывается, если слишком большая.
Мда, кривоватый алгоритм, но работать-то должно в любом случае.
Sonya wrote:Сейчас я открою тебе страшную тайну  :o : Я не знаю, как перезагрузить сервер. У меня в confixx стоит, что вебсервер автоматически перезагружается каждые 2 минуты.
Если честно --- понятия не имею что такое confixx. Но есть такая волшебная команда reboot :) набираешь её от root и оп! --- сервер отправляется на перезагрузку. Я бы начал с этого, т.к. моё предположение --- конкурентно запущены старые и новые процессы. Если проблема не решается --- стал бы разбираться дальше.