Права доступа - это атрибуты файла или каталога, которые указывают серверу, кто и что может делать с соответствующим файлом или каталогом. Обычно, права доступа регламентируют такие действия как чтение, запись в файл (или каталог), исполнение.
Поскольку большинство серверов работает на базе UNIX-систем, поэтому мы рассмотрим установку прав доступа именно для них. В системах UNIX все пользователи разделяются на три группы: "user" (непосредственно владелец файла), "group" (член той же группы, к которой принадлежит владелец файла) и "world" (все остальные). Когда вы соединяетесь с сервером, он определяет к какой группе вы относитесь. Например, подключаясь к серверу по FTP, вы входите под своим именем пользователя, соответственно сервер относит вас к группе "user". Другие пользователи, подключаясь по FTP, будет отнесены к группе "group", а когда человек попадает к вам на сайт через свой браузер, то попадает в группу "world".
После определения группы, пользователь получает права на действия с объектами. Т.е он может прочитать, записать или выполнить файл. Чтобы просмотреть каталог, он должен быть исполняемым; чтобы просмотреть его содержимое, он должен иметь атрибут чтения, а чтобы создать новый файл или каталог в существующем каталоге, необходимо иметь право на запись. Таким образом, чтобы выполнялось приложение или CGI скрипт, необходимо ставить на каталог атрибут чтения и выполнения.
А теперь практика...Итак, мы выяснили, что существует три группы пользователей, и три действия с объектом. Чтобы распределить права для соответствующих групп, используются цифровые обозначения:
4 = read (право на чтение)
2 = write (право на запись)
1 = execute (право на выполнение)
Первая цифра в обозначении устанавливает права для группы "user"(т.е фактически для вас), вторая для группы "group" и третья для "world". Простым сложение цифр можно добиться установления прав на совокупность действий. Например, 3(2+1) разрешает запись и выполнение файла (каталога); 5(4+1) разрешает чтение и выполнение; 6(4+2) разрешает чтение и запись; 7(4+2+1) устанавливает право чтения, записи и выполнения. Т.е всего семь вариантов:
7 = read, write & execute
6 = read & write
5 = read & execute
4 = read
3 = write & execute
2 = write
1 = execute
Для установления прав доступа используется команда CHMOD. Во всех современных FTP клиентах присутствует возможность назначения прав доступа путем простановки "галочек" в чекбоксах, либо просто введением цифрового кода в соответствующее поле.
Несмотря на это, еще никому не помешало знать чуть больше о командах UNIX. Так вот, команда "chmod" имеет два режима: Абсолютный(цифровой) и Символьный режим. Команда "chmod", используемая в Unix, или команда "site chmod", используемая в некоторых FTP менеджерах(напр. FTP Explorer), могут использоваться в обоих режимах.
При Абсолютном(цифровом) режиме используется описанный выше 3-х цифровой код прав доступа. Символьный режим использует буквенный формат для установки прав доступа. Здесь используются буквы "r", "w" и "x" для read, write и execute соответственно. А также "u", "g", "o" и "a" для user, group, other (world), и all(все[не используется]) соответственно.
Например: 755 = chmod u=rwx,go=rx filename; 644 = chmod u=rw,go=r filename; 600 = chmod u=rw,go= filename; 444 = chmod a=r filename.
А теперь рассмотрим на примере:
-
Total Commander:
-
Создать ftp-соединение с сайтом (если оно еще не было создано): Меню Net (Сеть или FTP) -> FTP-connect (Соединиться с FTP-сервером) -> New Connection (Добавить) ->
-
В окне ввести данные, полученные от хостера и нажать OK.
-
Соединиться с ftp-сервером - выделить в окне ftp-соединений созданное соединение и нажать Connect (Соединиться).
-
После соединения найти нужные файлы, выделить их (клавишей Insert) и изменить их аттрибуты: Меню Files (Файлы) -> Change Attributes (Сменить аттрибуты). Можно просто ввести в окошке рекомендуемые цифры (например, 666) или расставить соответствующие галочки.
-
-
и FAR Manager:
-
Для того чтобы создать новое ftp соединение сначала необходимо выбрать панель ftp - для этого в программе необходимо нажать Alt + F1 или Alt + F2, откроется окно смены диска, необходимо выбрать 2. FTP (для этого необходимо нажать "стрелка вниз" или "2")
-
Для того чтобы создать новое ftp соединение сначала необходимо выбрать панель ftp - для этого в программе необходимо нажать Alt + F1 или Alt + F2, откроется окно смены диска, необходимо выбрать 2. FTP (для этого необходимо нажать "стрелка вниз" или "2")
-
На панели FTP появится сохраненный нами ftp адрес архива, для соединения необходимо на адресе нажать клавишу Enter.
-
Ч\з некоторое время откроется ftp соединение.
-
Если вы не выбрали при создании FTP соединения кодировку DOS, это можно сделать нажав Shift + F7 и выбрать таблицу кодировки "DOS" или "Автоопределение", после этого русские символы будут отображаться корректно.
-
Выделяем нужные файлы (клавишей Insert). Идем в меню Файлы -> Аттрибуты файлов. Устанавливаем нужные аттрибуты. Например, на рисунке ниже установлены права на файл 644 (rw-r--r--).
Значению 666 будет соответствовать строка rw-rw-rw-
Значению 755 - rwxr-xr-x
Значению 777 - rwxrwxrwx
-
PS: Chmod на Windows-хостинге НЕ РАБОТАЕТ!!!
Важно: данная статья описывает особенность работы Windows серверов нашего хостинга. На UNIX сервере вы можете изменять атрибуты файлов с помощью команды CHMOD.
1. Работоспособность скриптовРаспространенная "проблема", с которой часто обращаются в службу поддержки - как сменить атрибуты файлов (CHMOD, 777 и т.д.). Атрибуты файла (меняются через FTP команду CHMOD) - это упрощенная система прав доступа, используемая в Unix системах и соответственно на Unix хостингах.
Сервера нашего хостинга работают под управлением Windows Server, поэтому упрощенная система прав через атрибуты не работает и не используется. На Windows системе права на файлы эквивалентны максимальным правам, задаваемым через CHMOD.
Главное:
Через FTP клиент или файл-менеджер вы видите для всех файлов права, отличные от 777. Это НЕ ОЗНАЧАЕТ, что у скриптов отсутствует доступ на запись к файлам и папкам. Вы видите число или набор прав, который наш FTP сервер выдает для совместимости со стандартом FTP, но который не имеет никакого отношения к действительным правам.
На самом деле права файлов и папок полностью эквивалентны тому, что принято понимать под 777.
Изменять права файлов и папок нет необходимости.Все скрипты, для работы которых требуется изменить права на файлы с помощью CHMOD, будут работать на Windows машине без этой операции. Изменять права на файлы с помощью CHMOD на Windows хостинге не нужно.
В случае, если ваш скрипт всё же не работает, обратите внимание на следующие распространенные ошибки:
Ваш скрипт неверно сконфигурирован - неверно указана базовая папка сайта. Смотрите базовую папку в личном кабинете, "полный список функций", "управление сайтами и серверами". Слеши \ нужно удвоить или заменить на / (лучше).
Ваш скрипт пытается определить базовую папку самостоятельно одним из неграмотных способов. Переведите ваш сайт на Apache - в кабинете "полный список функций", "управление сайтами и серверами".
Ваш скрипт сообщает о неправильных правах просто потому, что не может правильно их определить. Если это не мешает работать сайту - игнорируйте сообщения или отключите их.
2. Безопасность, ограниченияЕсть другой случай, для которого могут потребоваться изменения прав - защита данных. Защита данных через CHMOD является неудачной практикой, т.к. следить за атрибутами файлов сложно.