На этот вопрос невозможно ответить, не зная, какая группа user: group находится в файлах и от какого пользователя и группы работает ваш веб-сервер. Это должно быть закрыто как "неясно, что вы спрашиваете". Или как дубликат: drupal.stackexchange.com/questions/373/…
Хотя голосование принято и принято, это не очень хороший ответ. Вопрос неполный, и нет никакого способа узнать, является ли этот ответ правильным для конфигурации OP (или для кого-либо еще). Единственное, что в этом хорошего - это ссылка.
Скопируйте это в файл и назовите его «fix-permissions.sh»
#!/bin/bashif[ $(id -u)!=0];then
printf "This script must be run as root.\n"exit1fi
drupal_path=${1%/}
drupal_user=${2}
httpd_group="${3:-www-data}"# Help menu
print_help(){
cat <<-HELPThis script is used to fix permissions of a Drupal installation
you need to provide the following arguments:1)Path to your Drupal installation.2)Usernameof the user that you want to give files/directories ownership.3) HTTPD group name (defaults to www-data forApache).Usage:(sudo) bash ${0##*/} --drupal_path=PATH --drupal_user=USER --httpd_group=GROUPExample:(sudo) bash ${0##*/} --drupal_path=/usr/local/apache2/htdocs --drupal_user=john --httpd_group=www-data
HELPexit0}# Parse Command Line Argumentswhile[ $# -gt 0 ]; docase"$1"in--drupal_path=*)
drupal_path="${1#*=}";;--drupal_user=*)
drupal_user="${1#*=}";;--httpd_group=*)
httpd_group="${1#*=}";;--help) print_help;;*)
printf "Invalid argument, run --help for valid arguments.\n";exit1esac
shiftdoneif[-z "${drupal_path}"]||[!-d "${drupal_path}/sites"]||[!-f "${drupal_path}/core/modules/system/system.module"]&&[!-f "${drupal_path}/modules/system/system.module"];then
printf "Please provide a valid Drupal path.\n"
print_helpexit1fiif[-z "${drupal_user}"]||[ $(id -un ${drupal_user}2>/dev/null)!="${drupal_user}"];then
printf "Please provide a valid user.\n"
print_helpexit1fi
cd $drupal_path
printf "Changing ownership of all contents of "${drupal_path}":\n user => "${drupal_user}" \t group => "${httpd_group}"\n"
chown -R ${drupal_user}:${httpd_group}.
printf "Changing permissions of all directories inside "${drupal_path}" to "rwxr-x---"...\n"
find .-type d -exec chmod u=rwx,g=rx,o='{}' \;
printf "Changing permissions of all files inside "${drupal_path}" to "rw-r-----"...\n"
find .-type f -exec chmod u=rw,g=r,o='{}' \;
printf "Changing permissions of "files" directories in "${drupal_path}/sites" to "rwxrwx---"...\n"
cd sites
find .-type d -name files -exec chmod ug=rwx,o='{}' \;
printf "Changing permissions of all files inside all "files" directories in "${drupal_path}/sites" to "rw-rw----"...\n"
printf "Changing permissions of all directories inside all "files" directories in "${drupal_path}/sites" to "rwxrwx---"...\n"for x in./*/files; do
find ${x} -type d -exec chmod ug=rwx,o= '{}' \;
find ${x} -type f -exec chmod ug=rw,o= '{}' \;
done
echo "Done settings proper permissions on files and directories"
Теперь запустите этот скрипт как: sudo bash fix-permissions.sh --drupal_path = ваш / drupal / путь --drupal_user = ваше_пользователь_имя
Виола! Ваши разрешения автоматически исправляются.
Мы делаем это, используя 2775 в нашей команде chmod. 2 означает, что идентификатор группы будет сохранен для любых новых файлов, созданных в этом каталоге. Это означает, что apache всегда будет группой для любых файлов, тем самым гарантируя, что веб-сервер и пользователь всегда будут иметь права на запись в любые новые файлы, размещенные в этом каталоге. Первые 7 означают, что владелец (пример) может R (Чтение) W (Запись) и X (Выполнить) любые файлы здесь. Вторая цифра 7 означает, что группа (www-данные) может также RW и X любые файлы в этом каталоге. Наконец, 5 означает, что другие пользователи могут R и X файлы, но не могут писать.
Другой момент - установить правильные разрешения для вашего settings.php.
Выбранный ответ не совсем корректен, особенно когда там мало неизвестных, однако Алекс объяснил это довольно подробно, и это очень похожий подход, который я использую на сайтах Drupal.
Кроме того, я решил поделиться своим сценарием и здесь, но в качестве модуля Drupal, который я создал некоторое время назад. Вы можете поместить его в ~/.drushподкаталог и просто выполнить drush file-permissions, находясь в любом рабочем подкаталоге сайта Drupal.
Это бутстрэпы вашего Drupal - сайт, чеки file_private_path, file_public_pathи устанавливают их для правильного пользователя Apache и группы. Пользователь / группа Apache определяется автоматически, поэтому он не полагается на то, что пользователь указывает их вручную или жестко запрограммирует в файле сценария.
модуль не меняет разрешения для папки tmp. Это намеренно? В моей конфигурации tmp установлен на site / default / tmp, и к этому каталогу не применяются изменения прав доступа.
Киранкинг
0
Как и другие парни упомянули правильное разрешение
Все каталоги -> 755
Все файлы -> 755
сайтов / по умолчанию -> 755 (это правило переопределения этого каталога)
sites / default / files -> 775 (это правило переопределения для этого каталога и его содержимого)
sites / default / settings. php -> 444 (это правило переопределения для этого файла)
Соответствующие команды для достижения упомянутых Правил приведены в корне вашего сайта Drupal.
find .-type f | xargs chmod 644
find .-type d | xargs chmod 755
chmod 444 sites/default/settings.php
chmod 775-R sites/default/files
Ответы:
На самом деле разрешения должны быть
Посмотрите лучшие 3 ответа на этот вопрос для некоторых больших деталей.
источник
Из официального руководства Drupal :
Скопируйте это в файл и назовите его «fix-permissions.sh»
Теперь запустите этот скрипт как: sudo bash fix-permissions.sh --drupal_path = ваш / drupal / путь --drupal_user = ваше_пользователь_имя
Виола! Ваши разрешения автоматически исправляются.
источник
Вот как я решил установить разрешения для своего экземпляра Drupal:
Мы делаем это, используя 2775 в нашей команде chmod. 2 означает, что идентификатор группы будет сохранен для любых новых файлов, созданных в этом каталоге. Это означает, что apache всегда будет группой для любых файлов, тем самым гарантируя, что веб-сервер и пользователь всегда будут иметь права на запись в любые новые файлы, размещенные в этом каталоге. Первые 7 означают, что владелец (пример) может R (Чтение) W (Запись) и X (Выполнить) любые файлы здесь. Вторая цифра 7 означает, что группа (www-данные) может также RW и X любые файлы в этом каталоге. Наконец, 5 означает, что другие пользователи могут R и X файлы, но не могут писать.
Другой момент - установить правильные разрешения для вашего settings.php.
Другие разрешения должны быть по умолчанию.
Полное руководство по установке Drupal: http://itvictories.com/node/21
источник
Выбранный ответ не совсем корректен, особенно когда там мало неизвестных, однако Алекс объяснил это довольно подробно, и это очень похожий подход, который я использую на сайтах Drupal.
Кроме того, я решил поделиться своим сценарием и здесь, но в качестве модуля Drupal, который я создал некоторое время назад. Вы можете поместить его в
~/.drush
подкаталог и просто выполнитьdrush file-permissions
, находясь в любом рабочем подкаталоге сайта Drupal.Это бутстрэпы вашего Drupal - сайт, чеки
file_private_path
,file_public_path
и устанавливают их для правильного пользователя Apache и группы. Пользователь / группа Apache определяется автоматически, поэтому он не полагается на то, что пользователь указывает их вручную или жестко запрограммирует в файле сценария.Страница модуля: https://www.drupal.org/project/file_permissions
источник
Как и другие парни упомянули правильное разрешение
Соответствующие команды для достижения упомянутых Правил приведены в корне вашего сайта Drupal.
источник