
Права доступу до файлів у Linux — це одна з найважливіших основ безпеки будь-якого сервера — від невеликої віртуальної машини до виробничого VPS на базі Linux. Правильні права доступу запобігають випадковому видаленню, зменшують витік даних і ускладнюють атаки (бо навіть якщо зловмисник отримає доступ до одного облікового запису, він все одно не зможе отримати доступ до всього).
У цьому посібнику пояснюється, як працюють права доступу, як їх читати та як безпечно налаштовувати за допомогою chmod, chown, груп, umask та ACL — з практичними прикладами для хостингу та веб-серверів.
Кожен файл і каталог належить:
Існує три основні права:
Ці правила є необхідними в будь-якій багатокористувацькій системі, включаючи хостингові середовища та VPS-сервери, де паралельно існують численні служби та користувачі.
ls -lls -l
Приклад виводу:
-rw-r----- 1 alice dev 2048 Mar 10 12:00 config.php
drwxr-xr-x 2 root root 4096 Mar 10 12:00 /var/www
Розшифровка -rw-r-----:
Порада: для отримання більш детальної інформації (включно з числовими режимами) використовуйте:
stat filename
У каталогах r/w/x поводяться по-різному:
| Право | Для файлу | На каталозі |
|---|---|---|
| r | Читати вміст файлу | Перелічити записи каталогу (ls) |
| w | Редагувати вміст файлу | Створити/видалити/перейменувати файли всередині (якщо поєднано з x) |
| x | Виконати файл як програму/скрипт | Ввести/отримати доступ до елементів всередині (cd, відкрити файли) |
Ось чому трапляється ситуація «Я бачу папку, але не можу відкрити файли»: каталог може мати r без x.
Ви побачите права доступу у двох основних форматах:
rwxr-xr-x755, 644, 600Числові значення є сумами:
Отже:
rwxr-xr-----Ці команди є повсякденним інструментарієм для управління правами доступу на хостингових серверах Linux та VPS.
# Numeric mode:
chmod 644 index.html
chmod 755 script.sh
# Symbolic mode:
chmod u=rw,g=r,o=r config.ini
chmod u x deploy.sh
chmod g w uploads
Будьте обережні з рекурсивним chmod: каталоги та файли часто потребують різних режимів (наприклад, 755 для каталогів, 644 для файлів). Замість chmod -R, безпечніше використовувати find:
# Set directories to 755
find /var/www/site -type d -exec chmod 755 {} ;
# Set files to 644
find /var/www/site -type f -exec chmod 644 {} ;
# Change owner only
chown alice file.txt
# Change owner and group
chown alice:dev file.txt
# Recursive ownership change (use carefully!)
chown -R www-data:www-data /var/www/site
chgrp dev file.txt
Linux включає спеціальні прапорці дозволів, що використовуються для спільних каталогів та контролю поведінки привілеїв:
chmod u s).chmod g s)./tmp) — chmod t.# Sticky bit on shared folder
chmod t /shared
# SGID on a team directory (keeps consistent group ownership)
chmod g s /var/www/team_project
На хостингових та веб-серверах SGID особливо корисний для командних розгортань, де кілька користувачів редагують один і той самий проект без постійного виправлення групової власності.
umask визначає права доступу за замовчуванням для новостворених файлів та каталогів. Це критично важливо на серверах: без безпечного umask нові файли можуть виявитися занадто відкритими.
# View current umask
umask
# Example: safer defaults (common on servers)
umask 027
З umask 027 типовими значеннями за замовчуванням стають:
Іноді потрібно надати доступ одному користувачеві, не змінюючи власника/групу. Саме в таких випадках ACL (списки контролю доступу) є правильним інструментом.
# View ACL
getfacl file.txt
# Give user bob read/write access
setfacl -m u:bob:rw file.txt
# Give group qa read access
setfacl -m g:qa:r file.txt
# Default ACL for a directory (new files inherit it)
setfacl -d -m g:dev:rwX /var/www/team_project
ACL дуже практичний на VPS-хостингу, де ви керуєте декількома службами/користувачами і хочете мати суворий контроль без постійних змін власника.
Це загальні, безпечні вихідні налаштування (налаштуйте їх, якщо ваша програма потребує іншої поведінки):
~/.ssh → 700, ключі → 600755644600 (або 640 з контрольованою групою)Уникайте chmod 777. Це найпоширеніший «швидкий спосіб», який стає діркою в безпеці — особливо у спільних середовищах та неправильно налаштованих веб-додатках.
Права доступу — це лише частина безпеки сервера. Вам також потрібна видимість:
Якщо ви хостите веб-сайти або сервіси, поєднання правильних дозволів з моніторингом зробить ваше середовище Linux значно стабільнішим і безпечнішим.
Права доступу до файлів у Linux прості за концепцією, але потужні на практиці. Навчіться читати ls -l, стратегічно використовувати групи, уникати ризикованих рекурсивних змін, встановлювати безпечну umask та застосовувати ACL, коли вам потрібен точний контроль. Цей підхід є необхідним на будь-якому VPS під управлінням Linux і допомагає підтримувати стабільність та безпеку вашого хостингового середовища.