Права доступа (CHMOD) - что это такое

Автор: Поликарпов Роман
Сайт: http://webstudent.ru

 

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

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

Поскольку большинство серверов работает на базе UNIX-систем, поэтому мы рассмотрим установку прав доступа именно для них. В системах UNIX все пользователи разделяются на три группы: &quot;user&quot; (непосредственно владелец файла), &quot;group&quot; (член той же группы, к которой принадлежит владелец файла) и &quot;world&quot; (все остальные). Когда вы соединяетесь с сервером, он определяет к какой группе вы относитесь. Например, подключаясь к серверу по FTP, вы входите под своим именем пользователя, соответственно сервер относит вас к группе &quot;user&quot;. Другие пользователи, подключаясь по FTP, будет отнесены к группе &quot;group&quot;, а когда человек попадает к вам на сайт через свой браузер, то попадает в группу &quot;world&quot;. 

После определения группы, пользователь получает права на действия с объектами. Т.е он может прочитать, записать или выполнить файл. Чтобы просмотреть каталог, он должен быть исполняемым; чтобы просмотреть его содержимое, он должен иметь атрибут чтения, а чтобы создать новый файл или каталог в существующем каталоге, необходимо иметь право на запись. Таким образом, чтобы выполнялось приложение или CGI скрипт, необходимо ставить на каталог атрибут чтения и выполнения.
А теперь практика...

Итак, мы выяснили, что существует три группы пользователей, и три действия с объектом. Чтобы распределить права для соответствующих групп, используются цифровые обозначения: 
4 = read (право на чтение) 
2 = write (право на запись) 
1 = execute (право на выполнение)
Первая цифра в обозначении устанавливает права для группы &quot;user&quot;(т.е фактически для вас), вторая для группы &quot;group&quot; и третья для &quot;world&quot;. Простым сложение цифр можно добиться установления прав на совокупность действий. Например, 3(2+1) разрешает запись и выполнение файла (каталога); 5(4+1) разрешает чтение и выполнение; 6(4+2) разрешает чтение и запись; 7(4+2+1) устанавливает право чтения, записи и выполнения. Т.е всего семь вариантов: 
7 = read, write &amp; execute 
6 = read &amp; write 
5 = read &amp; execute 
4 = read 
3 = write &amp; execute 
2 = write 
1 = execute 

Для установления прав доступа используется команда CHMOD. Во всех современных FTP клиентах присутствует возможность назначения прав доступа путем простановки &quot;галочек&quot; в чекбоксах, либо просто введением цифрового кода в соответствующее поле.

Несмотря на это, еще никому не помешало знать чуть больше о командах UNIX. Так вот, команда &quot;chmod&quot; имеет два режима: Абсолютный(цифровой) и Символьный режим. Команда &quot;chmod&quot;, используемая в Unix, или команда &quot;site chmod&quot;, используемая в некоторых FTP менеджерах(напр. FTP Explorer), могут использоваться в обоих режимах.

При Абсолютном(цифровом) режиме используется описанный выше 3-х цифровой код прав доступа. Символьный режим использует буквенный формат для установки прав доступа. Здесь используются буквы &quot;r&quot;, &quot;w&quot; и &quot;x&quot; для read, write и execute соответственно. А также &quot;u&quot;, &quot;g&quot;, &quot;o&quot; и &quot;a&quot; для 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.

Вот несколько наиболее часто встречающихся сочетаний, верных для большинства хостингов:Права доступа	Команда(код)	Описание
U 	G 	W 	 	 
r w x	r - x	r - x	[site] chmod 755 	Для директорий, CGI скриптов и других исполняемых файлов
r w -	r - -	r - -	[site] chmod 644 	Для обычных файлов
r w -	- - -	- - -	[site] chmod 600 	Скрыть файлы от всех кроме вас и ваших скриптов
U = user; G = group; W = world r = Read; w = Write; x = Execute; - = Нет права


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