Классическая картина: начинающий администратор разворачивает сайт на WordPress или переносит скрипты, и внезапно сталкивается со сбоем — веб-сервер не может загрузить картинку, обновить плагин или выплевывает ошибку доступа Permission Denied. Самое частое и худшее «решение», которое советуют на сомнительных форумах — бахнуть команду chmod -R 777 на всю директорию.
Давать полные права на чтение, запись и выполнение абсолютно всем пользователям в системе — это должностное преступление против безопасности сервера. Любой уязвимый скрипт или загруженный шелл получит полный контроль над вашими файлами. Безопасность и стабильность Linux начинаются с жесткой дисциплины прав доступа. Сегодня мы разберем физику работы утилит chown и chmod, чтобы вы навсегда забыли про слепое выставление трех семерок.
Часть 1: Разделяй и властвуй — Утилита chown
Прежде чем настраивать маски прав, нужно четко определить, кто является хозяином файлов. В Linux у каждого файла и папки есть два обязательных владельца:
- Конкретный пользователь (User / Owner)
- Группа пользователей (Group)
Если вы залили файлы сайта на сервер под учетной записью root, то веб-сервер (который в Debian / Ubuntu обычно работает от имени системного пользователя www-data) физически не сможет с ними работать. Ему просто запрещено трогать чужую собственность.
Чтобы сменить владельца, используется команда chown (Change Owner). Флаг -R отвечает за рекурсивный обход, то есть применяет изменения ко всем вложенным папкам и файлам:
sudo chown -R www-data:www-data /var/www/html/
Синтаксис простой: сначала пишем целевого пользователя, затем через двоеточие — целевую группу, и в конце — путь к директории. Теперь веб-сервер имеет полное законное право работать с этой папкой.
Часть 2: Магия цифр — Утилита chmod
Когда владельцы распределены правильно, мы настраиваем, что именно им разрешено делать. За это отвечает команда chmod (Change Mode). Права кодируются тремя цифрами (например, 755 или 644).
Каждая цифра в этой тройке отвечает за свой уровень доступа:
- Первая цифра — права для Владельца (Owner).
- Вторая цифра — права для членов Группы (Group).
- Третья цифра — права для Всех остальных в системе (Others).
Сама же цифра собирается как конструктор из суммы трех базовых прав доступа:
4— Чтение (Read / **r**)2— Запись (Write / **w**)1— Выполнение (Execute / **x** — для запуска скриптов или захода внутрь папок)0— Полный запрет любых действий.
Хотите дать владельцу полные права (чтение + запись + выполнение)? Складываем: 4 + 2 + 1 = 7.
Хотите дать группе только чтение и выполнение? Складываем: 4 + 1 = 5.
Хотите дать остальным только чтение? Оставляем просто 4.
В итоге получаем классическую маску прав: 754.
Инженерный стандарт для веб-серверов
Запомните железное правило разграничения прав для веб-директорий (того же WordPress или кастомных php/python проектов):
Для всех директорий (папок) стандарт — 755:
Владелец может делать всё, группа и остальные — могут читать файлы и заходить в папку, но не имеют права ничего там изменять или создавать вредоносные конфиги.
sudo find /var/www/html/ -type d -exec chmod 755 {} \;
Для всех обычных файлов стандарт — 644:
Владелец (веб-сервер) может читать и редактировать файлы, а весь остальной мир — только читать. Выполнять файлы как бинарники запрещено, что на корне отсекает запуск загруженных хакерами скриптов.
sudo find /var/www/html/ -type f -exec chmod 644 {} \;
Утилита find в этих примерах сама находит строго папки (-type d) или строго файлы (-type f) и точечно накатывает на них правильные маски, избавляя вас от необходимости править всё руками.
Ультимативная шпаргалка по маскам прав chmod
| Маска в цифрах | Буквенный вид (rwx) | Кому и зачем выставлять |
|---|---|---|
600 |
-rw------- |
**Максимальная изоляция.** Читать и писать может только владелец. Идеально для приватных SSH-ключей (в папке .ssh/id_rsa) и конфигурационных файлов с паролями от баз данных. Без этих прав OpenSSH просто откажется работать с ключом. |
644 |
-rw-r--r-- |
**Системный стандарт для файлов.** Идеально для конфигураций веб-серверов, исходного кода скриптов, картинок и статики сайтов. Скрипт работает, но защищен от перезаписи извне. |
700 |
-rwx------ |
Права только для владельца. Применяется для приватных bash-скриптов автоматизации в домашней папке, которые не должен видеть или запускать никто другой. |
755 |
-rwxr-xr-x |
**Системный стандарт для папок и исполняемых скриптов.** Позволяет системе корректно читать структуру каталогов и запускать бинарные файлы на выполнение. |
Заключение
Наведение порядка в правах доступа — это не разовая акция, а постоянная гигиена сисадмина. Понимание разницы между chown (кто владеет) и chmod (что разрешено) защищает сервер от взломов, изоляцию процессов — от пересечений, а вас — от глупых ошибок конфигурации.
Никаких 777!

ну вот чётко и ясно. Спасибо!