Какие есть общие правила работы с CHMOD?

Saputo аватар
60

Смотрел эту тему в поисковиках - все сводится к "делай как я" с указанием конкретных папок. Но сами принципы до конца не понятны. Сейчас на сайте установлено масса нестандартных папок и функций. И все эти руководства оказываются бесполезными. Итак сами вопросы:
1) если проставить на все папки 000 - сайт не будет вообще открываться и работать. Верно?
2) Если проставить на динамическом сайте на все папки 444 - посетитель сможет его просматривать?
3) Если юзеры могут загружать на сайт картинки или еще что-то - на эту папку нужно ставить 666?
4) Есть ли такие функции на сайте, котрые предполагают установку на прав 777? Или это слишком опасно?
5) Может ли вложенная папка иметь более высокий уровень доступа? Например pictures(444), а pictures/users(666)? Или нужно открывать и верхнюю папку и вложенную, но закрывать другие вложенные? Например, pictures(666), pictures/users(666), pictures/my(444).
6) Связанны ли CHMOD с работой самих скриптов на сайте? Или это все касается только того, что уходит с сервера к пользователю? Возвращаясь к первому вопросу - открываться не будет, а будет ли работать?

Пока вроде все. Заранее спасибо!

Дима аватар
405

Чтобы разобраться с chmod, нужно более или менее разбираться в юниксе. Тема на самом деле очень обширная, затрагивает разные аспекты работы сайта. Я не очень в ней ориентируюсь.

Вкратце все эти права раздаются пользователям и группам, созданным в операционной системе. В случае с shared-хостингом обычно на каждый клиентский аккаунт создан свой пользователь. А скрипты на сайтах могут исполняться, например, от имени специального отдельного пользователя-веб-сервера. Ситуация усугубляется тем, что у файлов сайта могут быть разные владельцы, например, при загрузке файлов по FTP и HTTP.

Далее мои предположения.

Saputo писал(а):
1) если проставить на все папки 000 - сайт не будет вообще открываться и работать. Верно?
2) Если проставить на динамическом сайте на все папки 444 - посетитель сможет его просматривать?

Насколько я понимаю, права на файлы в этих каталогах тоже имеют значение. С достаточными правами можно будет исполнять. Еще с 000 будет проблема, что вы сами себе закроете доступ к каталогу и не сможете его вернуть.

Права на папки не особо влияют на работу сайта. Главное -- права и владельцы файлов.

Saputo писал(а):
3) Если юзеры могут загружать на сайт картинки или еще что-то - на эту папку нужно ставить 666?

Чтобы они могли загружать, надо ставить 7хх. На shared-хостинге это опасно, потому что любой сосед сможет навредить. Поэтому при возможности лучше ставить 775 или даже 755. Но не везде это будет работать, иногда приходится ставить 777.

Saputo писал(а):
4) Есть ли такие функции на сайте, котрые предполагают установку на прав 777? Или это слишком опасно?

Загрузка и сохранение файлов на сервере по http возможно при наличии достаточных прав на папку. Иногда кроме 777 нет простых вариантов. Хотя тут есть опасность.

Saputo писал(а):
5) Может ли вложенная папка иметь более высокий уровень доступа? Например pictures(444), а pictures/users(666)?

Да, а может и более низкий.

Saputo писал(а):
6) Связанны ли CHMOD с работой самих скриптов на сайте?

Команды chmod и chown связаны с правами на операции с файлами и каталогами в операционной системе. Работа сайта тоже попадает сюда. Например, для загрузки файлов в каталог скриптом у пользователя, от имени которого запущен скрипт, должны быть права на запись в этот каталог.

Saputo аватар
60

Спасибо!
Но теперь не понятно по поводу проставления прав на файлы. Если папке задать 444, это автоматически означает, что все файлы внутри тоже стали с такими правами? Или их нужно все один за другим настраивать. Этих же файлов в CMS-ках куча. Не может быть, чтобы все нужно было делать вручную. Или я еще чего-то не понял?

Когда и кем задаются изначальные права на файлы? Если на хост загружается файл - то поумолчанию у него какой chmod ставится?

Дима аватар
405

Saputo писал(а):
Если папке задать 444, это автоматически означает, что все файлы внутри тоже стали с такими правами?

Нет. У файлов отдельные права.

Saputo писал(а):
Или их нужно все один за другим настраивать. Этих же файлов в CMS-ках куча. Не может быть, чтобы все нужно было делать вручную. Или я еще чего-то не понял?

Chmod по SSH можно делать рекурсивно на вложенные каталоги и файлы. Некоторые FTP-клиенты и файловые менеджеры хостинговых панелей тоже позволяют изменять права сразу многих каталогов и файлов.

Saputo писал(а):
Когда и кем задаются изначальные права на файлы? Если на хост загружается файл - то поумолчанию у него какой chmod ставится?

По-моему зависит от настроек веб-сервера и метода загрузки. Обычно на папках 755, а на файлах 644.

Saputo аватар
60

Спасибо. Вроде стало понятно.