В прошлом материале я упоминал права доступа к файлу, указывая 777, но не останавливался на том, что это такое. Давайте рассмотрим подробнее, как в Unix-подобных системах задаётся доступ к файлам.
эксклюзивные полные права доступа есть только у владельца (4+2+1)
А теперь приведём конкретный пример. Допустим, у вас есть папка.
- Если у вас есть только права на запись, вы сможете её только переименовать, но никак не заглянуть внутрь
- Если у вас есть права только на исполнение, то вы сможете открыть папку, но не увидите в ней никакого содержимого. Но если вы знаете имена лежащих там файлов, то сможете с ними работать.
- Если у вас есть права на чтение и исполнение, то вы сможете пользоваться всем содержимым папки, но не сможете её переименовать или изменить атрибуты
Буквенный способ всегда состоит из 10 символов и имеет следующий вид:
drwxrw-r-x
Первый символ показывает, с чем вы имеете дело:
- прочерк означает обычный файл
- d — папку
- l — ссылку на другой файл
Оставшиеся девять символов делятся на три группы по три знака. Первые три показывают права доступа владельца, вторые три — группы, третьи — всех остальных:
- r — право на чтение (read)
- w — право на запись (write)
- x — право на запуск (execute)
- Chown рекурсивно для папок и файлов
- Команда chmod Linux. Как установить права доступа 777 на файл или папку в Linux
- Как пользоваться командами chown и chmod в Linux?
- ️ Как рекурсивно изменить права на папки и подкаталоги |
- Терминал Linux. Права доступа к каталогам и файлам в Linux, команды chmod и chown. | LinuxRussia.com
Если права нет, то на соответствующем месте ставится прочерк.
Есть ещё два специальных обозначения, обычно встречающиеся у папок:
- t — не позволяет пользователю удалять в данном каталоге чужие файлы, если у него нет права на запись в эти файлы
- s — означает, что файлы, создаваемые в каталоге, наследуют группу от каталога, а не от создателя файла
Таким образом, приведённый выше пример означает то же самое, что и 765.
Кстати, файл вполне может иметь и права доступа 000. Тогда единственный, кто может что-то с ним сделать будет root-администратор. Стоит помнить о такой возможности хотя бы потому, что стоит быть аккуратным с этим. Кстати, в этом случае и сменить права назад сможет тоже только администратор. Будьте аккуратнее.
Вообще говоря, настоятельно рекомендуем выводить в терминал или в файл действия всех опасных команд, это здорово поможет при диагностике и исправлении ошибок, которые могли возникнуть, благо несколько табов в приложении помогут нам расположить вывод команд так, чтобы никто никому не мешал, а если выводить в файл — так вообще хорошо, ибо мы его посмотреть можем потом, когда закончим все нужные нам действия. Такая политика позволяет экономить время в будущем.
Теперь о том, как менять права доступа и владельцев файлов. Правом изменения прав доступа обладают владелец файла и пользователь root. Отсюда вывод — если у вас не получается поменять права, используйте команду sudo.
Для смены прав доступа используется команда
Уровни прав на файлы и папки
- Право на чтение файла (обозначается буквой r — read). Для папки это значит, что пользователь может увидеть список файлов и папок, находящихся в этой папке.
- Право на редактирование и удаление файла (обозначается буквой w — write). Для папки это разрешение на создание файлов в этой папке.
- Право на исполнение (обозначается буквой x — eXecute). Разрешен доступ к файлу для запуска программ или скриптов, записанных в этом файле. Для папок право на исполнение разрешает перейти в эту директорию.


Владелец файла
Для начала обращу ваше внимание, что если в Windows владельцем файла является либо пользователь, либо операционная система, то в Unix-подобных ОС дело немного сложнее. Каждому файлу назначается не только пользователь владелец, но и группа. Для каждого пользователя группа создаётся по умолчанию, её название идентификатор совпадают с именем и ID пользователя. Номера идентификаторов начинаются с 1000.
Суперпользователь (root) также имеет свой идентификатор, который равен нулю. Идентификаторы от 1 до 999 используются в служебных целях (или получают различные приложения и системные службы).
Если вас заинтересовал этот момент, посмотрите содержимое файлов /etc/passwd и /etc/group в своей системе:
cat /etc/passwd
cat /etc/group
Вывод списка файлов также можно сделать подробным, указав в параметрах команды ключ «-l»:
ls -l
В первом столбике будут отображаться права доступа, затем число, а вот дальше как раз будет владелец и группа.
По умолчанию владельцем для файлов устанавливается пользователь, от имени которого был файл создан. Группа также устанавливается соответствующая этому пользователю.
Обращаю ваше внимание, что владелец и группа могут не совпадать, например, владельцем может быть «user1», а группа − «user2». Это нормальное явление, когда нужно более гибко настроить права доступа.
Права доступа в цифрах: chmod (777, 755, 655, 444,
Выше мы разобрали вариант записи чмод символами. Однако, во многих смыслах гораздо удобнее назначать те или иные права доступа в цифровом выражении:
- 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 | Чтение | Чтение | Чтение |
- Общие папки Linux | Losst
- Терминал Linux. Права доступа к каталогам и файлам в Linux, команды chmod и chown. | LinuxRussia.com
- Как сменить владельца папки Linux | Losst
- Установка DLE (DataLife Engine) через ISPmanager — Camel Host
- Как изменить Права Доступа в Linux
Это основные комбинации, которые наиболее часто используются в работе вебмастера. Другие формируются по аналогии. Если вы являетесь администратором сайта, но работаете с проектом, не подсоединившись по FTP протоколу, вы также относитесь к группе «Остальные пользователи». В таком случае при работе с сайтом нужно учитывать последнюю цифру в значении chmod.
Для примера возьмем файл с каким-нибудь скриптом. Чтобы он запускался при определенных действиях пользователя на сайте, вполне достаточно, чтобы на этот файлик были установлены права «4» («r—»). Можно и выше (5, 6, 7), но это не имеет смысла, так как при том же эффекте понизится уровень безопасности ресурса. На папку, в которой находится файлик со скриптом, уже требуются права «5» (доступ к директории и чтение содержимого), но опять же, не больше.
Ежели необходимо, чтобы скрипт не только предоставлял какую-то информацию, но и записывал данные (скажем, те, которые вводят посетители), то права в отношении каталога как минимум (он же и максимум, опять же, исходя из безопасности) потребуются «5», однако, для файла уже надо при этих обстоятельствах проставить «6» (что обеспечит чтение и запись).
Ежели у вас простенький сайт с использованием HTML-страниц, то на сервере, где расположены его файлики, достаточно на каталоги иметь права 755, а на файлы, входящие в их состав, 644:
Файлы |
644 |
Владелец (user) имеет право читать и записывать файлы (исполнять запрещено), члены группы (group) и остальные (others) могут лишь их читать (rw-r—r—) |
Папки |
755 |
Владелец (user) вправе выполнять все действия, а группа и другие пользователи имеют доступ к директории, могут просматривать названия и атрибуты файликов, однако, не имеют прав их записывать, изменять названия и удалять (rwxr-xr-x) |
Однако фокус в том, что в современных условиях для построения вебсайтов в массовом масштабе используются CMS (системы управления контентом), к которым относится и WordPress. А здесь могут находиться объекты, в которые необходимо производить записи от группы пользователей «others», а также, к примеру, папки с кэшем (в том числе создаваемые плагином кеширования), в которые загружается контент, включая изображения.
Поэтому назначения прав Чмод на те или иные файлы необходимо дифференцировать. Если вы входите в управление вебсайтом по FTP, то можете производить любые действия, однако во многих случаях работаем со своим проектом происходит через браузер (веб-обозреватель).
А в этом случае могут возникнуть проблемы, если права слишком завышены, и, наоборот, если права доступа к тому или иному файлу (папке) занижены, то возрастает угроза безопасности. Посему на основании вышесказанного можно определить некоторые рекомендации по практическому применению chmod для современного сайта под управлением ЦМС:
777 |
Для каталогов, где постоянно происходит запись и стирание файлов (например, для папки кэширования) |
755 |
Применительно к папкам, в которые постоянно записываются файлы, но не удаляются |
666 |
Для файлов, куда необходимо время от времени добавлять запись (пример — файл .htaccess) |
644 |
Для файлов, используемых только для чтения (.php, .html и др.) |
Также рекомендую на папки, находящиеся в корне сайта, поставить код доступа Чмод 444.
Права доступа
Права доступа указывают какие полномочия следует предоставить или забрать у указанного класса. Существуют три основных вида прав доступа, которые соответствуют базовым полномочиям:
[X ] сам по себе не является правом доступа, но тем не менее, может использоваться вместо x . Он на самом деле полезен только в случае использования оператора ‘+’ в сочетании с опцией -R, для того чтобы предоставить группе или остальным пользователям права доступа к дереву каталога, не давая прав на исполнение обычных файлов (например текстовых), что случится при применении команды ‘chmod -R a+rx’. Таким образом вместо нее можно использовать ‘X’, и соответственно выполнить ‘chmod -R a+rX’.