Права доступу – це атрибути файлу або каталогу, які вказують серверу, хто і що може робити з відповідним файлом або каталогом. Зазвичай права доступу регламентують такі дії, як читання, запис у файл (або каталог), виконання.
У системах Unix (Linux) всі користувачі поділяються на три групи:
user – безпосередньо власник файлу;
group – член тієї групи, до якої належить власник файла;
world – всі інші.
Коли ви з’єднуєтеся з сервером, він визначає, до якої групи належите. Наприклад, підключаючись до сервера FTP, ви входите під своїм ім’ям користувача, відповідно сервер відносить вас до групи user. Інші користувачі, підключаючись FTP, буде віднесено до групи group, а коли людина потрапляє до вас на сайт через свій браузер, то вона потрапляє в групу world.
Після визначення групи користувач отримує права на дії з об’єктами, тобто може прочитати, записати або виконати файл. Щоб переглянути каталог, він повинен бути виконаним, щоб переглянути його вміст, він повинен мати атрибут читання, а щоб створити новий файл або каталог у наявному каталозі, необхідно мати право на запис. Таким чином, щоб виконувати програму або CGI- або PHP-скрипт, необхідно ставити на каталог атрибут читання та виконання.
Створюючи файл, користувач автоматично отримує найширші права на діяння з цим файлом чого завгодно, його група – дещо менші права, а решта – зовсім нікчемні права. У Unix (Linux) є лише три основні права – читати файл або переглядати каталог (“Read”), змінювати файл або каталог, записуючи в нього що-небудь, або взагалі його видаляти (“Write”). Останнє право – право на запуск файлу (“eXecute”).
Щоб розподілити права для відповідних груп, використовуються цифрові позначення:
4 = read (право читання);
2 = write (право запис);
1 = execute (право виконання).
Перша цифра позначення встановлює права для групи user (тобто фактично вам), друга для групи group і третя для world.
Простим складання цифр можна домогтися встановлення прав на сукупність дій. Наприклад:
3 (2+1) – дозволяє запис та виконання файлу (каталогу);
5 (4+1) – дозволяє читання та виконання;
6 (4+2) – дозволяє читання та запис;
7 (4+2+1) – встановлює право читання, запису та виконання.
Тобто існує лише сім варіантів:
7 = read, write & execute (читання, запис, виконання);
6 = read & write (читання та запис);
5 = read & execute (читання та виконання);
4 = read (читання);
3 = write & execute (запис та виконання);
2 = write (запис);
1 = execute (виконання).
Для встановлення прав доступу використовується команда CHMOD.
Попри це ще нікому не завадило знати трохи більше про команди Unix. Так ось, команда chmod має два режими: Абсолютний (цифровий) та Символьний режим. Команда chmod, що використовується в Unix, або команда site chmod, яка використовується в деяких FTP-менеджерах (клієнтах) (FTP Explorer, наприклад), можуть використовуватися в обох режимах.
При абсолютному (цифровому) режимі використовується описаний вище 3-х цифровий код прав доступу. Символьний режим використовує літерний формат для встановлення прав доступу. Тут використовуються літери r (read, читання), w (write, запис) та x (execute, виконання). А також u (user, користувач), g (group, група), o (other (world), інші, весь світ) та a (all, все [не використовується]).
Ось кілька поєднань, що найчастіше зустрічаються:
CHMOD 755 – Для директорій, CGI-скриптів, PHP-скриптів
CHMOD 644 – Для звичайних файлів, PHP-скриптів
CHMOD 600 – Сховати файли від всіх, крім ваших скриптів
У всіх сучасних FTP-клієнтах є можливість призначення прав доступу шляхом проставляння «галочок» у чекбоксах, або просто введенням цифрового коду у відповідне поле.