Права доступа к файлам

Привет всем У меня есть вопрос относительно прав доступа к файлам.

Я создал файл журнала, скажем, «logfile.log», который улавливает определенные ошибки, теперь, чтобы он был доступен для записи, я установил его разрешения на 777. Но когда я это делаю, он становится доступным для чтения через их браузер. .

как бы я решил эту проблему?

Благодарность


person chicane007    schedule 12.08.2010    source источник
comment
поместить его куда-нибудь не по пути веб-сервера? IE: поместите его в /var/log/mywebserver/logfile.log, к которому PHP может получить доступ, но не к веб-серверу apache? ~~ то есть вы ПРОБОВАЛИ этот подход?   -  person jcolebrand    schedule 12.08.2010
comment
я даже не знал, что могу поместить любые файлы на свой хост вне веб-сервера, спасибо за этот совет!   -  person chicane007    schedule 12.08.2010
comment
~ ну, это зависит от того, как настроен ваш сервер ... вы используете хостинг-провайдера? вы должны проверить с ними на то, что доступно. но они, вероятно, не будут жаловаться на открытие файла журнала в /var/log для вас, если он размещен. (Совет: добавление @drachenstern заставит МНЕ увидеть ваш комментарий быстрее, например, как я поставил @chicane007 в начале этого комментария, просто приветственный совет... добро пожаловать в StackOverflow...) : вы видели serverfault.com?   -  person jcolebrand    schedule 12.08.2010
comment
@drachenstern спасибо за прием! У меня был еще один вопрос, который я хотел бы задать вам, что, по вашему мнению, является правильными настройками разрешений файлов по умолчанию для файлов PHP, которые находятся на веб-сервере? он должен быть строго читаем владельцем и все?   -  person chicane007    schedule 13.08.2010
comment
Зависит от того, что вам нужно... Я также рекомендую вам задать этот вопрос на serverfault.com, так как я считаю, что на этот вопрос лучше всего ответить в это сообщество. Это сообщество посвящено использованию кода для написания приложений, а это — управлению серверами. Но чтобы ответить на ваш вопрос, лучшим значением по умолчанию является тот, который позволяет пользователю веб-сервера (например, apache или apacheuser, но не пользователю root) читать большинство файлов, записывать несколько и выполнять еще меньше. но это решение для каждого файла. большинство других пользователей только читают или не читают вообще (они могут читать онлайн, верно?) ;)   -  person jcolebrand    schedule 13.08.2010


Ответы (1)


Ваш файл журнала никогда не должен находиться в каталоге, обслуживаемом вашим веб-сервером.

Кроме того, режим 777 делает файл журнала доступным для записи любому в системе, а также делает его исполняемым. Более разумный режим — 644, или 600, чтобы быть немного (на самом деле два бита) более параноидальным.

person Thomas    schedule 12.08.2010
comment
ОК, я поместил этот файл вне каталога веб-сервера, но кажется, что не что иное, как 777, не будет писать в этот файл, есть идеи, почему это произойдет? Если я попробую 644 или 600, файл просто не будет записан... спасибо! - person chicane007; 12.08.2010
comment
Этого не должно быть. Является ли каталог файла журнала доступным для записи и исполняемым для пользователя, от имени которого работает PHP? - person Thomas; 12.08.2010
comment
да, каталог настроен на запись, чтение и выполнение для владельца, сам файл может быть записан только в том случае, если он установлен для записи другими, независимо от того, доступны ли для записи владелец или группа, не имеет значения .... - person chicane007; 12.08.2010
comment
К вашему сведению, для всех, у кого есть эта проблема.... я отправил электронное письмо своему хосту, и вот что они говорят: если вы не внедрили php-cgiwrap, тогда php запускается как модуль веб-сервера Apache. Таким образом, он запускается под именем пользователя «никто», и для любых файлов, принадлежащих вам, должны быть установлены соответствующие разрешения, чтобы этот другой пользователь мог писать в эти файлы. Если вы реализуете php-cgiwrap, то весь ваш php будет работать под вашим фактическим именем пользователя, а не «никто», и это позволит php изменять файлы, принадлежащие вам, без необходимости устанавливать разрешения на открытие, такие как 777. - person chicane007; 13.08.2010
comment
@ chicane007 ~ Причина этого в том, что я ответил в комментарии выше, прежде чем я прочитал этот ответ. Это связано с разрешениями учетной записи на доступ к этим файлам. Лучше всего настроить PHP так, как вам нужно, так что зайдите в serverfault и позвольте этим парням помочь вам... - person jcolebrand; 13.08.2010