Налаштування прав доступу до файлів Linux
Права доступу в Linux здаються дрібницею, доки система не відповість «Permission denied». І тут стає очевидно: дозволи працюють за чіткими правилами, навіть якщо, на перший погляд, це просто набір символів.
Щоб ці правила почали працювати на твою користь, треба зрозуміти, як Linux визначає, хто може взаємодіяти з файлом, а хто — ні.
Тому далі розбираємося, з кого взагалі складається система доступів.
Хто має доступ до файлів?
У Linux кожен файл належить конкретному власнику та групі, а всі інші користувачі потрапляють до категорії other. Для цих трьох категорій встановлюються окремі дозволи. Це дає змогу чітко розмежувати доступ: власник може мати повні права, група — часткові, а всі інші — мінімальні.
Переглянути права можна командою ls -l.
У виведенні ти побачиш тип файлу, набір прав, власника, групу й додаткову інформацію. Але головне — розібратися, як читати ці символи.
Як читати права у вигляді rwx?
Формат rw-r–r– складається з трьох блоків по три символи: для власника, групи та інших. Кожен символ означає певний дозвіл:
- r — читання;
- w — запис;
- x — виконання;
- – — відсутність дозволу.
Наприклад, rw- означає, що власник може читати й змінювати файл, але не виконувати його. А r– для групи й інших означає, що вони можуть лише переглядати файл без можливості змін.
Linux визначає твої права послідовно: спочатку перевіряє, чи ти власник файлу, потім — чи входиш у групу. Якщо ні, застосовуються права категорії «інші». Одночасно діє тільки один комплект прав.
Числовий формат
Той самий набір дозволів можна записати цифрами. Це зручний формат для команд і скриптів. У числовому режимі кожна дія має своє значення:
- r = 4
- w = 2
- x = 1
Сума цих значень формує одну цифру. Наприклад, rw- → 6, r-x → 5, r– → 4.
Формат складається з трьох цифр — для власника, групи та інших. Тому:
- rw-r–r– → 644
- rwxr-xr-x → 755
Це найпоширеніші права на серверах і хостингах.
Права для файлів і директорій
Хоч символи ті самі, директорії поводяться по-іншому.
Для файлів:
- r — можна читати вміст;
- w — редагувати файл;
- x — виконувати як програму або скрипт.
Для директорій:
- r — можна переглядати список файлів;
- w — додавати, видаляти та перейменовувати файли;
- x — заходити в директорію та отримувати доступ до її вмісту.
Без x у директорії ти не зможеш зайти в неї командою cd, навіть якщо маєш r.
Як перевірити права?
Основні команди:
- ls -l — класичний варіант перегляду прав;
- stat filename — детальний опис, включно з форматами прав і метаданими;
- namei -l /path/to/file — аналізує весь шлях і показує, чи є проблемні директорії.
Корисно, коли файл має правильні права, але доступ блокується вище по дереву.
Як змінювати права?
Права змінюють командою chmod. Є два режими — символьний і числовий.
Режим символів
Підходить, коли потрібно додати або забрати конкретне право:
- u — власник;
- g — група;
- o — інші;
- a — всі одразу.
Комбінації:
chmod u+x script.sh # додати виконання власнику
chmod g-w config.php # заборонити групі запис
chmod o=r file.txt # дозволити іншим тільки читання
chmod ug+rw data.txt # читання + запис для власника і групи
Числовий режим
Компактний і зручний для автоматизації:
chmod 644 index.php
chmod 755 /var/www/project
chmod 600 secrets.env
Рекурсивна зміна прав
Для проєктів часто потрібно різні права для директорій і файлів:
find /project -type d -exec chmod 755 {} \;
find /project -type f -exec chmod 644 {} \;
Так ти отримуєш чітку й безпечну структуру, а не хаотичні дозволи.
Спеціальні дозволи
У складніших сценаріях з’являються додаткові біти:
- SUID — програма запускається з правами власника файлу.
- SGID — процес працює з правами групи або директорія передає групу новим файлам.
- sticky bit — у директорії файли можуть видаляти тільки їхні власники (класичний приклад — /tmp).
Приклади:
chmod 4755 file
chmod 2755 directory
chmod 1755 shared
Що вважати безпечними правами?
У більшості випадків достатньо дотримуватися простих правил:
- файли → 644
- директорії → 755
- конфіденційні файли (паролі, ключі) → 600
- 777 — ніколи не використовуй у продакшені
Якщо файл не працює, краще перевірити власника (chown) і групу, а не відкривати доступ усім.
Підсумок
Права доступу в Linux — це про контроль над системою. Розуміючи, як працюють rwx, числові значення та поведінка директорій, набагато легше розбиратися з помилками, налаштовувати сервери й упорядковувати проєкти.
Якщо хочеш поглибити роботу з Linux і зрозуміти, як це використовується в реальних DevOps-процесах, зверни увагу на курси ITEDU. Ну а ще скоро Чорна п’ятниця, тому навчатися можна ще й максимально вигідно. Твоя знижка вже доступна.