Эта тема на forum.dklab.ru


Дмитрий К.: Права доступа
Добрый день! (Да, да, это опять я).
Объясните, пожалуйста, про права доступа:
1) В chmod первая цифра по логике всегда - 7?
2) Как происходит определение, кто - автор файла, а кто - нет? Как я понимаю, если зайти на сервер, например, по FTP, то автору будет предоставлен полный доступ. Зачем тогда вообще эта первая цифра?
3) Если все файлы лежат в корне на сервере, то каждому их них надо устанавливать ПД?
4) Дайте, пожалуйста, ссылку на описание этого вопроса с примерами, Google даёт только ссылки на поверхностную информацию, из которой мало чего понятно.
Спасибо...
Ant:
1). При чём тут PHP?
2). Ищите пособия вроде «Linux для начинающих» (можно искать по любым *nix). Там очень хорошо эти моменты расписаны.
Ant:

спустя 11 минут; написано за 1 минуту
Во, блин, дзен. (-;

BikerSoul:
дзен реален, a это какая-то лажа
BikerSoul:
временный глюк :)
Юрий Насретдинов:
Дмитрий К.:
1) 0
2) нет, если права стоят например 0077, то даже прочитать файлик нельзя
3) chmod 0777 *
4) не знаю, купите книжку про Unix
Евгений Галашин:
1) 0
А если это директория? или ссылка?
Как происходит определение, кто - автор файла, а кто - нет?
Кто создал — тот и автор. Если автор или рут не указали иное.
Dmitri R. S.:
Евгений Галашин:
chmod требует восьмеричный параметр, а восьмеричное число в РНР задаётся первым нулём
Евгений Галашин:
Dmitri R. S.:
Не замечал. Как писал в шелле chmod 666, так и пишу...
Дмитрий К.:
Вот есть у меня index.php, который пишет в pass_log.dat пароли и сообщения, введённые пользователями через форму, содержащуюся в этом скрипте. Пароли - секретная информация, сообщения - наоборот - скрипт отражает их в броузере.
Хостинг на *nix. Есть 2 папки: www + cgi-bin.
Вопросы:
1)Как правильно раскидать файлы index.php и pass_log.dat по папкам root, www, cgi-bin?
2)Какие права доступа выставлять для этих папок и файлов и надо ли?
Юрий Насретдинов:
Дмитрий К.:
1) Для полной уверенности можно кинуть ту папку, в которой лежат папки www и cgi-bin. Если такой возможности нет (или просто чем-то не понравилось), можно создать любую папку, например /www/megasupersecret/ , и в неё положить этот файлик, и создать .htaccess с таким содержимым: «deny from all»
2) Я рекомендую выставлять права 0777 для всех файлов и папок, если хостинг хороший :). Если плохой... То сменить хостера на такой, где было бы безопасно выставлять такие права.

Как писал в шелле chmod 666, так и пишу...
В шелле можно так писать, но почитайте мануал к функции chmod в PHP
Евгений Галашин:
но почитайте мануал к функции chmod в PHP
Где-то кроме названия форума употребляется слово PHP?
То сменить хостера на такой, где было бы безопасно выставлять такие права.
VDS как минимум???
Юрий Насретдинов:
VDS как минимум???
Хех... Нет. Просто нормального хостера. Одного такого я знаю, например... Даже 2...
Дмитрий К.:
1) Для полной уверенности можно кинуть ту папку, в которой лежат папки www и cgi-bin. Если такой возможности нет (или просто чем-то не понравилось), можно создать любую папку, например /www/megasupersecret/ , и в неё положить этот файлик, и создать .htaccess с таким содержимым: «deny from all»
2) Я рекомендую выставлять права 0777 для всех файлов и папок, если хостинг хороший . Если плохой... То сменить хостера на такой, где было бы безопасно выставлять такие права.
Т.е. права доступа - это прежде всего защита от хостера? Я в нескольких местах читал, что ПД ограничивают, например запись в файл, при этом дописывалось "ЧЕРЕЗ СКРИПТ". Это как понимать? Есть разница с точки зрения посетителя сайта, какие там выставлены права?
И ещё вопрос: если, например, сделать на папку XXX - deny from all, и поместить в неё файл, с которым работает скрипт, расположенный в папке для всеобщего обозрения, то сам-то этот скрипт сможет залезать в эту папку и работать с файлом, или нет? А если скрипт расположен на другом сайте, а лезет к моему файлу?
P.S.: куда класть .htaccess, если его ещё нет? ruweb.net - хороший хостинг?
Egor Ermakov:
Если автор или рут не указали иное.
Хочу заметить, что во многих (если не во всех нынешних) *nix системах только root может изменять владельца файла. Специально сделано что бы избежать всяких неприятностей :)
2) Я рекомендую выставлять права 0777 для всех файлов и папок, если хостинг хороший :). Если плохой... То сменить хостера на такой, где было бы безопасно выставлять такие права.
Либо я чего-то не понимаю, либо 0777 это права на чтение, запись и выполнения всеми (владельцем, группой и другими).
Дмитрий К.:
В *nix системах (точнее в шелле) есть такая такая штука как umask, ее значение отнимается от максмиальных прав, и новый файл создается с полученными правами. В php есть одноименная функция, которая и устанавливает это значение, то есть можете в начале скрипта, который пишет что-то в файлы, написать
umask(0077);
и тогда все файлы созданные этим скриптом смогут быть прочитаны только тем, от имени кого был запущен скрипт (на халявных хостингах это чаще всего юзер, под которым работает апач) или root-ом.
scalpel:
Либо я чего-то не понимаю, либо 0777 это права на чтение, запись и выполнения всеми (владельцем, группой и другими).
Последнее. 0777 - это rwx-rwx-rwx...
Юрий Насретдинов:
ruweb.net - хороший хостинг?
Не знаю. Попробуйте там запустить скрипт и написать там: <? system('id'); ?> . Если выдает «nobody» - бегите от этого хостера пока не поздно...

Есть разница с точки зрения посетителя сайта, какие там выставлены права?
Да, если выставить неправильные права файла (например убрать доступ для чтения), то пользователь увидит только ошибку 403...

то сам-то этот скрипт сможет залезать в эту папку и работать с файлом, или нет
Конечно, одно - файловая система, другое - это файловая система, которая видна через Web-сервер. С другой стороны, с другого сайта PHP-скрипт тоже не сможет увидеть эти файлы иначе как через FTP.

Эта тема на forum.dklab.ru