Налаштування прав доступу до файлів 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. Ну а ще скоро Чорна п’ятниця, тому навчатися можна ще й максимально вигідно. Твоя знижка вже доступна.

Залишити відповідь

Дякуємо, що поділились