Змінити права на один файл легко за допомогою chmod. Робити це для цілого дерева каталогів — сотень файлів і папок — ось де найчастіше помиляються. Команда chmod -R 755 працює, але робить виконуваними всі файли, що неправильно для звичайних веб-файлів. У цьому посібнику розібрані рекурсивні команди і, що важливіше, правильний спосіб задавати різні права для файлів і каталогів.

Основи: chmod -R

Прапорець -R (рекурсивно) застосовує chmod до каталогу і до всього, що всередині нього:

chmod -R 755 /path/directory

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

Правильний спосіб: файли 644, каталоги 755

Стандартні безпечні права — 644 для файлів (читання/запис власнику, читання іншим) і 755 для каталогів (їм потрібен біт execute, щоб у них можна було зайти). Використовуйте find, щоб застосувати кожне правильно:

# встановити 755 для всіх каталогів:
find /path/directory -type d -exec chmod 755 {} \;

# встановити 644 для всіх файлів:
find /path/directory -type f -exec chmod 644 {} \;

Саме так роблять досвідчені адміністратори. -type d вибирає каталоги, -type f — файли, тому кожен отримує потрібні права за один прохід.

Рекурсивна зміна власника (chown)

Права і власник — це різні речі. Щоб рекурсивно змінити власника і групу, наприклад, на користувача веб-сервера:

sudo chown -R www-data:www-data /path/directory

Замініть www-data на потрібного користувача для вашої системи (наприклад, nginx, apache або ваше ім’я користувача).

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

Коротка довідка

Права Значення Для чого
644 Власник: читання/запис, інші: читання Файли
755 Власник: повний доступ, інші: читання/виконання Каталоги, скрипти
600 Тільки власник: читання/запис Приватні конфіги, ключі
777 Повний доступ для всіх Уникати — ризик безпеки