У цій статті
Що таке chmod?
chmod (change mode) — це команда Unix та Linux, яка встановлює дозволи для файлів і каталогів. Кожен файл у системі Unix має три категорії дозволів: власник, група та інші. Кожна категорія може незалежно отримувати дозволи на читання, запис та виконання.
Розуміння chmod є необхідним для системного адміністрування, налаштування веб-серверів та безпечного управління файлами. Неправильні дозволи — одна з найпоширеніших причин вразливостей безпеки на серверах Linux.
Як працюють дозволи chmod
Дозволи можуть бути виражені у двох нотаціях: числовій (вісімковій) та символьній. Числова нотація використовує три цифри (напр. 755).
- Читання (r = 4) — перегляд вмісту файлу або списку каталогу
- Запис (w = 2) — зміна вмісту файлу або додавання/видалення файлів у каталозі
- Виконання (x = 1) — запуск файлу як програми або вхід у каталог через cd
Кожна цифра — це сума дозволів: 7 = читання + запис + виконання (4+2+1), 6 = читання + запис (4+2), 5 = читання + виконання (4+1), 4 = тільки читання.
Спробуйте безкоштовно — реєстрація не потрібна
Розрахувати дозволи chmod →Поширені значення дозволів
Ось найчастіше використовувані значення chmod та їх типові застосування.
- 755 (rwxr-xr-x) — стандарт для виконуваних файлів та каталогів; власник має повний доступ
- 644 (rw-r--r--) — стандарт для звичайних файлів; власник може читати та писати
- 700 (rwx------) — приватний каталог або скрипт; тільки власник має доступ
- 600 (rw-------) — приватний файл, як SSH-ключі; тільки власник може читати та писати
- 777 (rwxrwxrwx) — повний доступ для всіх; майже ніколи не доречно і становить загрозу безпеці
Наслідки для безпеки
Принцип найменших привілеїв безпосередньо стосується дозволів файлів: надавайте лише мінімально необхідні дозволи.
Спеціальні біти дозволів додають ще один рівень: SUID, SGID та sticky bit на каталогах запобігають видаленню чужих файлів.
Поради та найкращі практики
Дотримуйтесь цих рекомендацій для підтримки безпечних дозволів на ваших системах.
- Каталоги потребують дозволу на виконання — без нього користувачі не можуть увійти в каталог або отримати доступ до файлів
- Використовуйте рекурсивний chmod обережно — chmod -R 755 робить усі файли виконуваними; використовуйте find з -type f та -type d окремо
- Встановіть умовчання umask — umask 022 створює файли з правами 644 та каталоги з правами 755
Часті запитання
Яка різниця між 755 та 777?
При 755 власник має повний контроль, а група та інші можуть лише читати та виконувати. При 777 усі мають повний контроль. Використання 777 майже ніколи не є необхідним і створює серйозний ризик безпеки.
Чому каталогам потрібен дозвіл на виконання?
Біт виконання на каталозі контролює можливість його обходу. Без дозволу на виконання користувач не може увійти в каталог. Тому каталоги зазвичай мають 755, а файли — 644.
Які дозволи за замовчуванням для нових файлів?
Дозволи за замовчуванням залежать від налаштування umask. При стандартному umask 022 нові файли створюються з правами 644, а нові каталоги — з правами 755.