Права доступа (chmod)
28 января 2005
Рубрика: Интернет и сети.
Автор: Роман Поликарпов.
pic

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

Поскольку большинство серверов работает на базе 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.
Вот несколько наиболее часто встречающихся сочетаний, верных для большинства хостингов:

pic

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

Orphus system
В Telegram
В Одноклассники
ВКонтакте