Команда chmod: Ваш путівник з керування правами доступу
Опубліковано

Команда 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 для скриптів, і поступово до вас прийде відчуття повного контролю над своєю системою.

 

 

Напишіть тут свою думку/питання

Ваша пошта не публікуватиметься. Обов’язкові поля позначені *