SebWeo.com
В мире 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 символов, разбиваемых на четыре части:
- для файла, d для директории (папки).Сами права обозначаются тремя буквами — rwx:
r (Read) — право на чтение содержимого файла или просмотр списка файлов в папке.w (Write) — право на изменение (запись) файла или создание/удаление файлов в папке.x (Execute) — право на выполнение файла (если это скрипт или программа) или вход в папку.
Команда chmod (от «change mode«) позволяет изменять эти права. Она имеет два основных синтаксиса, и понимание обоих делает вас гибким администратором.
Этот режим использует буквы для обозначения пользователей (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
Это самый популярный способ использования chmod. Он базируется на числах, где каждое право имеет свой вес:
r (чтение) = 4w (запись) = 2x (выполнение) = 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 — наиболее частый вариант для скриптов и папок.
rwx — полное право.r-x — чтение и выполнение.r-x — чтение и выполнение.chmod 644 index.html — Стандарт для веб-файлов, которые являются не исполняемыми.
rw- — чтение и запись.r-- — только чтение.r-- — только чтение.
Еще один практический пример: Шаги для расчета прав каждой категории пользователей.
Чтобы вычислить права и итоговую цифру, нужно провести небольшую математическую операцию суммирования:
654Заджойним итоговые значения: в примере (для владельца 6, для группы 5, а остальных 4) итоговое значение будет = 654.
Иногда нужно изменить права для папки и всех файлов и подпапок внутри нее. Для этого используется флаг -R (рекурсивно).
ВНИМАНИЕ: Используйте эту опцию с большой осторожностью, поскольку массовое изменение прав может нарушить работу системы или создать угрозу безопасности.
Например, установить права 755 для папки public_html и всего ее содержимого:
chmod -R 755 public_html/ Правильной практикой является установка прав 755 для папок и 644 для файлов внутри них, что делается с помощью комбинации команд find и chmod.
Грамотное использование chmod дает вам несколько ключевых преимуществ:
Команда chmod — это не просто утилита, это фундаментальный механизм контроля в Linux. Овладев символьным и цифровым режимами, вы сможете гибко и эффективно управлять безопасностью ваших файлов и директорий. Начните с простых примеров, например chmod 644 для текстовых файлов и chmod 755 для скриптов, и постепенно к вам придет чувство полного контроля над своей системой.
WordPress годами был непревзойденным "монолитом": он отвечал и за удобную админ-панель, и за хранение данных,…
В мире веб-серверов часто говорят о противостоянии Nginx vs Apache. Но что, если бы я…
Когда я начинал свой путь в веб-разработке, вопрос "какой веб-сервер использовать?" практически не стоял. Ответ…
Когда речь заходит о веб-серверах, два имени всегда на слуху: Apache и Nginx. Apache —…
В мире веб-разработки мы постоянно сталкиваемся с проблемой: "А у меня на компьютере все работает!".…
На заре моей карьеры веб-разработчика все было относительно просто: установил локальный сервер (помните Denwer?), положил…