GoGetLinks — самая выгодная биржа рекламных обзоров

Оптимальные права доступа к файлам и папкам вашего сайта, настройка и изменение прав доступа

2 ноября, 2009 | Рубрика: Инструменты вебмастера

Оптимальные права доступа для файлов и папок вашего сайтаСегодня я хотел бы поговорить о правах доступа к файлам и папкам. Само понятие прав доступа на файлы и каталоги пришло в мир вебмастеринга из Unix подобных систем, на которых работает большинство хостингов. А раз ваш сайт установлен на сервере под управлением Unix той или иной вариации, то и работа с файлами и папками вашего сайта будет подчинена правилам, установленным этими операционными системами.

В Windows фактически для всех файлов устанавливаются максимальные права доступа, что, собственно, и приводит к засилью вирусов на наших компьютерах, а так же, в свою очередь, не дает умереть с голоду владельцам антивирусных компаний. В Unix системах дело обстоит иначе – все сложнее, но одновременно и безопаснее. Если все настроить правильно и со знанием дела, то можно существенно повысить безопасность своего сайта.

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

Права доступа к файлам и папкам

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

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

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

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

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

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

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

Права доступа для групп пользователей

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

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

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

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

  1. сначала права для владельца - u
  2. затем права для группы - g
  3. и в конце права для всех остальных - o

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

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

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

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

Права

Файл

Папка

r

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

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

w

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

Можно изменять содержимое папки -
писать и удалять файлы

x

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

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

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

Права

Файл

Папка

---

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

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

r--

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

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

rw-

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

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

rwx

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

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

r-x

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

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

--x

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

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

Комбинации прав доступа выраженные в цифрах

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

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

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

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

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

Права

Цифровая форма

Символьная форма

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

0

---

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

4

r--

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

2

-w-

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

1

--x

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

6

rw-

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

5

r-x

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

7

Rwx

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

Права

Владелец

Группа

Остальные

777

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

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

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

776

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

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

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

775

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

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

Читать

исполнять

774

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

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

Читать

766

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

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

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

655

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

читать

исполнять

Читать

исполнять

644

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

читать

Читать

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

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

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

Папки

755

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

Файлы

644

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

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

755

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

777

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

644

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

666

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

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

Для Joomla, сразу после установки, можно поставить права доступа 777 на следующие папки:

administrator/backups/
administrator/cache/
administrator/components/
administrator/modules/
administrator/templates/
cache/
components/
images/
images/banners/
images/stories/
language/
language/en-GB/
language/ru-RU/
media/
modules/
plugins/
plugins/content/
plugins/search/
plugins/system/
templates/

После того как вы установите все расширении и произведете окончательные настройки, права доступа к большинству из приведенных выше папок, следует в целях повышения безопасности сайта вернуть к права доступа 755. Оставить 777 нужно будет на папки с кешем, с бекапом и с картинками. Для файлов, находящихся в корне сайта, кроме sitemap.xml, лучше установить права доступа 444 (для всех групп пользователей только чтение). На файл seting.php иногда советуют даже установить права доступа 400.

Точно такие же советы могу дать и по поводу установки прав доступа на файлы и папки для SMF и WordPress. Желательно, по возможности, оставлять на постоянной основе права доступа к папке 755 (кроме оговоренных выше папок кеша, картинок, бекапа и может быть еще каких-то, по мере необходимости), а права доступа к файлам 644. На файлы в корне сайта лучше поставить права доступа 444.

Если при работе с сайтом возникнет проблема с невозможностью записи настроек в какой-нибудь файл или невозможностью создать какой-нибудь папку, то можно временно поставить на требуемые файлы или папки большие права доступа (777, например), а потом все вернуть обратно (от греха подальше). И ни в коем случае не стоит оставлять (для простоты работы с сайтом) необоснованно завышенные права доступа.

Вы так же можете ознакомиться с другими инструментами для вебмастеров:

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

Удачи вам! До скорых встреч на страницах блога KtoNaNovenkogo.ru


Спасибо Вам за добавление этой статьи в
Подписаться на обновления по E-mail RSS
Получать обновления на E-mail
GoGetLinks — самая выгодная биржа рекламных обзоров
Кстати, тоже интересно почитать:
Рубрика : Инструменты вебмастера Теги : , ,

Комментарии
11 ноября 2009

Зачем назначать для файлов, находящихся в корне сайта права доступа 444, ести владелец файла может изменить их?
Интетесно узнать более подробнее о назначениях директорий
administrator/backups/
administrator/cache/
cache/


11 ноября 2009

Макс, логично, конечно же, владелец может все, вне зависимости от выставленных прав (собственно, вы же сами эти права и меняете). Но в целях безопасности так делают. Я не знаю всех тонкостей взлома сайта, но такие рекомендации я слышал неоднократно. Думаю, что существует возможность злоумышленнику прикинуться владельцем.

Указанные вами папки используются различными расширениями, реализующими функции кеширования и создания резервных копий данных.


15 ноября 2009

Интересно на сколько безопасно можно пользоваться встроенной возможностью передачи файлов по ftp в joomla?


15 ноября 2009

Макс, не знаю насчет безопасности самого FTP в Joomla, сначала я даже не знал зачем оно там надо. Только недавно прочитал, что настроив доступ по FTP через Joomla можно не давать полного доступа на каталоги, куда нужно установить расширения. Или если нужно конфигурационный файл подкорректировать. Это сделано для облегчения жизни администратора сайта.

Причем, получается, что это направлено на повышение безопасности, т.к. на время установки расширений или правки конфигурационного файла права доступа остаются ограниченными и злоумышленники не смогут воспользоваться временно полными правами доступа. =)


15 ноября 2009

Да это очень удобно! Сат пользуюсь только в целях страховки регулярно выключаю эту возможность, надо узнать может это лишняя мера =)


16 ноября 2009

права задаются всегда относительно того, от какого юзера в системе запущен апач.
у меня на ВСЕ папки, ВКЛЮЧАЯ кэш 775, отлично работает.
на файлы 644.

вася

20 ноября 2009

Значит можно смело ставить755 и 644,думаю. Да? Если админ только я.


27 апреля 2010

Marusya говорит, что:

Значит можно смело ставить755 и 644,думаю. Да? Если админ только я.

… и под твоей учеткой работает Апач. Если так – то ДА.


27 апреля 2010

Дмитрий спасибо! Отличная статья. Все подробно “разжёвано”. Для новичков это очень ценно.


1 мая 2010

Я думаю будет по теме – о правах доступа (CHMOD) на файлы и папки в Unix. Видеоурок для начинающих ВЕБ мастеров.


27 июля 2010

Я так доконца и не понял как определяется группа, если чел находится в 2-х или более. Люди из какой именно группы будут также иметь права доступа к файлу ?


Написать

(обязательно)

(обязательно)


Это не спам.

Subscribe without commenting

» Подписаться на комментарии к этой статье по RSS