Права доступу до файлів і папок joomla

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

  • Всім кореневих файлів Joomla (наприклад, configuration.php, robots.txt. Htaccess і так далі) призначте мінімальні права для всіх груп - 444.
  • Всіх тек сайту, крім виключення, призначте права доступу 555. Винятки: cache (каталог кеша), administrator / cache (каталог кешу адміністративної зони), logs (каталог файлів логу), temp (каталог для тимчасових файлів). Для них - 755.
  • Всіх файлів у всіх директоріях, крім виключення, раджу призначити права 644. Файлам, в виключених директоріях, можна призначити права 755. Але в виключених директоріях є файли index.html. Для цих файлів можна призначити права 644.

Як убезпечити файлову систему Joomla сайту

Права доступу до файлів і папок joomla

Почитав я на дозвіллі, що пишуть в інтернеті про права на файлову систему сайту і просто жахнувся! Люди ставлять 777 на все підряд - а потім дивуються що їх зламали.

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

Цей невеликий пост розтлумачує які ж права повинні бути у всього сайту і чому.

Чим відрізняються права в Windows і Linux

Не буду сильно міркувати з цього приводу. Скажу тільки основні відмінності.

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

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

Права в файлової системі Linux

У Linux системах права задаються у вигляді 3-х прапорів - (Користувач, Група користувача, Останнє).
Кожен прапор - це сума бітів: 1 - Виконання, 2 - Редагування, 4 - Читання .Разлічние комбінації цих бітів дають різні варіанти доступу до файлу або папці. Приклади можна побачити на зображенні нижче.

Права доступу до файлів і папок joomla

Вірно, коли для папок сайту виставляються права - 755, а для файлів - 644. Більш того - зазвичай це значення за замовчуванням в системі. Детальніше можна дізнатися в вікіпедії.

Альтернативний варіант запису прав

Є більш гуманна форма запису - за допомогою латинських букв. Порядок всіх прапорцем залишається той же. Кожен біт змінюється на відповідну букву. Найперша літера «d» - це мітка, директорія це чи ні.

  • Read (4) - r
  • Write (2) - w
  • Execute (1) - x
  • відсутність прав - прочерк -

Таким чином отримуємо, що права для файлу «764» = «-rwxrw-r--». Невеликий наочний приклад на зображенні

Права доступу до файлів і папок joomla

Деякі приклади прав на файли

Чому права 777 - це погано?

Права 777 - це улюблені права win-користувачів, тому що дають можливість не замислюватися про права і робити що душі завгодно. Але ці права дають БУДЬ-ЯКОМУ користувачу системи право змінювати і виконувати ваші файли.

Найпростіші приклади зломів через 777

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

Якщо ви до цих пір не вірите мені, то це тільки справа часу.

Як дізнатися від якого користувача повинен працювати мій сайт?

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

Перевірити це просто. Створіть в корені вашого файл з ім'ям perm.php (або будь-яке інше ім'я для php-файла). Всередині файлу вкажіть наступний код

Що є що розписано на наступній картинці

Права доступу до файлів і папок joomla

Зверніть увагу, що

  • drwxr-xr-x - правильні права для всіх папок (теж, що і 755)
  • -rw-r-r- - правильні права для всіх файлів (теж, що і 644)
  • -r-r-r- - файл настройок Joomla має права тільки на читання (444). Виставляє сама Joomla для безпеки вашого сайту і це нормально.

Другий фрагмент коду покаже нам від чийого імені працює apache. Наприклад на моїй локальній машині це виглядає так

uid = 1000 (smetdenis) gid = 1000 (smetdenis) groups = 1000 (smetdenis), 4 (adm), 24 (cdrom), 27 (sudo), 30 (dip), 46 (plugdev), 109 (lpadmin), 127 (sambashare)

  • uid - ім'я користувача
  • gid - група користувача
  • groups - групи, до яких ще належить користувач.

Для нормальної роботи вашого сайту важливо щоб ім'я і користувач для файлів і папок збігалися з apache (в нашому випадку це «smetdenis»). Це дасть вам правильну роботу і основу безпеки.

Як дізнатися повний шлях до кореня свого сайту?

Створіть в корені файл php з наступним кодом і виконайте його

Схожі статті