Права доступу до файлів і тек в unix
Однією з складних завдань для початківця веб-розробника є правильне використання chmod для установки прав доступу до файлів на UNIX і Linux веб-серверах. Ви повинні встановити правильні права на CGI скрипти, щоб не з'являлися ці жахливі повідомлення "500 Server Error". У цьому керівництві, ми збираємося пояснити концепцію прав, і показати вам як встановлювати права використовуючи FTP утиліти або за допомогою Telnet.
Що таке права?
На веб-сервері UNIX, кожен окремий файл і папка, що зберігаються на жорсткому диску має ряд прав, пов'язаних з ним, в якому говориться, хто і що може робити з файлом. У кожного файлу (і папки) також є «власник» і «група» пов'язана з ним. Якщо ви створили файл, то як правило власником файлу є ви і ваша група, або групі пов'язаної з Директорією в якій ви створили файл.
Хто може змінювати права?
Є три типи користувачів які мають доступ до файлів - Власник файлу, члени Групи, що володіє файлом і Решта (всі інші). В UNIX ці 3 типи користувачів позначаються буквами U (для Власника, або Юзер), G (для Групи), і O (для Решту).
Які права можна встановлювати?
Є три основних прав доступу котороие можуть бути застосовані до файлів і тек:
Що означають всі ці букви і цифри ?!
Тут ми розглянемо основи. Як ви можете помітити їх не так вже й багато насправді!
Плутанина часто відбувається, коли Вам треба зробити установку прав на сервері. Для CGI скриптів необхідно встановлювати права щось на кшталт "Chmod 755" або "Переконайтеся, що файл є виконуваним". Крім того, при використанні FTP або SSH, ви побачите безліч кумедних букв поруч з файлами (наприклад, rwxrw-rw). Зараз ми пояснимо, що означають ці ієрогліфи!
Коли ви підключаєтеся по FTP на ваш веб-сервер, ви ймовірно побачите щось типу цього біля кожного файлу і папки:
Ця послідовність літер drwxrwxrwx означає права, встановлені для цієї папки (зауважимо, що їх часто називають атрибутами FTP програми). Давайте розберемо, що кожна з цих букв означає:
Як ви можете бачити, послідовність літер розділяється на 3 колонки по 3 літери кожна, що позначають кожен з типів користувачів (власник, члени групи, і всі інші).
Існує також і буква "d" атрибут зліва, який говорить нам про те, що даний об'єкт є каталогом.
Якщо будь-яка з цих букв замінена на дефіс (-), то це означає, що дозвіл не встановлено. наприклад:
Директорія, яка має права на читання, запис і виконання для власника, читання і виконання для групи і тільки виконання для всіх інших.
Файл який може прочитати і змінити користувач, а прочитати тільки користувачі групи і інші користувачі.
Використання чисел замість букв
Як ми вже раніше говорили, вас будуть часто просити встановити права за допомогою чисел таких, як "set 755 permissions". Що означають ці цифри?
Кожне з трьох чисел відповідає кожній букві (r w x) про які ми говорили раніше. Іншими словами, перше число визначає права для власника, друге число визначає права для групи, а третє число визначає права для всіх інших.
Кожне число може приймати одне з восьми значень в діапазоні від 0 до 7. Кожне значення відповідає певним прав на читання, запис і виконання ", як зазначено в цій таблиці:
Налаштування дозволів
Два найпоширеніших способу встановити дозволу на файли і папки це за допомогою FTP або SSH. Давайте розглянемо першим FTP.
Установка дозволів за допомогою FTP
За допомогою FTP ви зможете встановити права на ваші файли, вибравши файл (в окремому вікні) і правою кнопкою миші вибрати необхідні вм опції, такі як CHMOD або Set permissions або ж вибравши в меню пункт CHMOD / Set permissions.
Як бачите, досить легко встановити або прибрати права на читання, запис і виконання для власника, групи та інших, використовуючи прапорці. Крім того, ви можете ввести в еквіваленті 3-значний номер, якщо ви вже знаєте як (див. Попередній розділ). Все дуже просто!
Установка дозволів за допомогою SSH
Інший поширений спосіб встановити дозволу на файли за допомогою SSH (або консолі). Це в цілому швидше, якщо ви хочете змінити права на велику кількість файлів одночасно (наприклад, зміна всіх. CGI файлів в папці тільки на вполненниє).
Після того, як ви підключіться по SSH до вашого сервера, і залогінетесь в систему, перейдіть в папку, яка містить файли, які ви хочете змінити, наприклад:
Використання літерного способу
Ви можете використовувати літери u (власник / користувач), g (групи) і o (інші), щоб встановити дозвіл для кожного з типів користувачів, а також r (читання), w (запис) і x (виконання) для установки прав.
Ви також можете використовувати "a" замість u, g і o, що є синонімом для всіх користувачів (u, g, o).
Ви можете встановити дозволи, використовуючи або знак плюс (+), яке означає "додати ці права", знак мінус (-), що означає "видалити ці дозволи", або знак рівності (=), що означає "змінити дозволу для конкретного випадку ". наприклад:
chmod a + x formmail.cgi додає дозвіл на виконання для всіх користувачів у файлі formmail.cgi (іншими словами, робить виконуваний файл).
chmod u = rwx formmail.cgi читання, запсь і виконання для власника (дозволів для групи і для інших залишаються без змін).
chmod go-w formmail.cgi видаляє запис для групи і для інших, в результаті чого дозволу власника залишаються незмінними.
Перевірка дозволів
Ви можете перевірити дозволу на всі файли і папки в поточній директорії за допомогою команди:
Це покаже Вам дозвіл для кожного файлу і папки, так само, як і FTP програми.