RSS   Twitter   Copiny   Copiny
Нашел ошибку? 

Выдели фрагмент текста с ошибкой или неточностью и нажми Ctrl+Enter!

Правильные права на файлы и папки сайта или почему 777 - это плохо

Как обезопасить файловую систему Joomla сайта

Правильные права на файлы и папки сайта или почему 777 - это плохо

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

Хуже всего что, не побоюсь этого слова, «веб-мастеры» и прочие «недопрограммсты» советуют расставлять семерки направо и налево не задумываясь о последствиях. Печально… очень…

Этот небольшой пост растолковывает какие же права должны быть у всего сайта и почему.

Чем отличаются права в Windows и Linux

Не буду сильно размышлять по этому поводу. Скажу только основные отличия.

  • В Windows пользователь обычно работает от лица администратора, таким образом получает практически неограниченные права для работы с файлами. Так win-пользователь обычно даже и не задумывается о таких вещах как права файлов и папок.
  • В Linux более строгое разделение прав. Каждая директория или файл имеют свои индивидуальные права, которые указывают кто и что может делать с ними.
  • В Linux’е сайт никогда не работает от лица администратора — это очень не безопасно (мягко говоря), поэтому права играют очень важную роль.

Если у вас хороший шаред-хостинг (а это ооочень большая редкость), то вам можно не беспокоиться о правах файловой системы.
Но все же знать, то о чем пойдет речь ниже — обязательно.

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

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

diagram

Верно, когда для папок сайта выставляются права — 755, а для файлов — 644. Более того — обычно это значения по умолчанию в системе. Подробнее можно узнать в википедии.

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

Есть более гуманная форма записи — с помощью латинских букв. Порядок всех флажком остается тот же. Каждый бит меняется на соответствующую букву. Самая первая буква «d»- это метка, директория это или нет.

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

Таким образом получаем, что права для файла «764» = «-rwxrw-r--». Небольшой наглядный пример на картинке

permission-structure

Некоторые примеры прав на файлы

  • 444 (-r-r-r-) — Только чтение для любых пользователей.
  • 640 (-rw-r-----) — Изменять и читать файл может только владелец, его группа может только читать.
  • 777 (-rwxrwxrwx) — Полные права на все и для всех (ваш сайт под угрозой!).

Почему права 777 — это плохо?

Права 777 — это любимые права win-пользователей, потому что дают возможность не задумываться о правах и делать что душе угодно. Но эти права дают ЛЮБОМУ пользователю системы право изменять и выполнять ваши файлы.

Простейшие примеры взломов через 777

  • Если вы пользуетесь шаред-хостингом и выставили себе такие права, то грубо говоря другой клиент этого хостинга, который располагается на той же физической машине что и вы, сможет вас взломать. А на одной машине может быть тысячи клиентов.
  • Если у вас несколько сайтов на одной физической машине, но у всех стоят права 777, то злоумышленник взломав один легко получит доступ ко всем остальным.
  • … и много других не приятных примеров со взломами.

Если вы до сих пор не верите мне, то это только дело времени. 

Как узнать от какого пользователя должен работать мой сайт?

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

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

<?php
echo '<pre>';
echo system('ls -la')."\n";
echo exec('id');
echo '</pre>';

Внимание! Этот код только для linux-like систем!

Зайдите на этот файл (http://site.com/perm.php) Вы увидите примерно следующую картину

total 100
-rw-r--r--  1 smetdenis smetdenis 3191 Nov 20 00:22 .htaccess
drwxr-xr-x 11 smetdenis smetdenis 4096 Feb 14 16:47 administrator
drwxr-xr-x 12 smetdenis smetdenis 4096 Mar  5 19:25 cache
drwxr-xr-x  2 smetdenis smetdenis 4096 Feb 14 16:13 cli
drwxr-xr-x 20 smetdenis smetdenis 4096 Feb 14 16:27 components
-r--r--r--  1 smetdenis smetdenis 2199 Feb 13 12:23 configuration.php
-rw-r--r--  1 smetdenis smetdenis 1150 Jul 12  2011 favicon.ico
drwxr-xr-x 11 smetdenis smetdenis 4096 Feb 25 18:38 images
drwxr-xr-x  2 smetdenis smetdenis 4096 Feb 14 16:13 includes
-rw-r--r--  1 smetdenis smetdenis 1319 Feb  4 08:23 index.php
-rw-r--r--  1 smetdenis smetdenis 1757 Feb  4 08:24 joomla.xml
drwxr-xr-x  5 smetdenis smetdenis 4096 Feb  1 16:41 language
drwxr-xr-x  9 smetdenis smetdenis 4096 Feb 14 16:13 libraries
drwxr-xr-x  2 smetdenis smetdenis 4096 Feb 14 16:13 logs
drwxr-xr-x 20 smetdenis smetdenis 4096 Feb 14 16:27 media
drwxr-xr-x 33 smetdenis smetdenis 4096 Feb 14 16:27 modules
-rw-r--r--  1 smetdenis smetdenis  109 Mar  5 19:26 perm.php
drwxr-xr-x 15 smetdenis smetdenis 4096 Feb 14 16:13 plugins
-rw-r--r--  1 smetdenis smetdenis   14 Feb 14 16:57 robots.txt
drwxr-xr-x  7 smetdenis smetdenis 4096 Feb 14 16:13 templates
drwxr-xr-x  2 smetdenis smetdenis 4096 Feb 21 12:49 tmp
-rw-r--r--  1 smetdenis smetdenis 1715 Nov  8 00:23 web.config.txt

Что есть что расписано на следующей картинке

ls

Обратите внимание, что

  • 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 со следующим кодом и выполните его

<?php echo realpath(dirname(__FILE__));

В некоторых версиях php приведенный код может не сработать, попробуйте следующий вариант, либо обратитесь к вашему хостеру

<?php echo $_SERVER['DOCUMENT_ROOT'] . '/<ПАПКА САЙТА>';

Как быстро выставить права для всего сайта?

Нужно в консоли выполнить следующие команды (через SSH — узнавайте у вашего хостера)

Для изменений прав всем файлам

find <ПОЛНЫЙ ПУТЬ ДО ВАШЕГО САЙТА> -type f -exec chmod 644 {} \;

Для изменений прав всем папкам

find <ПОЛНЫЙ ПУТЬ ДО ВАШЕГО САЙТА> -type d -exec chmod 755 {} \;

Выставить верного владельца, обычно совпадает с пользователем от которого работает сайт (как узнать своего пользователя, см выше).

chown -R smetdenis:smetdenis <ПОЛНЫЙ ПУТЬ ДО ВАШЕГО САЙТА>

Права для Joomla

Абсолютно все что было сказано выше относится и к любому Joomla-сайту, любой версии. Если по каким то причинам не получается дать права всему сайту (а это уже намек на смену хостера), то обязательно проверьте что следующее доступно для записи

<site root>/tmp
<site root>/logs
<site root>/cache
<site root>/images
<site root>/configuration.php

Это минимум для нормальной работы Joomla-сайта. Некоторые компоненты для Joomla могут писать в свои папки, например компонент Zoo (и JBZoo) изменяют файлы "*.config". Но с этим проблем не будет, если все права выставлены верно.

Смотрите также:
Комментарии (33) Добавить комментарий
  • progmist
    progmist
    13 Марта 2013, 18:57
     ↑  -2  ↓     ответ

    Всё это хорошо. Спасибо за статью. Но отмечу:

    1. по поводу разделения прав в файловой системе windows вы зря. как известно, windows использует ntfs, в которой используется DACL. а DACL имеет намного больше возможностей чем права в linux. (в linux можно, для файла или директории выставить права только для 3 объектов (владелец, группа, остальные), в DACL же для элемента файловой системы можно поставить множество пользователей и групп с различными правами.

    Конечно же, в контексте работы только с web-сервером, в частности с сайтом, вся мощь DACL не нужна.

    Я тоже не люблю Windows, но не надо их так обижать.

    2. Права на файл configuration.php 444. чтение всем. Тут стоит подумать... Зачем тогда вообще разработчики Joomla сделали страницу глобальных настроек системы? При таких правах админ Joomla-сайта не сможет изменить глобальные настройки. Ради безопасности, Оставили бы её только в момент установки Joomla. А что говорить про обновления Joomla. Всё выполняется веб-сервером. если ему запретить писать, что собственно конечно не нужно делать, то обновлений не будет.

    3. По части прав на Joomla-сайте вообщем:

    Для рабочего сайта нужно:

    1 выставлять доступ для записи веб-серверу только директорию cache (если вы используете кеширование), для всего остального только чтение, кроме возможно отдельных расширений которые используют какие-то свои директории или файлы. Например akeeba.

    2 Владелец всех файлов НЕ должен быть webserver (иначе вебсервер сможет изменить права доступа к файлам), для удобства владельца можно поставить ftp_user-а или ssh-user-a

    3 В той директории, в которой открыта запись веб-серверу (например cache) должен быть запрет на выполнение php и иных скриптов (даже если хакер сможет записать зловредный код в эту папку. выполнить всё равно не сможет (если он залез в систему через веб-уязвимость ) )

    в apache запрет делается через .htaccess, nginx в конфиге хоста

    4 В момент когда вам нужно установить какое-то новое расширение или обновление, вебсерверу нужно разрешить запись в директории components administrator language tmp plugins modules templates

    5 Для большей безопасности можно еще запретить выполнение любых php скриптов, кроме index.php и administrator/index.php, (если вы используете расширение которое имеет точку запуска Joomla в другом месте - это плохо)

    • smet.denis
      smet.denis (админ)
      14 Марта 2013, 00:46
       ↑  +2  ↓     ответ

      Люблю большие комментарии =)

      --- 1. Видимо я невнятно это написал в статье. Поясняю. Речь идет о Linux-хостинге. Win-хостинг я не рассматриваю как класс в принципе и никому не рекомендую (только если требования к софту особые, например MSSQL или .NET). Про то что в windows среде есть свои права (и еще куча своих заморочек) - я знаю, воевал не раз. ..много там всего. Давайте посмотрим правде в глазе. Сайт о Joomla, люди которые поднимают сайты на ней сначала попробуют у себя на денвере (в лучшем случае Open Server) потом перенесут на хостинг и о-па сюрприз. Полезли в интернет, а там лечение всех болезней "777". Ставят, их ломают (ко мне стучались такие не раз) а потом выводы: Joomla - плохая. Я понимаю, что права далеко не единственная проблема на сайтах и взломать могут и через недобросовестно написанное расширение. Но все же, не верно настроенные права - это дыра. Поэтому я не стал захламлять мозг читателям о windows, потому что подавляющее большинство хостинга - linux-like ОС.

      --- 2. При сохранении Joomla сама выставляет такие права на файл configuration.php Не особо спасет, но стоит иметь ввиду. При сохранении настроек она меняет права файлу, перезаписывает его и снова ставит чтение.

      --- 3. Это конечно правильно, но ой как не практично, просто ужас... Многие компоненты пишут файлы настроек куда попало. Это не хорошо и не плохо, просто такая архитектура расширений. Например WM, Zoo, k2 и туча других расширений. Под все права не учесть. Лучше ставить рекомендуемые умолчания и "не париться". У вас не жизнеспособный вариант, на простую установку расширения нужно сделать 100500 действий. Вы сами так делаете? ;)

      --- Я не говорю, что владелец файлов должен быть веб-сервер. Я написал что должен быть тот, от которого он работает. Обычно apache запускается от www-data, но с помощью mpm-модулей переключается имя пользователя от которого работает apache (прочитайте что такое "apache2-mpm-itk"). Обычно этот пользователь совпадает с вашим ftp и ssh. C чистым nginx немного другая история, но суть сведется к тому же.

      Кстати, у кошерного хостинга для сайта все пользователи один и те же (apache, ftp, ssh итд). Тогда проблем не будет. Но конечно наши русские шаред-хостеры подг**нили этот дело и время от времени встречается проблема, что если сам сайт изменил свой файл, то через ftp с ним уже ничего не сделать. Вот чтобы понять откуда растут ноги подобных проблем и написана эта статья.

      --- То что вы написали про безопасность, это конечно хорошо и даже правильно, но не жизнеспособно и, к сожалению, легко обойти. Не практично, опять же потому что люди ставят сайты на шаред, где нельзя править множество опций. Большинство "сайтоделов" боятся переходить на VPS и настроить все руками (рекомендую им перерасти свои страхи). Те, кто уже умеют вручную настраивать сервер - скорее всего уже давно приняли меры по безопасности. Например отказались от FTP, а авторизация только через ключи, а не пароли итд...

      • progmist
        progmist
        14 Марта 2013, 09:26
         ↑  -5  ↓     ответ

        Денис вы понимаете, что если вебсервер может писать в php файлы joomla. и не важно используется apache3-mpm-itk или еще что-то, хакер сможет записать вредоносный код!

        А так как вы советуете:

        > При сохранении Joomla сама выставляет такие права на файл configuration.php Не особо спасет, но стоит иметь ввиду. При сохранении настроек она меняет права файлу, перезаписывает его и снова ставит чтение.

        Из этого значит что вебсервер может писать в php файлы! А ЭТО КРАЙНЕ НЕ БЕЗОПАСНО!!!!

        sql-бага, получение хеша пасса админа, расшифровка хеша, если удачно -> доступно в админку, дальше установка любого кода через систему расширений джумла.

        и всё ! ваш сайт заражен. а хороший хакер может сделать так что вы и не заметите что вас поломали. а если и заметите то врядли найдете где бэкдор (он его в любом случае оставит)

        И вы еще говорите что мои соображения про безопасности не будут работать.... и Легко обойти? Заинтрегован и если честно немного разозлен. что вы сделаете будь у меня такие настройки и sql-бага , да даже пароль в админку под админом?? что вы сделаете чтобы навредить сайту? Сможете добавить зловредный код?

        КАКИМ ОБРАЗОМ??? ЕСЛИ В ФАЙЛЫ ЗАПИСИ НЕТ!!!

        Доступ к файлам сервера в данном случае можно будет поиметь только через фтп или ssh. а их можно получить через конкретно системные уязвимости сервисов. через web-уязвимости (sql,XSS,require и т.п) вы ни чего не сможете сделать...

        Если скажете как вы это сделаете, ТО Я заплачу вам денег!

        • smet.denis
          smet.denis (админ)
          14 Марта 2013, 11:01
           ↑  +7  ↓     ответ

          Вы молодец =) все понятия собрали в кучу =) Не путайте теплое с мягким? Еще злитесь и кричите зачем-то... =)

          Я не советую менять права на файлы "configuration.php". Joomla этим сама занимается. Нажмите сохранить в общих настройках и увидите что права станут "0444" (J2.5).

          Если у вас apache работает от другого пользователя, то конечно он не сможете изменять файлы сайта, но тогда и вы не сможете работать со своим же сайтом нормально (конечно если не поставить какие-нибудь дикие права на файлах).

          Можно уже совсем поставить чтение всему сайту от супер пользователя и вообще никто ничего не изменит - но сайтом то будет невозможно пользоваться. Установка нового расширения или деплоймент - куча не нужных действий.

          Почему apache не должен иметь прав на изменения? Как вы, например, представляете загрузку картинки в папку с нормальными правами 755, а пользователь у папки и apache разные? Никак. Можно конечно пошаманить с группами, но это костыли и новые дыры безопаности на ФС. Конечно можно расставить свои права на отдельные папки, но это все тоже костыли и туча неудобств в работе. ... хотя дело, то конечно хозяйское. Каждый сходит с ума по своему =)

          Я не пытаюсь решить все проблемы безопасности, а рассказываю какие права на сайте должны быть чтобы не было головной боли и почему 777 - это вредно для здоровья(ни больше, ни меньше). Вы же мне зачем то рассказываете о всех аспектах безопасности, нужно не нужно. Все подряд собрали (sql, xss и прочее). Мало того что не к месту, да еще примеры не совсем корректные.

          PS Чувствуется, что вы знаете больше обычного "вебмастера" и это жирный плюс вам в карму, но местами у вас какое-то недопонимание творится что и зачем делается, вот и мешаете все в одну кашу. =)

          • Ольга
            Ольга
            16 Сентября 2016, 11:14
             ↑  0  ↓     ответ

            "Если у вас apache работает от другого пользователя, то конечно он не сможете изменять файлы сайта, но тогда и вы не сможете работать со своим же сайтом нормально (конечно если не поставить какие-нибудь дикие права на файлах)."

            ------------------------------------------------------------------------

            Вот такая ерунда у меня сейчас и происходит. Пару месяцев назад сайт был перенесен на другой хостинг и начались проблемы. Не могу загрузить с компьютера ни плагины ни темы ни картинки. Выдает ошибку: "Невозможно создать каталог /2016/09/. Является ли его родительский каталог доступным для записи на сервере?" Права на директории выставлены 755 (пробовала и 777 толку нет). Написала хостеру, чтобы поменять пользователя, так как, похоже, что апач запускается под именем владельца файлов и не может записать файлы в указанный каталог. Ответ был таким: «Здравствуйте. Ваш аккаунт находится на аккаунте виртуального хостинга. Группа и имя пользователя задается системой и их изменение не предоставляется возможным."

            Что мне делать??? Посоветуйте, пожалуйста.

          • Ольга
            Ольга
            16 Сентября 2016, 11:41
             ↑  0  ↓     ответ

            Интересно, что пользователь не прописался только на один каталог /2016/09/,в остальных каталогах /2016/01/..../2016/12/ все прописалось, все они имеют файл .lisling с прописанным пользователем.

            drwxr-xr-x 2 zhakanov zhakanov 4096 Jul 15 2015 .

            drwxr-xr-x 14 zhakanov zhakanov 4096 Jan 27 2014 ..

            Пробовала вручную загрузить файл .lisling, загружается, но ошибка все равно остается. Удаляла директорию /09/, в надежде, что система сама её создаст, но ничего не происходит.

            Может, я что то не правильно понимаю или делаю? Жду помощи.

            • Noir
              Noir
              18 Октября 2016, 23:54
               ↑  0  ↓     ответ

              Смените хостера на нормального. Практика показывает, что никто ничего перенастраивать под Вас не будет. Потеряете время, испортите нервы, а в результате - или уйдете, или разожмете все на 777 и будете ждать, когда первый из хакеров это заметит.

  • progmist
    progmist
    13 Марта 2013, 19:01
     ↑  +2  ↓     ответ

    И в windows можно настроить возможность запуска например тогоже apache из-под любого пользователя

    • smet.denis
      smet.denis (админ)
      14 Марта 2013, 00:48
       ↑  +8  ↓     ответ

      windows я всегда рассматриваю только как настольную ОС и по большому счету нет никакой разницы от какого пользователя работает apache если сайт ТОЛЬКО для разработчика. Обычно работает от администратора и это всех устраивает.

      + мой верхний комментарий =)

  • Сергей
    Сергей
    21 Марта 2013, 16:57
     ↑  0  ↓     ответ

    Windows & Linux = вечный спор. Собрались два крутейших специалиста :)Спор с разных точек зрения. smet.denis написал хорошую, доходчивую статью для начинающих "...сайтоделателях" на платформе linux о минимальном уровне безопасности. А дальше, как говориться -"век живи-век учись."

    А у меня этот(perm.php)с приведённым кодом не работает. Код просто выводится на странице.

    • smet.denis
      smet.denis (админ)
      21 Марта 2013, 19:14
       ↑  0  ↓     ответ

      У вас либо модуль PHP не работает, либо вы делаете что-то не так...

  • Richi
    Richi
    18 Мая 2013, 18:01
     ↑  0  ↓     ответ

    Отличная статья. Спасибо за нее.

    У меня назрел один вопрос, может подскажете.

    Предыстория. Заказал виртуальный хостинг, который позволял разместить до 20 сайтов на аккаунте, которые я туда с удовольствием разместил. Но в один прекрасный момент сломали один из сайтов через дыру в CMS, и после этого я с ужасом обнаружил что заражены все сайты на аккаунте.

    Позже выяснил, что произошло это потому, что хоть сайтов и много, но они сидят на одном пользователе сервера.

    Вопрос:

    Я ради безопасности теперь на своем сервере под каждый сайт завожу отдельного пользователя и он соответственно имеет права только на свою директорию. НО. беда в том, что апач запущен под пользователем www-data, и получается у него нет доступа на запись в папки сайтов, т.к. у них владелец не www-data.

    Как быть в этой ситуации и как правильно разрулить права? надеюсь понятно объяснил....

    • smet.denis
      smet.denis (админ)
      18 Мая 2013, 18:14
       ↑  0  ↓     ответ

      Вам нужно посмотреть для apache модуль apache-mpm-itk. После установки модуля в VirtualHost нужно добавить следующий блок

      <IfModule mpm_itk_module>

      AssignUserId SITE_USER SITE_GROUP

      </IfModule>

      Вместо SITE_USER и SITE_GROUP указать пользователя и группу, от которого будет работать apache именно для этого сайта

      Статей много в интернетах. Например для debian - rx-support.net/article/printer/apache2-mpm-itk-debian.html

  • scard
    scard
    31 Августа 2013, 06:37
     ↑  0  ↓     ответ

    удобственно иногда в *nix системах редхатообразного вида (fedora,centos и тд) предварительно допустить к каталогу еще одного (нескольких) других пользователям на основе механизма ACL такой командой:

    sudo setfacl -R -m u:someuser:rwx pathToWeb/

    sudo setfacl -dR -m u:someuser:rwx pathToWeb/

    а затем проставить права, как прописано в этом хорошем материале. Владельца уже проставлять не надо (надо выполнить и эту последовательность команд для владельца, в самом начале желательно). На выходе получим несколько пользователей, которые имеют доступ к сайту (это полезно применять при наличии достаточно большой команды в 3-7 человек). Нехорошо "расшаривать" нужный аккаунт распространяя логин/пароль, а лучше сделать именно так.

  • bkmz
    bkmz
    11 Марта 2014, 18:18
     ↑  +1  ↓     ответ

    создавая сайт на локальном сервере решил выставить права как тут написано но вот что вышло

    :~$ find </var/www/joomla/> -type d -exec chmod 755 {} \;

    find: `d': No such file or directory

    подскажите что я делаю не так((

    • smet.denis
      smet.denis (админ)
      11 Марта 2014, 18:43
       ↑  0  ↓     ответ

      Вы так и пишете путь до папки вместе с символами < > ?

      • bkmz
        bkmz
        12 Марта 2014, 16:50
         ↑  0  ↓     ответ

        убрал кавычки началась реакция, но вот только пишет chmod: изменение прав доступа для «/var/www/joomla/libraries/joomla/filesystem/meta»: Операция не позволена

        а с sudo если вводить эту команду то не какой реакции.. не осилить мне линукс(

        спасибо за помощь

  • Игорь
    Игорь
    11 Мая 2014, 19:41
     ↑  +1  ↓     ответ

    У меня владелец файлов и пользователь Апача не совпадают, что с этим можно сделать? поменять пользователя Апача у хостера мне вряд ли разрешат )

    • Игорь
      Игорь
      12 Мая 2014, 20:16
       ↑  0  ↓     ответ

      был старый сервер, перешел на новый, стало все ок

  • starfolk
    starfolk
    29 Октября 2014, 20:16
     ↑  0  ↓     ответ

    спасибо!

  • Котэ Детектив
    Котэ Детектив
    29 Мая 2015, 23:05
     ↑  0  ↓     ответ

    Добра тебе, ОП!

  • Dmitry
    Dmitry
    19 Июля 2015, 19:37
     ↑  0  ↓     ответ

    без acl бу неудобно.

    • Тирион
      Тирион
      20 Июля 2015, 14:37
       ↑  0  ↓     ответ

      Права доступа к FS - это и есть ACL ;)

  • Dmitry
    Dmitry
    19 Июля 2015, 19:49
     ↑  0  ↓     ответ

    Вся статья свелась к:

    find /var/www/jumla -type d -print0 | xargs -0 chmod 0755

    find /var/www/jumla -type f -print0 | xargs -0 chmod 0644

    Про 755/644 - это такая отмашка. Типа, вот я весь на белом коркодиле, ратую за безопасность. А что там дальше будет - "читайте маны".

    Владелец апач (что тут в комментах опустили).

    )) Ага. Если нужен доступ по ftp, то создается еще и группа, куда закидывается и апач и ftp. каша полная.

    • Тирион
      Тирион
      20 Июля 2015, 14:38
       ↑  0  ↓     ответ

      Хотите безопасность - не используйте FTP. Вообще. Никогда.

      Есть ssh :)

  • Dmitry
    Dmitry
    19 Июля 2015, 19:53
     ↑  0  ↓     ответ

    Писать про права доступа и не писать про установку самой программы - сферический конь в вакууме.

    • Тирион
      Тирион
      20 Июля 2015, 14:36
       ↑  0  ↓     ответ

      О, еще один веб-мастер-ломастер :D

  • Dmitry
    Dmitry
    20 Июля 2015, 16:53
     ↑  0  ↓     ответ

    Как вариант, ставить апач на домашнем компе, что закрыт извне, и там же джумлу. Соответственно, полные справа, ибо для внутреннего пользования. Затем синхрон уже с боевым полем. По рсинк, или лфтп, как нравится.

    А что мастер ломастер. Шапка-то темы ветиеватая, как и комментарии.

    • Тирион
      Тирион
      20 Июля 2015, 17:59
       ↑  0  ↓     ответ

      Все проекты должны хранится в репозитории, подниматься через репозиторий и сихронизоваться так же. Потом даже на вирусы просто проверять и откатить проект на любую точку в одну команду. Варинтов тьма, тот же svn, git.

      Самый лучший способ для разработки использовать виртуальный сервер (WM, VirtualBox или даже Vargant итд) Т.к это unix-система, а значит максимально приближена к продуктиву, его окружению а главное особенностям работы (той же FS).

      Самые полные права у вас могут быть только под windows, т.к в системе принято работать от лица супер администратора с полным доступом даже в системные директории из PHP. Нормальные разработчики считаю это грехом... ))))

      Судя по вашим ответам я предположил что вы всего лишь еще один "веб-мастер"... Извините. Без обид ;)

  • Dmitry
    Dmitry
    21 Июля 2015, 01:44
     ↑  0  ↓     ответ

    Блин. Уже целый день прошел.

    Конечно, через ftp. права фтп юзера и все. отдельного юзера и все. да. Настраивается фтп клиент в джумле и все. и да - фтп клиентом все рулится.

    chown -R фтпюзер тратата

    find трататата -type d -print0 | xargs -0 chmod 0755

    find трататата -type f -print0 | xargs -0 chmod 0644

    Ну и временно для configuration.php 777 (до всех этих трех команд и настройки фтп клиента в джумле. Блин. весь текст. все! )))

    • Тирион
      Тирион
      21 Июля 2015, 21:40
       ↑  0  ↓     ответ

      Ужас. Мне вас жалко....

  • Серик
    Серик
    23 Октября 2016, 14:54
     ↑  0  ↓     ответ

    Почему у большенства папок, последняя группа прав (x) - это означает что кто угодно может выполнить запуск из такой папки?

  • Олег
    Олег
    16 Ноября 2016, 17:39
     ↑  0  ↓     ответ

    Существует ли опасность если на файл установить права 755? К примеру некоторые рейтинги просят создать текстовый файл в корне сайта и дать ему права 755, получается что файл будет исполняемым, но вот вопрос: такая манипуляция правами может потом сыграть на руку взломщикам?

Оставить комментарий




* обязательно для заполнения

1 введенный почтовый адрес используется только для обратной связи при ответах в комментариях и сервиса gravatar.com
.