Домой Поиск с Google Видео Объявления Статьи Блоги События Файлы Форумы Группы Новости Фото Аудио Магазин Ещё
 

Be The Gift You Bring! Входящим дар принесет!

Статья

Да и само название Chmod является наименованием программы в linux, которая позволяет назначить права доступа объектам. А раз ваш сайт установлен на сервере под управлением linux (Unix) той или иной вариации, то и работа с объектами вашего веб-сайта будет подчинена правилам, установленным операционными системами linux (Unix). Если же все пустить Chmod на самотек и не заморачиваться с установкой нужных прав доступа на файлы и папки вашего сервера, то вероятность его взлома или заражения вредоносным кодом будет очень велика. Хорошо если у вас будут при этом осуществляли резервное копирование всех ваших данных, а если нет?! Поэтому лучше сразу же, не откладывая в долгий ящик, произвести настройку и изменение Chmod, исходя из принципа минимализма. То есть давать объектам минимально необходимые для корректной работы права.

Давайте сначала разберемся в сути вопроса с Chmod, чтобы понимать, что именно и каким образом мы настраиваем. Права доступа разделяются на Chmod к файлам и Chmod к директориям. Обозначаются они одинаково, но означают немного разное.

Права доступа (Chmod) к файлам подразделяются на:

  • r — право на чтение данных;
  • w — право на изменение содержимого (запись – только изменение содержимого, но не удаление);
  • x — право на исполнение файла.

Остановимся чуть подробнее на праве исполнения файла. Дело в том, что в linux (Unix), любой файл может быть исполнен. Является ли он исполнительным — определяется не по его расширению (понятие расширение отсутствует в файловой системе Unix), а по правам доступа Chmod. Если у какого-либо файла установлено право “X” (chmod x), то это означает, что его можно запустить на выполнение.

Теперь о правах доступа (Chmod) к папке (директории):

  • r — право на чтение директории (можно прочитать содержимое директории, т.е. получить список объектов, находящихся в ней);
  • w — право на изменение содержимого директории (можно создавать и удалять объекты в этой директории, причем если вы имеете право на запись, то удалять вы сможете даже те файлы, которые вам не принадлежат);
  • x — право, которое позволяет вам войти в директорию (это право всегда проверяется в первую очередь, и даже если вы имеете все нужные права на объект, который закопан глубоко в цепочке директорий, но не имеете права “X” для доступа хотя бы к одной директории на пути к этому файлу, то к нему вы так и не пробьетесь).

В системах linux (Unix, как в прочем и в Windows) все эти права раздает главный администратор компьютера, доступ к которому он получает путем ввода пароля. И если большинство объектов будут иметь права доступа (Chmod) только для чтения, то вирусам на таком компьютере делать будет практически нечего, т.к. они не смогут себя туда ни записать, ни затем исполниться. Именно этого результата нам нужно добиться, выставляя права доступа (Chmod) на объекты нашего сервера (сайта).

Синтаксис Chmod для групп пользователей

Сами права доступа (Chmod) подразделяются на три категории, в зависимости от того, кто обращается к объекту:

  • «user» — u (непосредственно владелец файла);
  • «group» — g (член той же группы, к которой принадлежит владелец);
  • «world» — o (все остальные).

Сервер определяет, к какой группе пользователей вас отнести в момент подключения вас к серверу. Когда Вы, например, подключаетесь к серверу по протоколу FTP, то вы входите под своим именем пользователя (и паролем), и тогда сервер относит вас к группе «user» («u)». Прочие пользователи, которые тоже подключаются по FTP к серверу, будут отнесены к группе «group» («g»), а пользователь, который приходит к вам на сайт, используя свой браузер, попадает в группу «world» («o»). Правда это не относится при доступу к серверу через браузер с использованием, например, CPanel, т.к. можно зайти Администратором через него.

Вариации трех возможных значений «r», «w» и «x» для трех категорий «u», «g» и «o» и определяют Chmod к файлам. Если не задана какая-то категория, то она заменяется знаком дефисом «-». права доступа (Chmod) указываются последовательно в заданном порядке:

  • сначала права для владельца — «u»;
  • затем для группы — «g»;
  • и в конце права для всех остальных — «o».

После того, как сервер отнесет пользователя к определенной группе, он предоставляет ему права на действия с объектами, после чего пользователь сможет прочитать, записать или выполнить файл (в зависимости от того, что разрешено делать с данным объектом его группе). Чтобы посмотреть содержимое папки, она должна иметь атрибут чтения «r» (для той группы, к которой сервер отнес пользователя). Чтобы создать файл или папку в уже существующей, необходимо, чтобы она имела атрибут Chmod на запись «w».

Для наглядности давайте разберем пример, где владелец файла («user» — «u») имеет все права: право на чтение, запись в него и исполнение, а все остальные пользователи только право на чтение. Запись таких Chmod будет выглядеть так: «rwx r-- r--». Рассмотрим ее в деталях: «rwx» (эта запись задает права на объект для владельца — «u»), «r--» (эта запись задает права на тот же объект, но в случае если пользователь отнесен сервером к группы — «g»), «r--» (эта запись задает права на объект для всех остальных пользователей — o").

Чем отличаются Chmod файлов и папок

Получается, что существует три группы пользователей и три возможных действия с объектами. Разложим все сказанное выше по полочкам в виде табличек. Сначала наглядно посмотрим, чем отличаются Chmod файлов и папок:

«Права»

« Файл»

«Папка»

r

Просмотр содержимого

Можно прочитать содержимое папки

w

Изменение содержимого

Можно изменять содержимое папки — писать и удалять объекты

x

Запуск файла на выполнение

Позволяет зайти в папку и обратиться к его файлам

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

«Права»

«Файл»

«Папка»

Ничего нельзя делать

Доступ к каталогу и его подкаталогам запрещен

r--

Можно читать содержимое

Можно прочитать содержимое папки

rw-

Можно видеть и изменять содержимое

Можно добавить, удалить, изменить файл папки

rwx

Читать, изменять и выполнять файл

Можно читать, удалять, изменять файлы, сделать каталог текущим, т.е. “войти” в этот каталог.

r-x

Можно прочитать, либо выполнить

Можно зайти в каталог и прочитать его содержимое, удалять или добавлять файлы нельзя.

--x

Выполнить, если файл двоичный

Пользователь может выполнить двоичный файл о существовании которого ему известно, зайти или прочитать каталог запрещено.

Синтаксис Chmod выраженных в цифрах (777)

Вы видите, что здесь для описания прав доступа используются записи с использованием латинских букв и дефисов, но вы, наверное, уже сталкивались с тем, что обычно Chmod задают в цифровом виде, например, всем известная комбинации: Chmod 777, разрешающая все и всем. Действительно, права доступа (Chmod) также обозначают и цифрами:

  • r (читать) заменяют на 4;
  • w (запись) заменяют на 2;
  • x (исполнение) заменяют на 1;
  • 0 означает – ничего не делать (то, что в буквенной записи обозначается дефисом).

Давайте опять вернемся к примеру записи прав доступа, приведенному чуть ранее: rwx r-- r--. Если заменить в ней буквы и дефисы на цифры, в соответствии с только что описанным правилом и при этом сложить цифры в каждой тройке, то получим цифровой вид этой записи: 744. Т.е. получается, что сумма этих цифр и показывает Chmod к файлам или папке.

Например:

  • 7 (rwx) = 4 + 2 +1 (полные права);
  • 5 (r-x)= 4 + 0 + 1 (чтение и выполнение);
  • 6 (rw-) = 4 + 2 + 0 (чтение и запись);
  • 4 (r--) =4 + 0 + 0 (только чтение);
  • и т.д.

В этой таблицы приведены все возможные комбинации Chmod записанные в цифровом виде:

«Права»

«„Цифровая форма“»

«„Символьная форма“»

Ничего нельзя делать

0

Только чтение

4

r--

Только запись

2

-w-

Только выполнение

1

--x

Чтение и запись

6

rw-

Чтение и выполнение

5

r-x

Чтение, запись, выполнение

7

Rwx

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

«Права»

«„Владелец“»

«„Группа“»

«„Остальные“»

777

читать
записывать
исполнять

читать
записывать
исполнять

Читать
записывать
исполнять

776

читать
записывать
исполнять

читать
записывать
исполнять

Читать
записывать

775

читать
записывать
исполнять

читать
записывать
исполнять

Читать

исполнять

774

читать
записывать
исполнять

читать
записывать
исполнять

Читать

766

читать
записывать
исполнять

читать
записывать

Читать
записывать

655

читать
записывать

читать

исполнять

Читать

исполнять

644

читать
записывать

читать

Читать

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

«Для папки» же, в которой лежит файл этого скрипта, нужно выставить минимум «5» (r-x — можно зайти в папку и прочитать его содержимое, удалять или добавлять нельзя). 7 тоже подойдет, но тоже будет уже лишним в плане безопасности. Если нужно, чтобы скрипт не только читался, но и «записывал» какие-то данные (например, введенные пользователем), то минимальные права на «папку» по-прежнему будут «5», но для «файла» уже понадобятся права «6» (читать и записывать).

Скорей всего на сервере, куда вы скопировали содержимое движка вашего сайта, будут установлены следующие Chmod к объектам:

Папки

755

владелец (user) может всё, группа и все остальные могут только читать папки и заходить в них, но им запрещено записывать файлы, изменять названия и стирать их в директориях. (rwxr-xr-x)

Файлы

«644»

владелец (user) может читать и изменять файлы, исполнять ему их запрещено, всем остальным запрещено их изменять и исполнять, остальные могут только читать. «(rw-r--r--)»

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

Поэтому к установке тех или иных Chmod надо подходить избирательно:

755

для всех папок, в которых должны записываться файлы, но не надо регулярно их стирать

777

для папок, в которые должны записываться и стираться файлы (например, для Кеша)

644

для простых файлов, используемых только для чтения (.html, .php и др.)

666

для файлы в которые может понадобится осуществлять запись (например, с базами данных .dat)

По материалам сайта ktonanovenkogo.ru

03.11.2011
 
Комментарии
Сортировка: 
Показывать по:
 
  • Комментариев пока нет
Действия
Рейтинг
0 голоса
Рекомендовать

Donate