Команда 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

Чим CRM для стоматології відрізняється від універсальних систем

Коли власник стоматологічної клініки вперше замислюється про автоматизацію, він нерідко іде найпростішим шляхом: гуглить "CRM…

4 дні ago

Віддалена розробка з тропіків: Технічний бік, інфраструктура та організація робочого простору

Алоха! Останні кілька років остаточно закріпили тренд на віддалену роботу. Для веб-розробників, DevOps-інженерів та адміністраторів…

6 днів ago

AI-пошук і SEO: які компанії вже використовують GEO стратегії?

Пошукові системи стрімко змінюються, і те, що працювало вчора, сьогодні може стати неактуальним. Грамотне geo…

7 днів ago

Хміль, солод, дріжджі та вода: як створюється характер пива

Здається, пиво — простий напій: чотири інгредієнти, зрозуміла технологія. Але ті самі хміль, солод, дріжджі…

1 тиждень ago

SIP-транки — що це таке і як вони працюють у IP-телефонії

У сучасній IP-телефонії важливу роль відіграє технологія, яка забезпечує передачу голосу через інтернет між бізнесом…

3 тижні ago

Чому варто обрати ноутбук Apple MacBook Pro 14 для сучасних ІТ-завдань

Вибір робочої машини для веб-розробника або адміністратора серверів є завжди компромісом між портативністю, автономністю і…

4 тижні ago