Страница 1 из 1

Права доступа (CHMOD)

Добавлено: 26 авг 2010 21:55, Чт
UncleFather

Права доступа - это атрибуты файла или каталога, которые указывают серверу, кто и что может делать с соответствующим файлом или каталогом. Обычно, права доступа регламентируют такие действия как чтение, запись в файл (или каталог), исполнение.

Поскольку большинство серверов работает на базе 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.

Таблица 1.
Таблица 1.
tbl1.JPG (29 КБ) 6842 просмотра

Оригинал статьи

А теперь рассмотрим на примере:

  1. Total Commander:

    • Создать ftp-соединение с сайтом (если оно еще не было создано): Меню Net (Сеть или FTP) -> FTP-connect (Соединиться с FTP-сервером) -> New Connection (Добавить) ->

      1.gif
      1.gif (43.46 КБ) 6842 просмотра
    • В окне ввести данные, полученные от хостера и нажать OK.

      2.gif
      2.gif (11 КБ) 6842 просмотра
    • Соединиться с ftp-сервером - выделить в окне ftp-соединений созданное соединение и нажать Connect (Соединиться).

      3.gif
      3.gif (8.19 КБ) 6842 просмотра
    • После соединения найти нужные файлы, выделить их (клавишей Insert) и изменить их аттрибуты: Меню Files (Файлы) -> Change Attributes (Сменить аттрибуты). Можно просто ввести в окошке рекомендуемые цифры (например, 666) или расставить соответствующие галочки.

      4.gif
      4.gif (6.22 КБ) 6842 просмотра
  2. и FAR Manager:

    • Для того чтобы создать новое ftp соединение сначала необходимо выбрать панель ftp - для этого в программе необходимо нажать Alt + F1 или Alt + F2, откроется окно смены диска, необходимо выбрать 2. FTP (для этого необходимо нажать "стрелка вниз" или "2")

      5.gif
      5.gif (23.27 КБ) 6842 просмотра
    • Для того чтобы создать новое ftp соединение сначала необходимо выбрать панель ftp - для этого в программе необходимо нажать Alt + F1 или Alt + F2, откроется окно смены диска, необходимо выбрать 2. FTP (для этого необходимо нажать "стрелка вниз" или "2")

      6.gif
      6.gif (17.77 КБ) 6842 просмотра
    • На панели FTP появится сохраненный нами ftp адрес архива, для соединения необходимо на адресе нажать клавишу Enter.

      7.gif
      7.gif (17.6 КБ) 6842 просмотра
    • Ч\з некоторое время откроется ftp соединение.

      8.gif
      8.gif (18.65 КБ) 6842 просмотра
    • Если вы не выбрали при создании FTP соединения кодировку DOS, это можно сделать нажав Shift + F7 и выбрать таблицу кодировки "DOS" или "Автоопределение", после этого русские символы будут отображаться корректно.

      9.gif
      9.gif (19.47 КБ) 6842 просмотра
    • Выделяем нужные файлы (клавишей Insert). Идем в меню Файлы -> Аттрибуты файлов. Устанавливаем нужные аттрибуты. Например, на рисунке ниже установлены права на файл 644 (rw-r--r--).
      Значению 666 будет соответствовать строка rw-rw-rw-
      Значению 755 - rwxr-xr-x
      Значению 777 - rwxrwxrwx

      10.gif
      10.gif (15.22 КБ) 6842 просмотра

Оригинал статьи

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 является неудачной практикой, т.к. следить за атрибутами файлов сложно.

Источник