Как сделать расширение больше картинки

Что такое Chmod, какие права доступа назначать файлам и папкам (777, 755, 666) и как это сделать через PHP

Обновлено: 29 июля 2017

Сегодня я хотел бы поговорить о правах доступа к файлам и папкам (читайте что такое файл). Это понятие пришло в мир вебмастеринга из linux (Unix) подобных систем, на которых работает большинство хостингов.

Да и само название Chmod является наименованием программы в linux, которая позволяет назначить права доступа различным объектам. А раз ваш сайт установлен на сервере под управлением linux (Unix) той или иной вариации, то и работа с объектами вашего вебсайта будет подчинена правилам, установленным операционными системами linux (Unix).

Chmod

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

Базовые понятия прав доступа к файлам и папкам


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

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

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

В свою очередь, по отношению к файлам возможно:

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

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

По отношению к директориям возможно:

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

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

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

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

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

Сервер определяет, к какой группе пользователей вас отнести в момент подключения вас к серверу. Когда вы, например, подключаетесь к серверу по протоколу FTP, то вы входите под своим именем пользователя (и паролем), и тогда сервер относит вас к группе «user» («u)».

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

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

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

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

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

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

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

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

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

«Права»

« Файл»

«Папка»

r

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

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

w

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

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

x

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

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

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

«Права»

«Файл»

«Папка»

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

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

r--

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

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

rw-

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

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

rwx

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

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

r-x

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

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

--x

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

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

Chmod, выраженные в цифрах (777, 400, 666, 755, 444)


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

Действительно, привилегии так же обозначают и цифрами:

  1. r (читать) заменяют на 4
  2. w (запись) заменяют на 2
  3. x (исполнение) заменяют на 1
  4. 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» (читать и записывать).

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

Папки

755

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

Файлы

«644»

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

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

Само собой, что если вы зайдете на сайт по FTP, то сможете произвести запись в эти файлики или директории, но работая с вебинтерфейсом как обычный пользователь у вас могут возникнуть проблемы. Поэтому к установке тех или иных прав надо подходить избирательно:

755

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

777

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

644

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

666

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

Как назначить Chmod посредством PHP


Как же все это можно реализовать на практике для своего сайта? В принципе, все просто. Для назначения прав доступа можно использовать программу Ftp клиента, например, FileZilla:

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

Как изменить Chmod через Файлзилу

Но если Чмод на какие-либо файлы поменять не получается, то можно попробовать назначить их PHP средствами. Вы можете воспользоваться следующим кодом:

<? chmod ("file_name_1.php", 0666); chmod ("file_name_2.php", 0666); chmod ("directory_name_1", 0777); chmod ("directory_name_2", 0777); ?>

Вам надо будет заменить file_name_x.php и directory_name_x на реальные имена файлов и папок, Чмод к которым вы хотите изменить. Соответственно, для файликов установится 666, а для каталогов — 777. Поместите это PHP код в файлик с помощью любого текстового блокнота (рекомендую бесплатно скачать Notepad plus plus) и дайте ему расширение .php, ну, например, как prava.php.

prava.php скопируйте по FTP в ту директорию, в которой не получается штатными средствами назначить права доступа. В адресной строке браузера пропишите путь до prava.php (например, http://ktonanovenkogo.ru/prava.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/

После того, как вы установите для Джумлы все расширения и произведете окончательные настройки, Chmod к большинству из приведенных выше директорий следует в целях повышения безопасности сайта вернуть к 755. Оставить 777 нужно будет на каталоги с кешем, с бекапом и с картинками.

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

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

На файлы в корне сайта лучше поставить 444.

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

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

Твитнуть

Поделиться

Плюсануть

Поделиться

Отправить

Класснуть

Линкануть

Запинить

Подборки по теме:


Источник: http://ktonanovenkogo.ru/vokrug-da-okolo/optimalnye-prava-dostupa-dlya-fajlov-i-papok-vashego-sajta.html




Рекомендуем посмотреть ещё:


Закрыть ... [X]


Системы видеонаблюдения, большой выбор камер Имплант зуба с пломбой

Как сделать расширение больше картинки Что такое Chmod, какие права доступа назначать
Как сделать расширение больше картинки Добро пожаловать на сайт СветЛ! Svetl. org
Как сделать расширение больше картинки Дом на Радуге здесь живёт художник
Как сделать расширение больше картинки Учебник HTML, DHTML, JavaScript, PHP, CMS, Excel 2007
Как сделать расширение больше картинки Print Screen: как сделать скриншот
Вселенная Википедия Александр Покровский. 72 метра Всеукраїнська асоціація кадровиків. Перевод совместителя в штат Гостевые дома в Голубицкой, цены 2017, фото Игры для девочек раскраски - играть бесплатно в раскраски онлайн Как выращивать и ухаживать за датурой

Похожие новости