Інтернет Windows Android

Зміна прав на файли або папки в Linux. Налаштування прав для файлів і папок Чи потрібні права на файли рівня 777

При роботі з файлами, розташованими на веб-сервері, Часто виникає необхідність встановити або змінити права доступу до папок і файлів (Chmod) виду 777. У сімействі сервернихопераційних систем Unix, права доступу (chmod) виду 777 регламентують такі дії: читання, запис в папку або файл і виконання файлу.

Що таке «права доступу» в операційній системі

Права доступу до файлів або папок - це захисна функція будь-якої багатокористувацької операційної системи або програмного забезпечення від несанкціонованого доступу до важливої \u200b\u200b(системної) інформації.

Якщо операційна система розрахована на одного користувача, наприклад, як домашній варіант (home) Windows - то тут немає сенсу особливо обмежувати владу юзера над його користувача і системними файлами і папками. Тому що, в цьому випадку, один і той же чоловік є - і користувачем, і адміністратором, одночасно.

Якщо ж операційна система (або програма) розрахована на багато користувачів і в ній може знаходитися більше одного користувача, то тут спочатку потрібно розібратися і вирішити - кого з користувачів можна допустити до важливих системних і призначеним для користувача файлів, а хто - «нехай постоїть в сторонці». Для того, щоб розмежувати можливості і ступінь доступу до файлів і папок для користувачів, в межах операційної системи - існують «права доступу».

Права доступу до файлів і папок призначаються на рівні системного адміністратора і визначають технічні можливості кожного користувача для його операцій з файлами та папками, в межах підконтрольних йому директорій

При цьому, права доступу дозволяють частково або повністю закривати загальний доступ до важливих файлів і тек, запобігаючи тим самим несанкціоноване втручання в роботу системи (програми, сервера, сайту) або зміна призначених для користувача даних (бази даних, БД) на сервері.

Як працюють «права доступу»

За великим рахунком, робота користувача в будь-якій операційній системі або програмі - це звичайна робота з файлами або папками. Спочатку, звертаючись будь-якого файлу або папці - користувач може створити з ними що завгодно - виконати, видалити, змінити (перезаписати) або створити новий об'єкт. Однак, операційна система пильнує - вона завжди напоготові - при кожному зверненні користувача до файлу або папці, при кожному його дії в межах операційної системи, вона скрупульозно перевіряє, дозволено чи ні користувачеві працювати з даними файлом або папкою. Це і є «права доступу». Таким чином, обмежуються можливості користувача в тих діях, які він (користувач) може створити з файлом або папкою на підконтрольній йому комп'ютерної території.

Права доступу в Unix

Як вже було сказано, права доступу до файлів і папок є у всіх операційних системах, що мають на увазі багато користувачів роботу. І в ОС Windows, і в ОС Unix, і в будь-який інший операційною системою є функція настройки і установки прав доступу до файлів і тек (папок, каталогів) для різних категорій користувачів. У даній статті мова піде про права доступу для серверних ОС сімейства Unix, які ще часто називають.

Права доступу (chmod) виду 777 для серверних ОС Unix регламентують дозвіл або заборона для користувача на такі дії, як: читання, запис в папку або файл і виконання виконавчих файлів

Що таке chmod

Що таке 777

В серверних ОС Unix права доступу записуються одним рядком, що складається з трьох цифр, де кожна цифра ставиться до свого типу групи користувачів. У свою чергу, всі користувачі поділяються на групи трьох типів:

  1. група Owner - «Власник папки або файлу»
  2. група Group - «Член групи власника папки або файлу»
  3. група World або Public - «Всі інші користувачі»

Таким чином, три цифри в позначенні, виду 777 - це виставлені права доступу відразу для трьох груп користувачів папки або файлу, де - кожна з трьох цифр позначає права доступу для своєї групи користувачів.

Тепер залишилося розібратися, хто такий «Власник»,
що таке «Член групи власника»
і хто це такі «Всі інші користувачі».

Власник, член групи власника і всі інші користувачі

Оскільки, ми тут говоримо про сервера, сайти і серверні ОС Unix, то:

Поділ всіх користувачів на групи в серверних ОС Unix реалізовано наступним чином - Власник і Члени групи власника підключаються до сервера, використовуючи спецзв'язок (FTP, SSH) (FTP, SSH-протокол), а всі інші користувачі заходять на сайт з веб-браузера (http -Протокол)

Звідси випливає що, в залежності від протоколу звернення до файлу на сервері, серверна ОС Unix відразу ділить користувачів на дві частини, або - це власник або член групи власника, або - всі інші користувачі. Підставою для такої «сортування», (повторююсь) є мережевий протокол з'єднання - якщо користувач підключився до сервера, використовуючи FTP-аккаунт (FTP-протокол), то це - або власник або член його групи. А якщо користувач зайшов на сервер з веб-браузера (http-протокол), то це вже третя група - всі інші користувачі.

Таким чином, для серверної ОС Unix, між першими двома і третьою групами є дуже чітке і легкопонятное розмежування - власник і член його групи потрапляють на сервер, використовуючи спецзв'язок (FTP, SSH), а всі інші користувачі - через свої веб-браузери.

А ось відмінності між першими двома групами - власником і членом його групи - сильно стерті і завуальовані. Тут вже починаються нетрі хостинг-пакету і індивідуального підходу для кожного випадку.

Довідка:
Всі файли в Unix (Linux) можуть мати двох власників: безпосереднього свого власника-творця (user owner) і його групу (group owner). Під поняттям групи власника мається на увазі якийсь список користувачів, який був створений самим власником для спільного користування файлик або татком.

Таким чином, для серверної ОС Unix, власником файлу або папки є безпосередньо адміністратор сервера. Всі інші, кому власник дозволить доступ до файлів на своєму сервері і хто буде зв'язуватись з цим сервером по FTP / SSH-протоколу - це члени групи власника.

Під орендою дискового простору розуміється місце на сервері, займане саме файлами сайту. Як правило, це недорогі хостинг-пакети, де їх користувачі не мають доступу до адмінпанелі сервера (не плутати з CP - контрольною панеллю акаунта). Відповідно, сидять на таких пакетах, адміністратори (власники) сайтів, при своєму підключенні по FTP-протоколу до сервера - потрапляють виключно в групу власника. Тоді як, сам власник (адміністратор сервера) знаходиться десь там, «далеко в горах», в своєму затишному робочому кабінеті технічної служби хостера.

При оренді дискового простору, власником усіх файлів сайту є сам хостер, тоді як орендар дискового простору - всього лише член групи власника.

Для орендарів серверів (реальних і віртуальних) - ситуація, дещо інша. При оренді сервера, який орендує сам встановлює операційну систему, природно, при цьому - він є для цієї системи безпосереднім власником файлів. А ось створювати групу і вносити в неї інших користувачів - це вже його, власника справу.
Що з усього вищесказаного випливає?

А висновок такий: - Орендарі дискового простору можуть не морочитися з першої ціфірькі виду (chmod) 777, оскільки вони не власники, і ніколи не будуть власниками своїх файлів. Для них перша цифра - завжди повинна бути сім. - Орендарі серверів (реальних і віртуальних) можуть не морочитися з другої ціфірькі виду (chmod) 777. За умови що, вони не створювали і не збираються створювати ніяких груп користувачів у себе на сервері. Тут, як такого, ярковираженного і сильного розмежування немає. Вірніше, воно буде, якщо створити групу власника і внести в неї список користувачів. Ось тільки створити таку групу може виключно сам адміністратор сервера. Коли створить - тоді і буде думати, що робити з другої цифрою.

Що позначають цифри 777 або 456

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

  • 4 \u003d Read (право на читання)
  • 2 \u003d Write (право на запис)
  • 1 \u003d Execute (право на виконання)

наприклад:

  • 6 \u003d 4 + 2 - Read + Write (право на читання + право на запис)
  • 5 \u003d 4 + 1 - Read + Execute (право на читання + право на виконання)
  • і т.д.

Всі можливі 7 варіантів складання для цих трьох цифр
по установці прав доступу на папку або файл для груп користувачів
виглядають так:

  • 7 \u003d 1 + 2 + 4 - Read, Write, Execute (читання, запис і виконання)
  • 6 \u003d 4 + 2 - Read, Write (читання і запис)
  • 5 \u003d 4 + 1 - Read, Execute (читання і виконання)
  • 4 \u003d 4 - Read (тільки читання)
  • 3 \u003d 1 + 2 - Write, Execute (запис і виконання)
  • 2 \u003d 2 - Write (тільки запис)
  • 1 \u003d 1 - Execute (тільки виконання)

Таким чином, виставивши права доступу (chmod) виду 765,
ми виставимо наступні права для груп:

  • Перша цифра, група Owner, Власник файлу або папки
    Перша цифра \u003d 7
    Це означає, що Власник папки або файлу має право на:
    7 \u003d 4 + 2 + 1 - Read (читання) + Write (запис) + Execute (виконання)
  • Друга цифра, група Group, Член групи власника
    Друга цифра \u003d 6
    Це означає, що Член групи власника має право на:
    6 \u003d 4 + 2 - Read (читання) + Write (запис)
  • Третя цифра, група World, Всі інші користувачі
    Третя цифра \u003d 6
    Це означає, що Решта користувачі мають право на:
    5 \u003d 4 + 1 - Read (читання) + Execute (виконання)

Тепер зрозуміло, що виставивши права доступу комбінацією цифр 777 (три сокири), ми відкриваємо повний доступ до файлу абсолютно для всіх груп користувачів. Аналогічний результат можна отримати, помістивши файл в папку "Загальні документи" (Public) в Windows.

Потрібно відзначити, що деякі комбінації цифр можуть позначати досить маячні ситуації з правами доступу до файлу. Наприклад, комбінація виду 477 дозволятиме доступ до перезапису і виконання файлу для всіх, крім його власника (читай - адміністратора). На жаль, такого не буває.

Права доступу завжди виставляються «по низхідній» від «Власника» до «Члену групи власника», і далі - до групи «Всіх інших». Але, не навпаки!

Як виставити права доступу виду 777 на сервері

Тепер, коли стало абсолютно ясно, що позначають ці три заповітні цифри - виставити права доступу (chmod) виду 777, Не важко. Щоб виставити права доступу (chmod) виду 777 для папки або файлу, який знаходиться на сервері, Знадобиться будь-який файловий менеджер, який здатний встановити і підтримувати FTP-з'єднання з сервером. Це може бути Total Commander, Windows Commander, CuteFTP, Filezilla або що-небудь ще. Особисто я віддаю перевагу простій і безкоштовний FTP-файловий менеджер Filezilla, незважаючи на те, що є палким шанувальником Total Commander-а.

Щоб виставити права доступу (chmod) виду 777, Заходимо на сервер по FTP під правами адміністратора !, через пару логін-пароль адміністратора !. Далі, знаходимо і виділяємо необхідний об'єкт (папку або файл). Після цього, викликаємо правою кнопкою миші контекстне меню «Файл - Змінити атрибути». Далі, вказуємо необхідний атрибут (права доступу) і тиснемо «ОК». Щоб "вбити" потрібну комбінацію цифр потрібно, або поставити-зняти чекбокси (галочки) біля потрібних пунктів, або ввести з клавіатури потрібний код виду 777 у вікні. Все FTP-файлові менеджери підтримують, і той, і інший спосіб.

Облом виду 777 на Денвері

Як і всі прибульці з Космосу, я регулярно спілкуюся з представниками різних позаземних цивілізацій, які починають будувати свої сайти раніше, ніж прилетять на Землю.

Повідомлення для інопланетян:
Не потрібно намагатися виставити права доступу (chmod) виду 777 при роботі з широко відомим пакетом, який лише імітує роботу веб-сервера під керуванням операційної системи Unix на локальному комп'ютері, насправді працює під управлінням операційної системи Windows. Там немає такої кнопки.

Файли в Linux мають двох власників

Необхідно правильно виставити права на файли і папки. Зробити це можна за допомогою FileZilla. Взагалі для кожного сервера потрібні свої певні настройки, які краще дізнатися у свого хостера. Але зазвичай права ставлять такі: на файли, які знаходяться в кореневій директорії 444, на папки в кореневій директорії ставлять 755, на папки tmp і logs ставлять 705, на паку свого шаблону поставте 555, на папку image / stories можна поставити 755, на папку Cache 777.

Власником нового файлу є користувач, який створив файл.

Файли в Linux мають двох власників: користувача (user owner) і групу (group owner) під якою розуміється певний список користувачів і причому власник файлу не обов'язково повинен бути членом групи володіє файлом. Кожен користувач може бути членом одразу кількох груп одна з яких називається первинною (primary), а всі інші - додатковими (supplementary). Це дає велику гнучкість в організації доступу до певного файлу. Спільне використання деяких ресурсом організувати дуже просто, достатньо створити нову групу і включити в неї всіх кому це дійсно необхідно, а якщо людина припустимо перейшов в інший відділ і вже немає необхідності у використанні даного файлу. А все дуже просто, необхідно просто вимкнути його зі складу цієї групи. Ну а, що робити з рештою невже вони так і не зможуть хоча б прочитати вміст файлу або їх доведеться кожного разу включати і виключати з групи.
А ось для всіх інших (other) які не належать ні до user owner і group owner права доступу встановлюються окремо і як правило самі мінімальні. Зазвичай власником файлу є користувач який створив цей файл. Власник-група новостворюваного файлу встановлюється рівною первинної групі користувача створив файл, але в деяких версіях Unix власник-група успадковується від власника-групи каталогу в якому створюється файл. Для зміни власника файлу використовується команда chown в якості параметрів приймає ім'я нового власника і список файлів: # chown new_owner file1 file2 ... Звичайно ж на місці назви файлу може бути і ім'я каталогу, але при цьому власник файлів всередині каталогу не зміниться, для того щоб це відбулося найкраще скористатися прапором -R (chown -R). При використанні даної команди (втім як і більшості) можна користуватися регулярними виразами якщо є необхідність відібрати файли задовольняють певним критерієм (chown - R lys * .с). Для зміни власника групи використовується команда chgrp, синтаксис використання даної команди аналогічний до попередньої: # chgrp sales / home / sales / *. До речі команда chown дозволяє відразу встановити і групу-власника для цього необхідно відразу за ім'ям власника без пробілів і ін. Знаків поставити двокрапку і написати назву необхідної групи
# Chown - R sergej: gljuk *, допускається і такий варіант запису # chown - R: gljuk * (тобто аналог команди chgrp).
Володіння файлом визначає ті операції які той чи інший користувач може зробити над файлом. Найбільш очевидні з них ця зміна власника і групи для деякого файлу. Ці операції може виконати привілейований користувач і власник файлу (в похідних BSD UNIX тільки привілейований користувач). Якщо з першим все зрозуміло, то наприклад написавши програму і зробити потім її власником, наприклад суперкористувача на жаль не вийде, і хоча варіант зміни власником допускається варіанти такого застосування я чесно кажучи не знайшов. А ось групу, якщо ви є власником файлу, можна змінити тільки на свою первинну (за замовчуванням має ту ж назву, як і ім'я відповідного користувача). Ці всі обмеження введені з кількох причин, щоб ніхто не міг підсунути який не будь шкідливий файл і для того щоб якщо на комп'ютері встановлено ліміт дискового простору для конкретного користувача, не можна було просто перевизначивши власника перевищити його.
Наступні базові операції які можна зробити над файлом: це доступ на читання (Read), доступ на запис (Write) і доступ на виконання (eXecute). Ці операції встановлюються для кожної з трьох груп користувачів окремо. Причому зробити це може тільки користувач власник і звичайно ж привілейований користувач. Для установки відповідних прав використовується команда chmod. Застосовується вона в двох формах абсолютної - коли ігноруються старі права, а безумовно встановлюються нові, і відносної - коли до наявних прав додаються / прибираються інші. Абсолютна форма передбачає завдання прав доступу до файлу прямим завданням його в вісімковій формі. Для того щоб отримати повний код необхідного режиму файлу, необхідно просто скласти значення кодів наведених в таблиці.

Сьогодні я хотів би поговорити про права доступу до файлів і папок (читайте). Це поняття прийшло в світ вебмастерінга з linux (Unix) подібних систем, на яких працює більшість хостингів.

Та й сама назва Chmod є найменуванням програми в linux, яка дозволяє призначити права доступу різним об'єктам. А раз ваш сайт встановлено на сервері під керуванням linux (Unix) тієї чи іншої варіації, то і робота з об'єктами вашого веб буде підпорядкована правилам, встановленим операційними системами linux (Unix).

У Windows фактично для всіх файлів встановлюються максимальні повноваження, що, власне, і призводить до засилля і наших комп'ютерах, а так же, в свою чергу, не дає вмерти з голоду власникам антивірусних компаній. У linux (Unix) системах інша справа - все складніше, але одночасно і безпечніше. Якщо все налаштувати правильно і зі знанням справи, то можна істотно підвищити безпеку свого сайту.

Базові поняття прав доступу до файлів і папок

Якщо ж все пустити цю справу на самоплив і не морочитися з установкою потрібних привілеїв, то ймовірність злому вашого ресурсу або зараження його шкідливим кодом буде дуже велика. Добре, якщо ви здійснювали всіх ваших даних, а якщо ні ?!

Тому краще відразу ж, не відкладаючи в довгий ящик, зробити налаштування і зміна чмодь для всіх важливих об'єктів вашого движка, виходячи з принципу мінімалізму. Тобто давати об'єктам мінімально необхідні для коректної роботи веб права.

Давайте спочатку розберемося в суті питання, щоб розуміти, що саме і яким чином ми налаштовуємо. Отже, приступимо. Права доступу поділяються по відношенню до файлів і для тек. Позначаються вони однаково, але означають трохи різне.

У свою чергу, по відношенню до файлів можливо:

  • r - право на читання даних.
  • w - на зміну вмісту (запис - тільки зміна вмісту, але не вилучення).
  • x - на виконання файлу.

Зупинимося трохи докладніше на можливості виконання файлу. Справа в тому, що в linux будь файлик може бути виконаний. Чи є він виконавчим - визначається не по його розширенню (поняття розширення відсутня в файлової системі Unix), а з прав доступу Chmod. Якщо у будь-якого файлик встановлено право на виконання "X", то це означає, що його можна запустити на виконання.

По відношенню до тек можливо:

  1. r - право на читання директорії (можна прочитати вміст директорії, тобто отримати список об'єктів, що знаходяться в ній)
  2. w - на зміну вмісту директорії (можна створювати і видаляти об'єкти в ній, причому, якщо ви маєте право на запис, то видаляти ви зможете навіть ті файли, які вам не належать)
  3. x - на вхід в директорію (воно завжди перевіряється в першу чергу, і навіть якщо ви маєте всі потрібні привілеї на об'єкт, який закопаний глибоко в ланцюжку каталогів, але не маєте атрибут "X" для доступу хоча б до однієї директорії на шляху до цього файлі, то до нього ви так і не проб'ється)

У системах Лінукс все це роздає головний адміністратор комп'ютера, доступ до якого він отримує шляхом введення пароля. І якщо більшість об'єктів будуть мати права тільки для читання, то вірусам на такому комп'ютері робити буде практично нічого, тому що вони не зможуть себе туди ні записати, ні потім здійснитися. Саме цього результату нам потрібно добитися, виставляючи потрібні Chmod на об'єкти нашого сайту.

Привілеї для груп користувачів

Самі привілеї поділяються на три категорії в залежності від того, хто звертається до об'єкту:

  • «User» - u (безпосередньо власник файлик)
  • «Group» - g (член тієї ж групи, до якої належить власник)
  • «World» - o (всі інші)

Сервер визначає, до якої групи користувачів вас віднести в момент підключення вас до сервера. Коли ви, наприклад, підключаєтеся до сервера по протоколу FTP, то ви входите під своїм ім'ям користувача (і паролем), і тоді сервер відносить вас до групи «user» ( «u)».

Інша особа має право, які теж підключаються по FTP до сервера, будуть віднесені до групи «group» ( «g»), а відвідувач, який приходить до вас на вебсайт, використовуючи свій браузер, потрапляє в групу «world» ( «o»).

Варіації трьох можливих значень «r», «w» і «x» для трьох категорій «u», «g» і «o» і визначають Chmod до файлів. Якщо не задана якась категорія, то вона замінюється знаком дефісом «-». Привілеї вказуються послідовно в заданому порядку:

  1. спочатку права для власника - «u»
  2. потім для групи - «g»
  3. і в кінці - для всіх інших - «o»

Після того, як сервер віднесе відвідувача до певної групи, він надає йому права на дії з об'єктами, після чого відвідувач зможе прочитати, записати або виконати файл (в залежності від того, що дозволено робити з даним об'єктом його групі).

Щоб подивитися вміст каталогу, він повинен мати атрибут читання «r» (для тієї групи, до якої сервер відніс відвідувача). Щоб створити файлик або папку в уже існуючій необхідно, щоб цей існуючий каталог мав атрибут на запис «w».

Для наочності давайте розберемо приклад, де власник файлу ( «user» - «u») має всі права: на читання, запис в нього і виконання, а всі інші користувачі тільки привілей на читання. Запис таких Chmod буде виглядати так: «rwx r-- r--».

Розглянемо її в деталях: «rwx» (цей запис задає права на об'єкт для власника - «u»), «r--» (цей запис задає права на той самий об'єкт, але в разі, якщо відвідувач віднесений сервером до групи - « g »),« r-- »(цей запис задає привілеї на об'єкт для всіх інших користувачів -« o »).

Чим відрізняються права файлів і папок

Виходить, що існує три групи користувачів і три можливих дії з об'єктами. Ще не заплуталися? Розкладемо все сказане вище по поличках у вигляді табличок. Спочатку наочно подивимося, чим вони відрізняються:

А так же табличка, що показує різноманітні комбінації Chmod для різних типів об'єктів:

Нічого не можна робити

Доступ до каталогу і його підкаталогів заборонений

Можна бачити і змінювати вміст

Можна додати, видалити, змінити файл каталогу

Виконати, якщо файлик двійковий

Користувач може виконати двійковий файл про існування якого йому відомо, зайти або прочитати каталог заборонено

Chmod, виражені в цифрах (777, 400, 666, 755, 444)

Ви бачите, що тут для опису прав доступу застосовуються записи з використанням латинських букв і дефісів, але ви, напевно, вже стикалися з тим, що зазвичай Chmod задають в цифровому вигляді, Наприклад, всім відома комбінації: 777, роздільна все і всім.

Дійсно, привілеї так само позначають і цифрами:

  1. r (читати) замінюють на 4
  2. w (запис) замінюють на 2
  3. x (виконання) замінюють на 1
  4. 0 означає - нічого не робити (те, що в буквеної записи позначається дефісом)

Давайте знову повернемось до нашого прикладу записи, наведеним мною трохи раніше: rwx r-- r--. Якщо замінити в ній букви і дефіси на цифри, відповідно до щойно описаним правилом і при цьому скласти цифри в кожній трійці, то отримаємо цифровий вигляд цього запису: 744.

Тобто виходить, що сума цих цифр і показує чмодь по відношенню до файлів або папці. наприклад:

  • 7 (rwx) \u003d 4 + 2 +1 (повні права)
  • 5 (r-x) \u003d 4 + 0 + 1 (читання і виконання)
  • 6 (rw-) \u003d 4 + 2 + 0 (читання і запис)
  • 4 (r--) \u003d 4 + 0 + 0 (тільки читання)
  • і т.д.

У цій таблиці наведено всі можливі комбінації привілеїв записані в цифровому вигляді:

А тепер давайте розглянемо різні комбінації записи в цифрах, стосовно до груп користувачів:

«Власник»

«Група»

«Решта»

виконувати

виконувати

виконувати

Ви самі (крім того випадку, коли отримуєте доступ до сайту по FTP) і всі інші відвідувачі вашого ресурсу, належите до групи "word" (всі інші), тому для роботи з веб-сайтом нам потрібно в першу чергу дивитися на останню (третю) цифру даного запису.

Для того, щоб при роботі користувача з сайтом «запускався файл» скрипта, досить буде, щоб на нього були встановлені права, починаючи від «4» (r-- - тільки читання) (5,6,7 теж підійдуть, але це буде зайве в плані безпеки).

Для каталогу ж, в якому лежить файлик цього скрипта, потрібно виставити мінімум «5» (r-x - можна зайти в каталог і прочитати його вміст, видаляти або додавати не можна). 7 теж підійде, але теж буде вже зайвим в плані безпеки.

Якщо потрібно, щоб скрипт не тільки читався, але і «записував» якісь дані (наприклад, введені відвідувачем), то мінімальні права на «папку» як і раніше будуть «5», але для «файлик» вже знадобиться «6» (читати і записувати).

Швидше за все на сервері, куди ви скопіювали вміст движка вашого сайту, будуть встановлені наступні Chmod до об'єктів:

Якби у вас був ресурс, що складається з одних html сторінок, то можна було б все так і залишити. Але сучасні сайти побудовані на движках, і там можуть бути об'єкти, в які потрібно проводити запис від імені відвідувачів з групи «world» - o (всі інші). Це можуть бути каталоги, використовувані для кешування сторінок або ті, в які по ходу роботи з сайтом будуть завантажуватися картинки і ін.

Само собою, що якщо ви зайдете на сайт по FTP, то зможете зробити запис в ці файліки або директорії, але працюючи з вебінтерфейсом як звичайний користувач у вас можуть виникнути проблеми. Тому до установки тих чи інших прав треба підходити вибірково:

для всіх директорій, в яких повинні записуватися файліки, але не треба регулярно їх прати

для папок, в які повинні записуватися та стиратися файли (наприклад, для кеша)

для простих файлів, які використовуються тільки для читання (.html, .php і ін.)

для файлів, в які може знадобиться здійснювати запис (наприклад, з базами данних.dat)

Як призначити Chmod за допомогою PHP

Як же все це можна реалізувати на практиці для свого сайту? В принципі, все просто. Для призначення прав доступу можна:

Але якщо чмодь на будь-які файли поміняти не виходить, то можна спробувати призначити їх PHP засобами. Ви можете скористатися наступним кодом:

Вам треба буде замінити file_name_x.php і directory_name_x на реальні імена файлів і папок, чмодь до яких ви хочете змінити. Відповідно, для файлів встановиться 666, а для каталогів - 777. Помістіть це PHP код в файлик за допомогою будь-якого текстового блокнота (рекомендую) і дайте йому расшіреніе.php, ну, наприклад, як prava.php.

prava.php скопіюйте по FTP в ту директорію, в якій не виходить штатними засобами призначити права доступу. В адресному рядку браузера пропишіть шлях до prava..php) і натисніть «Пуск» або Ентер на клавіатурі. Все, тепер привілеї будуть стовідсотково змінені засобами PHP.

Для Joomla, відразу після її установки, можна виставити 777 на наступні директорії:

Administrator / backups / administrator / cache / administrator / components / administrator / modules / administrator / templates / cache / components / images / images / banners / images / stories / language / language / en-GB / language / ru-RU / media / modules / plugins / plugins / content / plugins / search / plugins / system / templates /

Після того, як ви встановите для Джумли все розширення і справите остаточні налаштування, Chmod до більшості з наведених вище директорій слід в цілях підвищення безпеки сайту повернути до 755. Залишити 777 потрібно буде на каталоги з кешем, з бекапу і з картинками.

Для файлів движка, що знаходяться в корені сайту, окрім sitemap.xml, краще встановити 444 (для всіх груп відвідувачів тільки читання). На seting.php іноді радять навіть встановити 400.

Точно такі ж поради можу дати і з приводу установки прав доступу на об'єкти в двигунах SMF і WordPress. Бажано, по можливості, залишати на постійній основі для директорій 755 (Крім обумовлених вище каталогів кеша, картинок, бекапу і може бути ще якихось, у міру необхідності), а для файлів - 644.

На файли в корені сайту краще поставити 444.

Якщо при роботі з сайтом виникне проблема з неможливістю записи налаштувань в який-небудь файлик або неможливістю створити якусь директорію, то можна тимчасово поставити на них великі права (777, наприклад), а потім все повернути назад (від гріха подалі). І ні в якому разі не варто залишати (Для простоти роботи з сайтом) необґрунтовано завищені Chmod.

Удачі вам! До швидких зустрічей на сторінках блогу сайт

Вам може бути цікаво

Кодування тексту ASCII (Windows 1251, CP866, KOI8-R) і Unicode (UTF 8, 16, 32) - як виправити проблему з кракозябрами
OpenServer - сучасний локальний сервер і приклад його використання для установки WordPress на комп'ютер
Що таке URL адреси, чим відрізняються абсолютні та відносні посилання для сайту
Пошук Яндекса по сайту і інтернет-магазину
Карта сайту Sitemap в форматі xml для Яндекса і Google - як створити сайтмап в Joomla та WordPress або в онлайн генераторі

Що таке права доступу до папки або файлу? Це атрибути файлу (або папки), які вказують Вашого сервера хто може (і що саме) робити з цим файлом. Якщо сказати інакше, щоб Ви зрозуміли, то це обмеження, які Ви вводите на своєму сайті, щоб перешкодити стороннім вносити зміни в Ваші файли, і, відповідно, зняття тих чи інших обмежень в тих чи інших випадках.

Які бувають права доступу? Право на виконання, на запис в папку і на читання. Це важливо зробити при появі нового сайту і це потрібно зробити при додаванні вашого сайту на певні сервіси, наприклад, біржу продажу посилань Sape. Якщо хочете дізнатися детальніше про права доступу, пошукайте в Інтернеті: у мене блог не теоретичної, а практичної спрямованості, тобто я трохи говорю про те, ЩО треба зробити і докладно розбираю, ЯК це треба зробити.

Розглядати процес зміни прав доступу будемо на прикладі Total Commander (далі -ТС). Розберемо подробненько, що і як треба зробити при появі на світ нового сайту.

Що треба зробити?

Треба встановити права доступу на папки і файли, які розміщені в корені вашого сайту:

1. до початку внесення змін (зміни налаштувань)

- папка «uploads» (завантаження) - права 777 (встановити),

- інші папки - права 775 (перевірити, при необхідності - встановити),

- всі файли в усіх папках - права 644 (перевірити, при необхідності - встановити).

2. після зміни налаштувань:

- файл sitemap.xml (якщо Ви вже встановили xml-карту сайту. Вона створюється автоматично при активації плагіна Google XML Sitemaps і натисканні посилання «створити вперше») - права 777,

- інші файли, які розміщені в корені сайту (у всіх!) - права 444. Це означає - «тільки для читання» і внесення змін в файли неможливі. Для редагування файлів в майбутньому, Вам необхідно буде змінити права на 644 і відразу після закінчення знову поставити права 444. Це в Ваших інтересах! - підвищиться безпека блогу.

Як все це зробити?

Відкриваєте ТС і заходите в кореневій каталог, в ньому відкриваєте папку wp-content. Клацаєте один раз по папці uploads (тим самим виділяєте її і даєте зрозуміти ТЗ, що Ви маєте намір працювати з нею). Далі, в лівому верхньому кутку натискаєте «Файл», відкриється довгий список команд. У верхній частині побачите рядок «Змінити атрибути»:

Клікаєте по «Змінити атрибути», з'являється вікно «Зміна атрибутів»:

У віконці показані цифри 755, це і є права доступу до цієї папки. Нам треба встановити права 777. Для Цього встановіть прапорці (галочки) в порожніх квадратиках і одночасно спостерігайте, як при цьому будуть змінюватися права доступу. Має вийти так:

Виставивши 777, не забудьте натиснути ОК. Тепер перевірте, що на інших папках стоять права 775. Потім перейдіть до роботи з файлами і перевірте, що у них виставлені права 644:

Тепер можна приступати до редагування файлів. Після завершення редагування слід в файлах (повторюю, в усіх файлах кореня!) Виставити права 444. Для цього в другій сходинці вікна «Зміни атрибутів» (см.ріс.4) треба прибрати прапорець з «Запис». Для тих, кому важко це зробити ;-) - інший шлях. Напишіть в віконці замість 644 інші цифри - 444 і програма сама встановить всі як треба.

Постарайтеся не забути, що Ви змінили права доступу до файлів, тому що при спробі подальшої редакції програма покаже що-небудь типу «У вас недостатньо прав». В цьому випадку Вам треба буде всього лише змінити права на 644, а потім повернути 444.

Доброго здоров'я, шановні читачі блогу! Всім би нам хотілося, щоб кожен або папка, розташовані на сервері хостингу і належать сайту, були б максимально захищені від несанкціонованого доступу.

Такий захист забезпечується за рахунок того, що 90% хостерів використовують Unix-подібні операційні системи, в яких існує можливість регулювати права доступу до всіх файлів і каталогів. Сервер мого хостинг-провайдера, на якому розташовано кілька моїх проектів, не виняток.

До речі, обов'язково поцікавтеся, перейшовши за наданою посиланням. Але продовжимо. Правила, встановлені в Unix, відрізняються від звичного для багатьох регламенту роботи в операційній системі Windows, де захист в цьому аспекті не так сильна, що іноді призводить до плачевних наслідків у вигляді зараження системи вірусами.

CHMOD для користувачів і права доступу до файлів і папок (тек)

У системах, керованих Unix, ситуація інша і є можливість серйозно ускладнити життя нехорошим дядькам, які спробують скористатися результатами вашого копіткої праці протягом тривалого періоду. А саме, правильно налаштувати права доступу CHMOD. Наше завдання дати мінімально можливі для доступу до файлів і папок права, які тим не менш не порушать коректну роботу сайту.

Погодьтеся, гріх не скористатися можливістю серйозно посилити. Звичайно, в цьому випадку редагування деяких файлів буде займати трохи більше часу, але тут вже доводиться вибирати: або оптимізація безпеки системи, або ... Нижче я постараюся систематизувати інформацію по CHMOD (прав доступу), тому що тут є кілька нюансів, які необхідно знати веб-майстру. Тож почнемо.

Права доступу розрізняються для різних груп користувачів. При спробі з'єднання сервер визначає, до якої групи віднести того чи іншого користувача. Всі користувачі поділяються на три категорії:

  1. «User» - власник файлу
  2. «Group» - один з членів групи, до якої належить і власник
  3. «World» - «інший світ», тобто всі інші користувачі

Якщо ви підключаєтеся до сервера по і заходите під своїм логіном і паролем, то будете ідентифіковані як "User" (U), якщо хто-небудь інший підключається по FTP, то буде визначений як "Group" (G), якщо ж користувач використовує браузер, то потрапляє під категорію "World" (O).

Тепер про права доступу CMOD до файлів і тек. По суті вони трохи відрізняються, хоча позначення застосовуються одні і ті ж. Права доступу до файлів:

  • r (read) - право на читання даних файлу
  • w (wright) - право на зміну вмісту (можна зробити тільки редагування вмісту - запис, але видаляти не можна)
  • x (eXutive) - право на виконання файлу

Права доступу до папок (тек):

  • r - право на читання папки (можна отримати вміст директорії, тобто список файлів, що входять в неї)
  • w - право на зміну вмісту (дозвіл на створення і видалення об'єктів в директорії, якщо ви маєте право на запис файлів, то видаляти можна навіть ті об'єкти, які вам не належать)
  • x - право доступу в ту чи іншу директорію (особливість тут така, що якщо навіть ви маєте всі необхідні права на файл, який розташований "в глибині" директорій, але не маєте права доступу хоча б до однієї піддиректорії на шляху до цього об'єкта, то не зможете отримати доступ до нього)

Значком дефіса «-» відзначають відсутність будь-яких прав. Всі ці права прописуються адміністратором, який отримує цю можливість за допомогою введення пароля. Якщо ми зможемо встановити максимально можливі обмеження на права доступу CHMOD до тих чи інших файлів ресурсу, то зможемо практично виключити небезпеку реалізації свого "чорного справи" вірусним програмам.

Для наочності розглянемо приклад, коли власник файлу u має всі можливі права: на читання, запис і виконання. Користувачі, віднесені до категорії g (group) - тільки на читання і запис, всі інші (w) мають тільки право на читання. Тоді запис CHMOD буде виглядати наступним чином: «rwx rw- r- -».

Права доступу до файлів і папок в цифровому вираженні: CHMOD (777, 755, 444)

Але частіше вебмастерам в своїй практичній діяльності доводиться призначати ті чи інші права доступу в цифровому вираженні:

  • r (читання) - 4
  • w (запис) - 2
  • x (виконання) - 1
  • - (немає прав) - 0

Тепер знову розберемо вищенаведений приклад для призначення прав доступу «rwx rw- r- -». Для відображення прав кожного користувача застосовується додавання його прав (r читання + w запис + x виконання). Таким чином частина запису для власника файлу u (user) - «rwx» перетвориться в 7 (4 + 2 + 1). Для члена групи g (group) - «rw-» в 6 (4 + 2 + 0) і для інших користувачів o (world) - «r- -» в 4 (4 + 0 + 0). Як резюме представлю зведену таблицю зі значеннями прав доступу CHMOD, вираженими як в буквах, так і в цифрах:


Тепер представлю ще одну таблицю, яка відображає сумарні права CHMOD для всіх груп користувачів в форматі чисел:


Це основні комбінації, які найбільш часто використовуються в роботі вебмастера. Решта формуються за аналогією. Якщо ви є адміністратором сайту або блогу, але працюєте з проектом, що не приєднавши по FTP протоколу, ви також належите до групи "Решта користувачів". У такому випадку при роботі з сайтом в такому режимі потрібно враховувати останню цифру в значенні CHMOD.

Зазвичай на сервері, де знаходяться файли вашого WordPress блогу, на папки виставляються права доступу 755, а на файли, які входять до їх складу, 644. Це справедливо, коли ресурс побудований з використанням файлів HTML, проте в сучасних умовах для побудови сайту масово використовуються CMS (системи управління контентом), до яких відноситься і WordPress. А тут можуть перебувати об'єкти, в які потрібно робити записи від групи користувачів "world". Можуть знаходитися папки, в які завантажується контент, в тому числі зображення.

Тому призначення прав CHMOD на ті чи інші файли необхідно диференціювати. Якщо ви входите в управління сайтом по FTP, то можете робити будь-які дії, проте в багатьох випадках ми працюємо зі своїм проектом через, а в цьому випадку можуть виникнути проблеми, якщо права занадто завищені, і, навпаки, якщо права доступу до того чи іншого файлу (папці) занижені, то зростає загроза безпеці. Тому на підставі вищесказаного можна визначити деякі рекомендації щодо практичного застосування CHMOD для блогу WordPress:

777 - для папок, в яких постійно відбувається запис і стирання файлів (для папки кешування)
755 - стосовно до папок, в які постійно записуються файли, але не видаляються
666 - для файлів, в які необхідно час від часу додавати запис (наприклад, файл.htaccess)
644 - для файлів, які використовуються тільки для читання (.php, .html і ін.)

Як налаштувати права доступу CHMOD за допомогою FTP менеджера FileZilla

Якщо при роботі з ресурсом буде необхідно внести якісь зміни, але через наявність заборони на редагування це зробити неможливо, потрібно під'єднатися до сервера хостингу по протоколу FTP і змінити права доступу на 777. Однак після внесення в файл змін рекомендується знову виставити колишній CHMOD .

Тепер докладніше про те, як виконати цю операцію за допомогою. Для цього відкриваємо програму і єднаємося за допомогою FTP до сервера хостера. У лівій частині «Віддалений сервер» спочатку відзначаємо файли, атрибути яких будуть піддані редагуванню:

І з контекстного меню, викликаного натисканням правої кнопки миші, вибираємо «Права доступу до файлу». Після цього з'явиться діалогове вікно «Змінити атрибути файлу»:

Тут присвоюємо потрібні значення CHMOD для обраного (або обраних) файлів. Але це тільки, якщо ви вибирали файл або групу файлів. У разі, якщо ви хочете встановити або змінити значення CHMOD для каталогу (папки) при виборі «Змінити атрибути файлу» з'явиться аналогове вікно, дещо відмінне від розташованого вище, а саме:

Бачите, тут з'явилися додаткові налаштування. Якщо ви поставите галочку навпроти рядка «Переспрямувати у вкладені каталоги», Це означає, що задані права доступу будуть застосовані до вкладених в цю директорію каталогам (папок) або файлів. При зазначеної галочці нижче розташована група налаштувань стане активною і вам буде потрібно ще вибрати, як потрібно застосовувати настройки: до всіх файлів і каталогів, тільки до вкладених файлів або тільки до каталогів.

Робота з файловою системою в сімействі Unix часто вимагає зміни і установки прав доступу на певні види даних. Ці заходи дозволяють знизити ризик несанкціонованого перегляду та використання системної чи іншої інформації, важливої \u200b\u200bдля коректної роботи сервера.

Однак подібна захисна функція (наприклад, права доступу 777) має сенс тільки для многопользотельскіх ОС, оскільки в іншому випадку її установка буде швидше марною тратою часових ресурсів.

Що означає цей термін?

У будь-якій операційній системі, яка передбачає експлуатацію різними групами користувачів, існує обмежувальний елемент. Він призначається системним адміністратором і регулює порядок і можливості роботи з підвладної йому Директорією для трьох типів користувачів:

  • Власника файлу.
  • Користувачів, що знаходяться в групі власника.
  • Всіх інших осіб, що мають доступ до сервера через веб-браузер.

Права доступу 777 - атрибут, що дозволяє читати, запускати і переписувати / створювати файли в директорії всім перерахованим вище видам користувачів, що існує тільки для платформи Linux. Ця функція надає повні можливості для взаємодії з інформацією, але, на жаль, далека від уявлень про безпеку. Ця дія аналогічно приміщенню файлу в розділ загальних документів в ОС Windows.

Права доступу 777: значення числа

В ОС Unix можливості доступу для груп записуються в один рядок, що складається з трьох цифр. Кожна з них вказує на права одного з типів користувачів.

Таким чином, це чисельне поєднання є арифметичною сумою: 2 (запис), 4 (читання) і 1 (виконання) і визначає повноваження, які надає дана функція.

Як встановити права 777?

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

Відповідь на питання про те, на папку, нічим не відрізняється від інструкції для файлу: на сервері слід виділити бажаний об'єкт і викликати контекстне меню кліком по правій клавіші миші. Далі - вибрати «файл» і «змінити атрибути».

У вікні менеджера потрібно вбити комбінацію цифр або ж поставити галочки навпроти пунктів для кожної з груп користувачів. Для серверної системи Unix також передбачений більш простий спосіб, що вимагає лише введення команди в форматі: chmod 777% filename% (ім'я файлу або папки) в панелі управління хостера.

Тільки для багатокористувацьких серверів

Головне - пам'ятати, що права 777 існують лише для файлів, які розташовані безпосередньо на багато користувачів сервері, і не встановлюються на окремому комп'ютері.

Крім того, передбачена можливість виставлення даних прав і на каталоги, де «поведінку» позначених параметрів буде таким же, як для папки, з тією лише різницею, що замість читання знаходяться всередині об'єктів, користувач отримає можливість переглядати тільки список всього вмісту. Установка прав на каталоги здійснюється описаними вище способами.

І, звичайно ж, слід пам'ятати про те, що виставити цей вид доступу для пакета «Денвер» не вийде, оскільки він імітує роботу мережевого веб-сервісу, проте, таким на ділі не є, здійснюючи діяльність на платформі Windows. Дана ОС не відноситься до розряду серверних, тому при установці скриптів на «Денвер» вимоги про зміну прав доступу слід просто проігнорувати.

Недоліки прав повного доступу

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

Виставлення прав, що надають повний доступ до вмісту, що знаходиться на сервері, часто призводить до порушення безпеки ресурсу. Зловмисники не упускають шансу скористатися відчутною проломом в захисті інформації, оскільки невірно виставлені настройки доступу дають свободу дії будь-якому користувачеві. Таким чином, нашкодити роботі сервера можуть не тільки зацікавлені в цьому особи, а й необдумані дії недосвідчених користувачів.

Перед тим як встановити права доступу 777, варто добре подумати, чи не призведе подібна недбалість до злому ресурсу.