
Команда 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-й символ):
-
для файлу,d
для директорії (папки). - Власник (Owner/User) (2-4 символи): Права для користувача, який створив файл.
- Група (Group) (5-7 символи): Права для користувачів, що належать до групи файлу.
- Інші (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
(читання) = 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
— Найчастіший варіант для скриптів та папок.
- 7 (Власник):
rwx
— повні права. - 5 (Група):
r-x
— читання та виконання. - 5 (Інші):
r-x
— читання та виконання.
chmod 644 index.html
— Стандарт для веб-файлів, які не є виконуваними.
- 6 (Власник):
rw-
— читання та запис. - 4 (Група):
r--
— тільки читання. - 4 (Інші):
r--
— тільки читання.
Ще один практичний приклад: Кроки для розрахунку прав кожної категорії користувачів.
Щоб обчислити права та підсумкову цифру, потрібно провести невелику математичну операцію підсумовування:
- Якщо вам потрібно встановити права на читання та запис для власника, тоді: Читання (4) + Запис (2) =
6
- Якщо вам потрібно встановити права на читання та виконання для групи, вважаємо: Читання (4) + Виконання (1) =
5
- Якщо вам потрібно встановити право на читання для інших, тоді: Читання (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
для скриптів, і поступово до вас прийде відчуття повного контролю над своєю системою.