В свою очередь, по отношению к файлам возможно:
- r — право на чтение данных.
- w — на изменение содержимого (запись – только изменение содержимого, но не удаление).
- x — на исполнение файла.
По отношению к директориям возможно:
- r — право на чтение директории (можно прочитать содержимое директории, т.е. получить список объектов, находящихся в ней)
- w — на изменение содержимого директории (можно создавать и удалять объекты в ней, причем, если вы имеете право на запись, то удалять вы сможете даже те файлы, которые вам не принадлежат)
- x — на вход в директорию (оно всегда проверяется в первую очередь, и даже если вы имеете все нужные привилегии на объект, который закопан глубоко в цепочке каталогов, но не имеете атрибут “X” для доступа хотя бы к одной директории на пути к этому файлике, то к нему вы так и не пробьетесь )
Привилегии для групп пользователей
Сами привилегии подразделяются на три категории в зависимости от того, кто обращается к объекту:
- «user» — u (непосредственно владелец файлика)
- «group» — g (член той же группы, к которой принадлежит владелец)
- «world» — o (все остальные)
Вариации трех возможных значений «r», «w» и «x» для трех категорий «u», «g» и «o» и определяют Chmod к файлам. Если не задана какая-то категория, то она заменяется знаком дефисом «-». Привилегии указываются последовательно в заданном порядке:
- сначала права для владельца — «u»
- затем для группы — «g»
- и в конце — для всех остальных — «o»
Для наглядности давайте разберем пример, где владелец файла («user» — «u») имеет все права: на чтение, запись в него и исполнение, а все остальные пользователи только привилегию на чтение. Запись таких Chmod будет выглядеть так: «rwx r-- r--».
Рассмотрим ее в деталях: «rwx» (эта запись задает права на объект для владельца — «u»), «r--» (эта запись задает права на тот же объект, но в случае, если посетитель отнесен сервером к группе — «g»), «r--» (эта запись задает привилегии на объект для всех остальных пользователей — «o»).
Чем отличаются права файлов и папок
Получается, что существует три группы пользователей и три возможных действия с объектами. Еще не запутались? Разложим все сказанное выше по полочкам в виде табличек. Сначала наглядно посмотрим, чем они отличаются:

А так же таблица, показывающая разнообразные комбинации Chmod для разных типов объектов:

Chmod, выраженные в цифрах (777, 400, 666, 755, 444)
Вы видите, что здесь для описания прав доступа применяются записи с использованием латинских букв и дефисов, но Вы, наверное, уже сталкивались с тем, что обычно Chmod задают в цифровом виде, например, всем известная комбинации: 777, разрешающая все и всем.
Действительно, привилегии так же обозначают и цифрами:
- r (читать) заменяют на 4
- w (запись) заменяют на 2
- x (исполнение) заменяют на 1
- 0 означает – ничего не делать (то, что в буквенной записи обозначается дефисом)
Т.е. получается, что сумма этих цифр и показывает Chmod по отношению к файлам или папке. Например:
- 7 (rwx) = 4 + 2 +1 (полные права)
- 5 (r-x) = 4 + 0 + 1 (чтение и выполнение)
- 6 (rw-) = 4 + 2 + 0 (чтение и запись)
- 4 (r--) =4 + 0 + 0 (только чтение)
- и т.д.

А теперь давайте рассмотрим различные комбинации записи в цифрах, применительно к группам пользователей:

Вы сами (кроме того случая, когда получаете доступ к сайту по FTP) и все остальные посетители вашего ресурса, относитесь к группе “word” (все остальные), поэтому для работы с вебсайтом нам нужно в первую очередь смотреть на последнюю (третью) цифру данной записи.
Для того, чтобы при работе пользователя с сайтом «запускался файл» скрипта, достаточно будет, чтобы на него были установлены права, начиная от «4» (r-- – только чтение) (5,6,7 тоже подойдут, но это будет лишнее в плане безопасности).
Для каталога же, в котором лежит файл этого скрипта, нужно выставить минимум «5» (r-x — можно зайти в каталог и прочитать его содержимое, удалять или добавлять нельзя). 7 тоже подойдет, но тоже будет уже лишним в плане безопасности.
Если нужно, чтобы скрипт не только читался, но и «записывал» какие-то данные (например, введенные посетителем), то минимальные права на «папку» по-прежнему будут «5», но для «файла» уже понадобится «6» (читать и записывать).
Скорей всего на сервере, куда вы скопировали содержимое движка вашего сайта, будут установлены следующие Chmod к объектам:

Если бы у вас был ресурс, состоящий из одних html страниц, то можно было бы все так и оставить. Но современные сайты построены на движках, и там могут быть объекты, в которые нужно производить запись от имени посетителей из группы «world» — o (все остальные). Это могут быть каталоги, используемые для кэширования страниц или те, в которые по ходу работы с сайтом будут загружаться картинки и др.
Само собой, что если вы зайдете на сайт по FTP, то сможете произвести запись в эти файлы или директории, но работая с вебинтерфейсом как обычный пользователь у вас могут возникнуть проблемы. Поэтому к установке тех или иных прав надо подходить избирательно:

Как назначить Chmod посредством PHP
Для назначения прав доступа можно использовать программу Ftp клиента, например, FileZilla , но если Chmod на какие-либо файлы поменять не получается, то можно попробовать назначить их PHP средствами. Вы можете воспользоваться следующим кодом:
Код: Выделить всё
<?
chmod ("file_name_1.php", 0666);
chmod ("file_name_2.php", 0666);
chmod ("directory_name_1", 0777);
chmod ("directory_name_2", 0777);
?>
prava.php скопируйте по FTP в ту директорию, в которой не получается штатными средствами назначить права доступа. В адресной строке браузера пропишите путь до prava.php (например, http://select-films.ru/prava.php) и нажмите «Пуск» или энтер на клавиатуре. Все, теперь привилегии будут стопроцентно изменены средствами PHP.
Для файлов движка, находящихся в корне сайта, кроме sitemap.xml, лучше установить 444 (для всех групп посетителей только чтение). На seting.php иногда советуют даже установить 400.
Точно такие же советы могу дать и по поводу установки прав доступа на объекты в движках SMF и WordPress. Желательно, по возможности, оставлять на постоянной основе для директорий 755 (кроме оговоренных выше каталогов кеша, картинок, бекапа и может быть еще каких-то, по мере необходимости), а для файлов — 644.
На файлы в корне сайта лучше поставить 444.
Если при работе с сайтом возникнет проблема с невозможностью записи настроек в какой-нибудь файл или невозможностью создать какую нибудь директорию, то можно временно поставить на них большие права (777, например), а потом все вернуть обратно (от греха подальше). И ни в коем случае не стоит оставлять (для простоты работы с сайтом) необоснованно завышенные Chmod.
Спасибо что дочитали до конца.