Меню Рубрики

Установка прав доступа find

Chmod (777, 755, 444) — настройка прав доступа к файлам и папкам сайта на сервере хостинга

Здравствуйте, уважаемые читатели блога Goldbusinessnet.com. Регулирование доступа к файлам и папкам, расположенным на веб-серверах под управлением UNIX-подобных операционных систем (а они установлены на подавляющем большинстве хостингов), происходит посредством указания прав chmod для пользователей, что позволяет по максимуму обезопасить сайт. Кстати, серверы Спринтхоста, где хостится несколько моих проектов, в этом смысле не являются исключением.

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

При управлении же ОС на базе Unix существует реальная возможность снизить до минимума риск несанкционированного доступа просто правильно настроив chmod (данное название программы для изменения прав доступа происходит от английского словосочетания «change mode»).

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

Согласитесь, грех не воспользоваться возможностью серьезно усилить степень защиты вашего веб-ресурса. Конечно, в этом случае редактирование некоторых файлов будет занимать немного больше времени, но тут уж приходится выбирать: либо оптимизация безопасности системы, либо. Ниже я постараюсь систематизировать информацию по chmod, потому что здесь есть несколько нюансов, которые необходимо знать вебмастеру. Итак, начнем.

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

Для каждой группы пользователей определены свои права доступа. При попытке соединения веб-сервер определяет, к какой группе отнести того или иного юзера. Все они разделяются на:

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

Если вы подключаетесь к серверу по протоколу FTP и заходите под своим логином и паролем, то будете идентифицированы как «user», если кто-либо другой подключается по ФТП, то будет определен как «group», ежели пользователь использует браузер, то попадет в категорию «world».

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

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

Права доступа к папкам (директориям, или каталогам) дают совершать такие действия:

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

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

Если обратить внимание на выше представленные права в отношении каталогов (папок), то атрибут «w» имеет практический смысл только в сочетании с «x».

Таким образом, мы имеем пользователей «u», «g», «o» и соответственно права «r», «w», «x», причем, порядок их отображения слева направо следующий:

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

Для наглядности рассмотрим пример, когда владелец файла («u») имеет все возможные права: на чтение, запись и исполнение (r, w и x). Пользователи, отнесенные к категориям «g» (group) и «o» (others) — только на чтение(r). Тогда полная запись chmod по порядку отображения прав будет выглядеть таким образом (значком дефиса «-» отмечают отсутствие какой-либо категории прав):

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

Тип прав Для файла Для папки
r Чтение (просмотр содержания) Изучение имен файлов, входящих в директорию
w Запись (перезапись) Добавление, переименование и удаление файлов в каталоге
x Выполнение файлика Доступ к файлам каталога и чтение их атрибутов
Читайте также:  Установка вентиляции для ресторана

Далее рассмотрим разные сочетания прав (на файлы и папки):

Тип прав для пользователей (rwx) Для файла Для папки
Все запрещено Все запрещено
—x Выполнение Чтение атрибутов файлов
-w- Запись (перезапись) Все запрещено
-wx Запись и выполнение Разрешено все, кроме получения имен файлов, находящихся в папке
r— Чтение содержимого Чтение имен файлов
r-x Чтение и выполнение Чтение имен файлов и их атрибутов
rw- Чтение и запись Чтение имен файлов
rwx Все возможные права Все возможные права

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

Для каталогов чрезвычайно редко применяются следующие совокупности прав:

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

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

На основании выше сказанного можно отметить, что на практике для каталога чаще всего используются сочетания «rwx», «r-x» и «—»

Например, возьмем вариант «-wx» и вкратце проанализируем его. В принципе, он разрешает абсолютно все действия (конечно, при условии, что и на файлики прописаны нужные права), но закрывает доступ к именам объектов в директории, что согласитесь, веет бессмыслицей, так как во многих случаях операции с объектами основываются на знании их наименований. В этом случае, наверное, лучше использовать режим «—», который запрещает всё.

Права доступа в цифрах: chmod (777, 755, 655, 444, 400)

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

  • r (чтение) — 4
  • w (запись) — 2
  • x (исполнение) — 1
  • — (нет прав) — 0

Теперь вновь разберем вышеприведенный пример для назначения прав доступа «rwxr—r—». Для отображения прав каждого пользователя применяется сложение его прав: r (чтение) + w (запись) + x (исполнение). Таким образом, часть записи для владельца файла u (user) «rwx» превратится в 7 (4+2+1). Для членов групп g (group) и o (others) запись «r—» преобразуется в 4 (4+0+0). Тогда вся совокупность прав в цифровом выражении будет выглядеть как «744».

В качестве резюме представлю сводную таблицу с правами доступа chmod в буквах и цифрах:

chmod Файлы Папки (директории)
Выражен. в цифрах Выражен. в символах
Запрещены все действия Запрещены все действия
1 —x Выполнение Чтение атрибутов файлов*
2 -w- Запись Запрещены все действия
3 (2 + 1) -wx Запись и выполнение Разрешено все, кроме доступа к именам файлов**
4 r— Чтение содержимого Чтение имен файлов
5 (4 + 1) r-x Чтение и выполнение Чтение имен файлов и их атрибутов***
6 (4 + 2) rw- Чтение и запись Чтение имен файлов
7 (4 + 2 +1) rwx Все разрешено Все разрешено

* — нет возможности получения имен файлов, а также их создания/переименования/удаления.

** — можно создавать/переименовывать/удалять файлы, но отсутствует доступ к их названиям.

*** — нельзя создавать/переименовывать/удалять файлы в директории.

Теперь представлю еще одну таблицу, которая отражает суммарные права chmod для абсолютно всех групп пользователей (user, group, others) в формате цифр:

chmod Владелец u (user) Член группы g (group) Другие пользователи 0 (others)
777 Чтение, запись, исполнение Чтение, запись, исполнение Чтение, запись, исполнение
776 Чтение, запись, исполнение Чтение, запись, исполнение Чтение, запись
775 Чтение, запись, исполнение Чтение, запись, исполнение Чтение, исполнение
774 Чтение, запись, исполнение Чтение, запись, исполнение Чтение
766 Чтение, запись, исполнение Чтение, запись Чтение, запись
755 Чтение, запись, исполнение Чтение, исполнение Чтение, исполнение
655 Чтение, запись Чтение, исполнение Чтение, исполнение
644 Чтение, запись Чтение Чтение
444 Чтение Чтение Чтение
Читайте также:  Установка внешнего плиточного уголка

Это основные комбинации, которые наиболее часто используются в работе вебмастера. Другие формируются по аналогии. Если вы являетесь администратором сайта, но работаете с проектом, не подсоединившись по FTP протоколу, вы также относитесь к группе «Остальные пользователи». В таком случае при работе с сайтом нужно учитывать последнюю цифру в значении chmod.

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

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

Ежели у вас простенький сайт с использованием HTML-страниц, то на сервере, где расположены его файлики, достаточно на каталоги иметь права 755, а на файлы, входящие в их состав, 644:

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

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

Однако фокус в том, что в современных условиях для построения вебсайтов в массовом масштабе используются CMS (системы управления контентом), к которым относится и WordPress. А здесь могут находиться объекты, в которые необходимо производить записи от группы пользователей «others», а также, к примеру, папки с кэшем (в том числе создаваемые плагином кеширования), в которые загружается контент, включая изображения.

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

А в этом случае могут возникнуть проблемы, если права слишком завышены, и, наоборот, если права доступа к тому или иному файлу (папке) занижены, то возрастает угроза безопасности. Посему на основании вышесказанного можно определить некоторые рекомендации по практическому применению chmod для современного сайта под управлением ЦМС:

Для каталогов, где постоянно происходит запись и стирание файлов (например, для папки кэширования)

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

Для файлов, куда необходимо время от времени добавлять запись (пример — файл .htaccess)

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

Также рекомендую на папки, находящиеся в корне сайта, поставить код доступа Чмод 444.

Указание прав доступа для сайта с помощью ФТП клиента

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

Со своей стороны порекомендую ФТП менеджер (клиент) Файлзилла, который уже давно доказал свою надежность и безотказность в работе на протяжении длительного времени. Итак, открываете программу и соединяетесь посредством FTP к серверу хостера. В левой части «Удаленный сервер» сначала отмечаем файлы или папки, атрибуты которых будут подвергнуты редактированию:

И из контекстного меню, вызванного нажатием правой кнопки мыши, выбираем «Права доступа к файлу». После этого появится диалоговое окно «Изменить атрибуты файла» (на скриншоте ниже предоставлены примеры отдельно для файла и каталога):

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

При отмеченной галочке ниже расположенная группа настроек станет активной и вам потребуется еще выбрать, как нужно применять настройки: ко всем файлам и каталогам, только ко вложенным файлам либо только к каталогам. Теперь, думаю, процесс установки chmod на практике понятен.

Читайте также:  Установка датчика температуры внешнего воздуха 2110

источник

Chmod

Для тех, кто ищет быстрый способ парой командой массово поменять права доступа на файлы и папки:

Если не в курсе, что это, подробности далее

Что такое Chmod

Это UNIX-утилита, с помощью которой можно быстро через консоль изменить права на доступ для определённых владельцев (owner) и групп (group) для указанных категорий и файлов.

Зачем использовать Chmod

В UNIX-системах — FreeBSD, Ubuntu, Debian, Centos — у каждого файла и папки (каталога) есть свои владелец и группа, к которым они относятся. Сделано это с целью разграничения прав доступа на чтение (r, read), запись (w, write) и исполнение (x, execute) для разных пользователей: владельцев (u), пользователей, входящих в группу владельца (g) и остальных (o).
Например, если вы пользуетесь хостингом, то должны знать, что ваш сайт физически находится на одном сервере рядом со множеством других сайтов таких же, как вы, пользователей со своими сайтами. Чтобы вы не смогли помешать друг другу, у каждой директории с сайтами свой владелец и группа пользователей, к которым они относятся.
На shared хостинге о вас позаботятся профессиональные системные администраторы. А если вы имеете свой сервер VDS/VPS, то просто обязаны следить за прописанными правами на доступ к файлам. Например, если вдруг с помощью уязвимости на сайте злоумышленник сможет записать backdoor в директорию для загрузки файлов, то с правильно прописанными правами доступа он не сможет причинить большого вреда файловой системе. Конечно, в директории для загрузки файлов должно быть принудительно отключено исполнение скриптов, но это тема уже для другого разговора.

Синтаксис Chmod

В части [Правила доступа] могут быть либо числовые, либо символьные значения.
[Файл/Файлы/Каталог файлов] — путь к файлу, файлам или к каталогу файлов, абсолютный или относительный.

Ключи -R, -v, -f

  • -R
    Рекурсивное изменение прав доступа для каталога и вложенных файлов и подкаталогов
  • -v
    Подробное описание применения изменения прав доступа или невозможности этого действия
  • -f
    Не выдавать сообщение об ошибке для тех файлов и каталогов, для которых невозможно изменить права доступа

Правила доступа Chmod

Как вы уже знаете, права доступа определяются тем, как пользователь может взаимодействовать с файлами и каталогами, а именно r — read (чтение), w — write (запись), x — execute (выполнение).
А также, вы знаете, что эти права должны быть прописаны для трёх групп пользователей:

  1. Владелец файла или каталога;
  2. Пользователи, входящие в группу владельца;
  3. Остальные.

Теперь посмотрим в таблицу определения прав:

Три варианта записи прав пользователей

То есть, для того, чтобы записать правило для владельца дать доступ на чтение и запись, остальным дать права только на чтение, мы должны дать права ( rw-r—r— )

Теперь обратите внимание на столбец Символьная и Восьмеричная . Там визуально показано, что то, что выглядит символьно как ( rw-r—r— ), в восьмеричном виде выглядит как ( 644 ). Это выражение и будем использовать как числовую запись в команде.

Теперь осталось собрать всё воедино в одну запись. Для примера, изменим права на доступ «всем дать права на чтение, владельцу право изменять содержимое» для файла index.php :

Как проверить права Chmod

где index.php — файл или каталог, который нужно проверить.

Пример правильного использования Chmod

Правила доступа по умолчанию для каталогов 755 , для файлов 644 . Поэтому, в подавляющем большинстве случаев, вам понадобятся только эти права.

Ниже пример того, как в каталоге /var/www/sheensay.ru на все файлы рекурсивно поставить права 0644 , а на все каталоги и подкаталоги 0755

Первой командой переходим в нужную директорию, далее с помощью команды find ищем нужный тип: файлы -f (files) и каталоги -d (directories) — и запускаем chmod с нужными правами.

После использования Chmod появились ошибки

Если после правильной настройки Chmod перестали открываться некоторые страницы сайта, открывается белый экран, не загружаются файлы на сайт, проверьте, правильно ли вы установили Chown для всех каталогов и файлов сайта, возможно, права доступа стоят слишком строгие. Либо или php, или Apache запускаются не от того пользователя.

источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *