Я готовлюсь к развертыванию сайта Drupal 7 и не могу найти никакой документации о том, на что должны быть установлены рекомендуемые разрешения для файлов и каталогов с учетом требований безопасности.
В частности default/files/
(и подкаталоги?) settings.php
, .htaccess
И что - нибудь еще , что я должен быть в курсе.
Ответы:
Ваш веб-сервер должен иметь возможность читать все файлы, но не записывать их. Если ваш сайт требует загрузки файлов, дайте серверу разрешение на запись только в эту папку.
Более подробная информация о том, как это настроить, а также о некоторых вещах, которые могут произойти, если вы этого не сделаете, доступна в документации Drupal .
источник
Та страница друпала, как и многие, очень длинная и запутанная. Но он содержит этот пост Джейсона, который ударил гвоздь по голове:
источник
Моя практика создания нового сайта Drupal на сервере заключается в том, чтобы иметь пользователя, который входит в группу веб-серверов (обычно Apache), и чтобы этот пользователь владел всеми файлами Drupal. В Ubuntu это команды для настройки:
Как только я это настрою, я войду в систему под этим пользователем и установлю Drupal по адресу / var / www / example / docroot или аналогичный, а затем создам каталог файлов вручную и скопирую файл settings.php. Поскольку мы вошли в систему в качестве нашего примера пользователя перед копированием в Drupal, наши права доступа к файлам и их права должны автоматически настраиваться для всех основных файлов и сценариев Drupal (включая файлы .htaccess).
Теперь давайте настроим каталог файлов.
Далее мы настроим разрешения, чтобы веб-сервер всегда мог записывать в любой файл, который находится в этом каталоге. Мы делаем это с помощью 2775 в нашей команде chmod. 2 означает, что идентификатор группы будет сохранен для любых новых файлов, созданных в этом каталоге. Это означает, что www-данные всегда будут группой для любых файлов, тем самым гарантируя, что веб-сервер и пользователь всегда будут иметь права на запись для любых новых файлов, размещенных в этом каталоге. Первые 7 означают, что владелец (пример) может R (Чтение) W (Запись) и X (Выполнить) любые файлы здесь. Вторая цифра 7 означает, что группа (www-данные) также может отправлять и записывать любые файлы в этом каталоге. Наконец, 5 означает, что другие пользователи могут R и X файлы, но не могут писать.
Если в этом каталоге есть какие-либо файлы, убедитесь, что на веб-сервере есть права на запись.
Теперь Drupal готов к установке. Когда закончите, ОЧЕНЬ важно вернуться в settings.php и убедиться, что у всех пользователей есть только права на чтение.
Это оно! Эта настройка гарантирует, что вы избежите любых ситуаций, когда пользователь, владеющий каталогом, или веб-сервер не могут записывать / изменять / удалять файлы в каталоге файлов.
источник
Папка с файлами Drupal должна быть доступна для записи веб-сервером. Самый безопасный способ сделать это - изменить группу и сделать ее доступной для записи, например так:
За исключением папки для загрузки файлов, наиболее безопасным является chmod 644 для всех файлов, 755 для каталогов.
Это может быть выполнено следующим образом (при запуске в папке Drupal-site указывается
.
текущий путь):Помните, что вам нужно
chmod g+w
будет выполнить повторную настройку после выполнения вышеуказанной команды, так как она сбросит chmod для всех файлов и папок.источник
chgrp -R www-data sites/*/files
иchmod -R g+w sites/*/files
избавляюсь от ошибок на странице статуса.Любой совет "chmod blah" или "chown X" не имеет смысла, не зная: что за файлы user: group по умолчанию находятся в файлах и от какого пользователя и группы работает ваш веб-сервер.
Drupal Docs, на которые другие ссылаются, довольно хороши в этой теме, но еще один ресурс - это модуль Security Review, который помогает убедиться, что все настроено правильно.
источник
Я отвечу, учитывая, что файлы создаются на сервере с использованием FTP, используя учетные данные, отличные от тех, под которыми работает веб-сервер (обычно Apache работает как nobody / nobody). Это означает, что пользователь, которому принадлежат файлы, созданные вручную перед запуском установщика Drupal (который также включает файлы, загруженные на сервер из архива Drupal), не является пользователем, используемым для запуска веб-сервера (ни имя пользователя, ни группа не совпадают) , Этот сценарий применим также к случаю, когда эти файлы создаются с использованием SSH.
default/files
каталог), должен быть (для пользователя, назначенного процессам веб-сервера, который затем является пользователем, назначенным сценариям PHP, работающим на этом веб-сервере):default/files/<directory-used-by-the-module>/<sub-directory-used-by-the-module>
)источник
Рекомендуемые права доступа к файлам / каталогам:
Рекомендуемое владение файлом / каталогом:
Вот переменные, которые управляют разрешениями dir / file по умолчанию для новых элементов:
Вот некоторый скрипт для исправления прав доступа: fix-permissions.sh
Читать далее:
Вот скрипт, который я использую для исправления разрешений на удаленном хосте для публичных / приватных каталогов:
Примечание. Приведенный выше код будет пытаться получить группу Apache и установить ее в
GET_HTTP_GROUP
переменную.источник
Этот сценарий оболочки находится внизу этой страницы: https://www.drupal.org/node/244924
Я запускаю его время от времени, чтобы убедиться, что мои разрешения настроены правильно.
источник
Также, если вы запускаете fastcgi, php запускается от имени пользователя и будет иметь доступ ко всем файлам, к которым у него есть доступ, если только вы намеренно не попытаетесь избежать этого.
источник
Это помогло мне решить проблемы с разрешением OSX. Я нашел его в https://www.drupal.org/node/244924#comment-3741738 пользователем протоплазмы. Я был как у него проблемы после миграции.
источник
Существует модуль под названием « Проверка безопасности», который проверяет, является ли ваш сайт безопасным или нет. Я также нашел очень хорошую ссылку для установки прав доступа к сайту.
источник