Команда chmod: Ваш путеводитель по управлению правами доступа

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

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

 

Что такое право доступа к файлам?

Каждый файл и каждая папка в Linux-подобных системах имеет набор флагов, определяющих, кто и что может с ними делать. Это и есть права доступа. Чтобы их увидеть, достаточно выполнить команду ls -l в терминале.

$ls -l
-rwxr-xr-- 1 user group 4096 июл 27 11:00 script.sh
drwxr-xr-x 2 user group 4096 июл 27 11:02 my_folder

Таинственная строка -rwxr-xr-- в начале и является визуальным представлением прав. Она состоит из 10 символов, разбиваемых на четыре части:

  1. Тип файла (1-й символ): - для файла, d для директории (папки).
  2. Владелец (Owner/User) (2-4 символы): Права для пользователя, создавшего файл.
  3. Группа (Group) (5-7 символы): Права для пользователей, принадлежащих к группе файлов.
  4. Другие (Others) (8-10 символы): Права для всех других пользователей системы.

Сами права обозначаются тремя буквами — rwx:

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

 

Два режима `chmod`: Символьный и Цифровой

Команда chmod (от «change mode«) позволяет изменять эти права. Она имеет два основных синтаксиса, и понимание обоих делает вас гибким администратором.

1. Символьный режим: интуитивно понятный

Этот режим использует буквы для обозначения пользователей (u, g, o, a) и операторы (+, -, =) для изменения прав (r, w, x).

  • Пользователи: u (user/владелец), g (group/группа), o (others/другие), a (all/все).
  • Операторы: + (добавить право), - (забрать право), = (установить конкретные права, перезаписав старые).

 

Примеры символьного режима:

Добавить право на выполнение файла script.sh для владельца:

chmod u+x script.sh

Забрать право на запись у всех, кроме владельца, для файла config.txt:

chmod go-w config.txt

Установить права «чтения и записи» для владельца, и «только чтения» для группы и других:

chmod u=rw,go=r config.txt

 

2. Цифровой (восьмеричный) режим: быстрый и универсальный

Это самый популярный способ использования chmod. Он базируется на числах, где каждое право имеет свой вес:

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

Чтобы получить нужную комбинацию, вы просто добавляете эти цифры. Например, rwx = 4+2+1 = 7. Права задаются тремя цифрами – для владельца, группы и других соответственно.

Число Права (rwx) Описание
0 --- Никаких прав
1 --x Только выполнение
2 -w- Только запись
3 -wx Запись и выполнение (2+1)
4 r-- Только чтение
5 r-x Чтение и выполнение (4+1)
6 rw- Чтение и запись (4+2)
7 rwx Полные права (4+2+1)

 

Популярные комбинации в цифровом режиме:

chmod 755 my_script.sh — наиболее частый вариант для скриптов и папок.

  • 7 (Владелец): rwx — полное право.
  • 5 (Группа): r-x — чтение и выполнение.
  • 5 (Другие): r-x — чтение и выполнение.

chmod 644 index.html — Стандарт для веб-файлов, которые являются не исполняемыми.

  • 6 (Владелец): rw- — чтение и запись.
  • 4 (Группа): r-- — только чтение.
  • 4 (Другие): r-- — только чтение.

 

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

  1. Если вам нужно установить права на чтение и запись для владельца, тогда: Чтение (4) + Запись (2) = 6
  2. Если вам нужно установить права на чтение и выполнение для группы, считаем: Чтение (4) + Выполнение (1) = 5
  3. Если вам нужно установить право на чтение для других, тогда: Чтение (4) = 4

Заджойним итоговые значения: в примере (для владельца 6, для группы 5, а остальных 4) итоговое значение будет = 654.

 

💡 Продвинутый уровень: Рекурсивное изменение прав

Иногда нужно изменить права для папки и всех файлов и подпапок внутри нее. Для этого используется флаг -R (рекурсивно).

ВНИМАНИЕ: Используйте эту опцию с большой осторожностью, поскольку массовое изменение прав может нарушить работу системы или создать угрозу безопасности.

Например, установить права 755 для папки public_html и всего ее содержимого:

chmod -R 755 public_html/

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

 


Почему важно правильно настраивать права?

Грамотное использование chmod дает вам несколько ключевых преимуществ:

  • Безопасность: Вы ограничиваете доступ к чувствительным файлам (например, файлам конфигурации с паролями), позволяя их читать только владельцу.
  • Контроль: Вы четко определяете, кто может изменять файлы, предотвращая случайные или злонамеренные редактирования.
  • Функциональность: Веб-серверы и скрипты просто не будут работать без корректно выставленных прав на выполнение и чтение.
  • Порядок: Это основа правильной организации файловой структуры в многопользовательских системах.

 


Вместо вывода

Команда chmod — это не просто утилита, это фундаментальный механизм контроля в Linux. Овладев символьным и цифровым режимами, вы сможете гибко и эффективно управлять безопасностью ваших файлов и директорий. Начните с простых примеров, например chmod 644 для текстовых файлов и chmod 755 для скриптов, и постепенно к вам придет чувство полного контроля над своей системой.

 

Recent Posts

CI/CD простыми словами: Что это и зачем?

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

2 дня ago

Интерфейс командной строки (CLI): Ваш ключ к эффективности и автоматизации

В современном цифровом мире мы привыкли к ярким иконкам, интуитивно визуальным окнам и удобным меню.…

5 дней ago

SEO продвижение сайта: Как вывести ваш бизнес в ТОП Google с Digital Агентством

Вы хорошо поработали над созданием современного сайта, внедрили качественный продукт и уверены в своем преимуществе…

2 недели ago

Чем отличается маршрутизатор от точки доступа и репитера?

Стабильное и быстрое интернет-соединение – важный критерий качества современной жизни. Если вы решили купить бытовую…

2 недели ago

SQL-инъекции: теоретическая часть необходимых знаний

Защита сайта от хакеров, ботов и онлайн-уязвимостей – это многогранная и кропотливая работа. А среди…

2 недели ago

Надоедливая ошибка _load_textdomain_just_in_time в WordPress

Сегодня рассмотрим практический кейс по борьбе с надоедливой ошибкой, с которой часто сталкиваются программисты WordPress…

3 недели ago