15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати
16.08.2025

Як перевірити дозволи файлів у Linux: повний посібник

Linux живить більшість світових серверів — від середовищ VPS Hosting до серверів корпоративного рівня Dedicated Servers — і не без причини. Він швидкий, стабільний і побудований з безпекою в основі. Одним з найбільш фундаментальних стовпів цієї безпеки є система дозволів файлів: точний, елегантний механізм, який контролює саме те, хто може читати, змінювати або виконувати будь-який файл або каталог у системі.

Незалежно від того, чи ви розробник, який розгортає веб-додаток, системний адміністратор, який посилює безпеку сервера, чи новачок, який вчиться користуватися командним рядком, розуміння того, як перевіряти та інтерпретувати дозволи файлів у Linux, є неминучою навичкою. Цей посібник охоплює все, що вам потрібно знати — від основ моделі дозволів до розширених спеціальних бітів — з практичними командами та прикладами з реального світу.

Що таке дозволи файлів Linux?

Кожен файл і каталог у Linux мають набір дозволів, прикріплених до них. Ці дозволи визначають, які дії дозволені і кому. Існує три основні типи дозволів:

ДозвілСимволЩо він робить на файліЩо він робить у каталозі
ЧитанняrПереглянути вміст файлуСписок імен файлів всередині
ЗаписwЗмінити або видалити файлСтворити або видалити файли всередину
ВиконанняxЗапустити файл як програмуУвійти (перейти) у каталог

Ці три дозволи застосовуються незалежно до трьох окремих категорій користувачів:

  • Власник (користувач) — користувач, який володіє файлом, зазвичай його творець.
  • Група — будь-який користувач, який належить до призначеної групи файлу.
  • Інші — всі інші в системі.

Ця матриця дозволів три на три дає адміністраторам Linux детальний, потужний контроль над доступом до кожного ресурсу в системі.

Як перевірити дозволи файлів: команда ls -l

Найшвидший і найчастіше використовуваний метод перевірки дозволів файлів — це команда ls -l (формат довгого списку).

ls -l file.txt

Приклад виведення:

-rw-r--r-- 1 alice developers 1024 Aug 16 12:30 file.txt

Розберемо кожен компонент цього виведення:

-  rw-  r--  r--   1   alice   developers   1024   Aug 16 12:30   file.txt
│   │    │    │    │     │          │          │         │             │
│   │    │    │    │     │          │          │         │             └─ Filename
│   │    │    │    │     │          │          │         └─ Last modified
│   │    │    │    │     │          │          └─ File size (bytes)
│   │    │    │    │     │          └─ Group name
│   │    │    │    │     └─ Owner name
│   │    │    │    └─ Number of hard links
│   │    │    └─ Others' permissions
│   │    └─ Group's permissions
│   └─ Owner's permissions
└─ File type (- = regular file, d = directory, l = symlink)

Отже -rw-r--r-- говорить нам:

  • Власник (alice): Читання + Запис (rw-)
  • Група (developers): Тільки читання (r--)
  • Інші: Тільки читання (r--)

Перевірка дозволів для кількох файлів

Щоб побачити дозволи для всіх файлів у каталозі одночасно:

ls -la /var/www/html

Прапор -a включає приховані файли (ті, що починаються з крапки). Це особливо корисно при аудиті каталогів веб-сервера в середовищі Shared Web Hosting або VPS.

Отримання детальної інформації про дозволи за допомогою stat

Для більш детального розбору — включаючи як символічні, так і числові представлення — використовуйте команду stat:

stat file.txt

Приклад виведення:

  File: file.txt
  Size: 1024            Blocks: 8          IO Block: 4096   regular file
Device: fd01h/64769d    Inode: 131073      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/   alice)   Gid: ( 1000/developers)
Access: 2024-08-16 12:30:00.000000000 +0000
Modify: 2024-08-16 12:30:00.000000000 +0000
Change: 2024-08-16 12:30:00.000000000 +0000

Ключовий рядок:

Access: (0644/-rw-r--r--)  Uid: ( 1000/   alice)   Gid: ( 1000/developers)

Це дає вам:

  • Числове (восьмеричне) позначення: 0644
  • Символічне позначення: -rw-r--r--
  • ID користувача (UID) та ID групи (GID) з їхніми читаними іменами

Команда stat неоцінима при усуненні помилок дозволів на виробничих серверах, оскільки вона надає весь необхідний контекст в одному виведенні.

Розуміння числового (восьмеричного) позначення дозволів

Дозволи Linux можна виразити як числа, що є форматом, який використовується командами на кшталт chmod. Кожному типу дозволу присвоюється значення:

ДозвілЧислове значення
Читання (r)4
Запис (w)2
Виконання (x)1
Без дозволу (-)0

Ви обчислюєте значення дозволу для кожної категорії користувача, додаючи значення разом:

КомбінаціяОбчисленняЧислове значення
rwx4 + 2 + 17
rw-4 + 2 + 06
r-x4 + 0 + 15
r--4 + 0 + 04
---0 + 0 + 00

Трьохзначне восьмеричне число представляє повний набір дозволів:

0644  →  Owner: 6 (rw-)  |  Group: 4 (r--)  |  Others: 4 (r--)
0755  →  Owner: 7 (rwx)  |  Group: 5 (r-x)  |  Others: 5 (r-x)
0700  →  Owner: 7 (rwx)  |  Group: 0 (---)  |  Others: 0 (---)

Перевірка дозволів у каталогах

Каталоги використовують ту саму модель дозволів, але значення кожного біта дещо відрізняється. Використовуйте ls -ld (зверніть увагу на прапор -d) для перевірки самого каталогу, а не його вмісту:

ls -ld myfolder

Приклад виведення:

drwxr-x--- 2 alice developers 4096 Aug 16 12:30 myfolder

Перший d підтверджує, що це каталог. Дозволи розбиваються як:

  • Власник (alice): rwx — Може перелічувати, створювати/видаляти файли та входити в каталог
  • Група (developers): r-x — Може перелічувати файли та входити, але не може створювати або видаляти
  • Інші: --- — Немає доступу взагалі

> Важливо: Біт виконання (x) у каталозі означає здатність входити в нього (тобто використовувати cd). Без x користувач не може перейти в каталог, навіть якщо у нього є дозвіл на читання. Це частий источник плутанини для новачків.

Спеціальні біти дозволів: setuid, setgid та Sticky Bit

Крім стандартних дев’яти бітів дозволів, Linux підтримує три спеціальні біти дозволів, які забезпечують розширений контроль доступу:

1. setuid (s на біті виконання власника)

Коли встановлено на виконуваному файлі, програма запускається з привілеями власника файлу, а не користувача, який її викликав. Саме так команди на кшталт passwd дозволяють звичайним користувачам змінювати /etc/shadow (який належить root).

ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 54256 Mar 27 2023 /usr/bin/passwd

s у позиції виконання власника вказує на setuid.

2. setgid (s на біті виконання групи)

На файлі програма запускається з привілеями групи. На каталозі нові файли, створені всередину, автоматично успадковують групу каталогу — корисно для спільних папок проектів.

ls -ld /shared/project
drwxrwsr-x 2 alice developers 4096 Aug 16 12:30 /shared/project

3. Sticky Bit (t на біті виконання інших)

Коли встановлено на каталозі, тільки власник файлу (або root) можуть видаляти або перейменовувати файли всередину, навіть якщо інші мають дозвіл на запис. Це стандартна конфігурація для /tmp:

ls -ld /tmp
drwxrwxrwt 12 root root 4096 Aug 16 12:30 /tmp

t в кінці сигналізує про те, що sticky bit активний.

Числове представлення спеціальних бітів:

Спеціальний бітЧислове значення
setuid4000
setgid2000
Sticky bit1000

Отже drwxrwxrwt = 1777 (1000 + 777).

Повна таблиця довідки дозволів

СимволічноЧисловоЗначення на файліЗначення у каталозі
---0Без доступуБез доступу
--x1Тільки виконанняТільки вхід
-w-2Тільки записЗмінити вміст (з x)
-wx3Запис + ВиконанняВхід та змінення
r--4Тільки читанняСписок імен (потребує x щоб бути корисним)
r-x5Читання + ВиконанняСписок та вхід
rw-6Читання + ЗаписСписок та змінення (без входу)
rwx7Повний доступПовний контроль

Приклади дозволів з реального світу

Ось найпоширеніші шаблони дозволів, які ви зустрінете на практиці:

-rw-r--r-- (0644) — Стандартний файл

-rw-r--r-- 1 alice developers 1024 Aug 16 12:30 config.txt

Власник може читати та писати. Група та інші можуть тільки читати. Типово для файлів конфігурації та веб-вмісту.

-rwxr-xr-x (0755) — Виконуваний скрипт або бінарний файл

-rwxr-xr-x 1 alice developers 4096 Aug 16 12:30 deploy.sh

Власник має повний доступ. Всі інші можуть читати та виконувати, але не можуть змінювати. Стандартно для shell-скриптів, бінарних файлів веб-сервера та публічних виконуваних файлів.

-rw------- (0600) — Приватний файл

-rw------- 1 alice alice 1679 Aug 16 12:30 id_rsa

Тільки власник може читати або писати. Немає доступу для когось іншого. Потрібно для приватних ключів SSH — SSH відмовиться використовувати файл ключа з більш широкими дозволами.

drwxr-xr-x (0755) — Стандартний публічний каталог

drwxr-xr-x 5 alice developers 4096 Aug 16 12:30 public_html

Звичайно для каталогів веб-кореня. Власник має повний контроль; інші можуть переглядати та входити.

drwx------ (0700) — Приватний каталог

drwx------ 3 alice alice 4096 Aug 16 12:30 .ssh

Повністю приватний. Тільки власник може отримати доступ. Потрібно для ка

15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати