Введение
Безопасность файловой системы в дистрибутивах Linux держится на строгой системе разграничения доступа, ключевым инструментом которой выступает утилита chmod. В этой статье мы детально разберем внутреннюю логику прав пользователей, сопоставим цифровой формат (маски вроде 755 и 644) с символьной нотацией (rwx), а также закрепим теорию наглядными примерами выполнения команд в терминале.
1. Модель доступа к файлам и чтение атрибутов с помощью ls -l
Для безопасных экспериментов с атрибутами доступа подготовим изолированную рабочую директорию и перейдем в нее:
mkdir -p ~/chmod_demo && cd ~/chmod_demo

Сгенерируем пустой тестовый документ командой touch sample.txt, над которым будем проводить последующие манипуляции:

Чтобы изучить текущие параметры доступа и метаданные созданного объекта, вызовем детальный просмотр через ls -l sample.txt.
Строка атрибутов в начале вывода (-rw-r--r--) состоит из 10 позиций: начальный дефис указывает на стандартный файл, а последующие блоки по три символа регламентируют права для владельца (чтение и запись), группы-владельца (только чтение) и всех остальных пользователей системы (только чтение).
⚙️ [Полезные ключи утилиты ls]
-l : формирует расширенный листинг с подробной информацией (права доступа, владелец, группа, размер, временная метка модификации).-a : отображает полный список элементов, не скрывая конфигурационные файлы с точкой в начале имени.-h : форматирует размер файлов в удобный для восприятия вид (КБ, МБ, ГБ) при совместном использовании с -l.-d : выводит свойства самого каталога, предотвращая разворачивание его содержимого.-R : производит рекурсивный обход структуры каталогов, включая все вложенные ветки и файлы.

2. Управление правами через восьмеричную систему счисления (chmod 644, 755)
Убедимся, что текущая сессия терминала открыта в нашей тренировочной директории ~/chmod_demo:
cd ~/chmod_demo

Назначим владельцу максимальные привилегии (чтение 4 + запись 2 + выполнение 1 = 7), а для группы и сторонних пользователей ограничимся запуском и просмотром (чтение 4 + выполнение 1 = 5), выполнив команду chmod 755 sample.txt:

Проверим результат трансформации прав утилитой ls -l sample.txt.
Атрибуты приняли вид -rwxr-xr-x: сегмент владельца трансформировался в rwx, а позиции группы и остальных учетных записей теперь содержат флаг r-x, подтверждая добавление бита исполнения (x).

Вернем файл к типовой конфигурации для обычных текстовых документов, предоставив владельцу чтение и запись (6), а остальным участникам системы — исключительно просмотр (4 для группы, 4 для остальных):
chmod 644 sample.txt

Выполним повторный опрос статуса файла через ls -l sample.txt.
Строка прав вернулась к значению -rw-r--r--: бит запуска снят со всех категорий пользователей, сохранены лишь операции чтения и модификации.

3. Точечная корректировка прав с применением символьного синтаксиса
Для отработки модификаций без пересчета числовых масок снова вернемся в рабочий каталог ~/chmod_demo:
cd ~/chmod_demo

Создадим элементарный командный сценарий оболочки, для которого потребуется флаг исполнения:
echo '#!/bin/bash\necho "Hello Linux"' > test.sh

Чтобы разрешить запуск сценария абсолютно всем (владельцу, участникам группы и прочим пользователям), добавим бит исполнения лаконичной инструкцией chmod +x test.sh:

Проинспектируем новое состояние файла посредством ls -l test.sh.
Формат -rwxr-xr-x в консоли свидетельствует о том, что исполняемый статус (x) успешно внедрен для всех уровней доступа.

Символьный режим позволяет объединять директивы через запятую. Лишим группу возможности редактирования скрипта, а остальных пользователей лишим права даже читать его:
chmod g-w,o-r test.sh

Оценим изменения при помощи ls -l test.sh.
Маска приняла вид -rwxr-x--x: группа потеряла возможность записи, а у категории others отобрали право на чтение (r), оставив только прямой запуск.

4. Групповое рекурсивное изменение прав каталогов и файлов (флаг -R)
Смоделируем типовую рабочую среду с вложенными подкаталогами проекта и системных журналов:
mkdir -p ~/chmod_demo/project/logs

Наполним созданную структуру тестовым скриптом Python и журнальным файлом:
touch ~/chmod_demo/project/app.py ~/chmod_demo/project/logs/app.log

Применим опцию рекурсивной обработки -R, чтобы каскадно распространить профиль безопасности 750 на каталог project, его поддиректории и все вложенные файлы:
chmod -R 750 ~/chmod_demo/project
Эта команда выдает полный контроль (7) автору, оставляет права на чтение и навигацию (5) группе и наглухо блокирует любой доступ (0) для всех посторонних пользователей.

Убедимся в корректности прав самого корневого каталога с помощью ls -ld ~/chmod_demo/project:

Индикация drwxr-x--- подтверждает успешную изоляцию: владельцу назначено rwx, группе — r-x, а внешним учетным записям доступ закрыт (---).
Наконец, проверим глубину распространения правил внутри структуры командой ls -l ~/chmod_demo/project:

Скрипт app.py и папка logs получили соответствующие уровни доступа (-rwxr-x--- и drwxr-x---), что доказывает надежность каскадного переопределения через ключ -R.
Мы подробно рассмотрели механику разграничения доступа в Linux, сопоставили практическое назначение масок 755 и 644, а также освоили гибкие сценарии утилиты chmod. Грамотная настройка прав защищает критические системные данные от несанкционированного вмешательства и гарантирует стабильную работу серверного окружения.