Tôi chỉ cần biết nếu các quyền này là chính xác:
site --> 775
site/default -->775
site/default/files --> 775
site/default/setting.php --> 555
Tôi chỉ cần biết nếu các quyền này là chính xác:
site --> 775
site/default -->775
site/default/files --> 775
site/default/setting.php --> 555
Câu trả lời:
Trên thực tế, các quyền nên được
sites -> 755
sites/default -> 755
sites/default/files -> 775
sites/default/settings.php -> 444
Xem 3 câu trả lời hàng đầu cho câu hỏi này để biết một số chi tiết tuyệt vời.
Từ cẩm nang chính thức của Drupal :
Sao chép tệp này vào một tệp và đặt tên là "fix-permissions.sh"
#!/bin/bash
if [ $(id -u) != 0 ]; then
printf "This script must be run as root.\n"
exit 1
fi
drupal_path=${1%/}
drupal_user=${2}
httpd_group="${3:-www-data}"
# Help menu
print_help() {
cat <<-HELP
This script is used to fix permissions of a Drupal installation
you need to provide the following arguments:
1) Path to your Drupal installation.
2) Username of the user that you want to give files/directories ownership.
3) HTTPD group name (defaults to www-data for Apache).
Usage: (sudo) bash ${0##*/} --drupal_path=PATH --drupal_user=USER --httpd_group=GROUP
Example: (sudo) bash ${0##*/} --drupal_path=/usr/local/apache2/htdocs --drupal_user=john --httpd_group=www-data
HELP
exit 0
}
# Parse Command Line Arguments
while [ $# -gt 0 ]; do
case "$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";
exit 1
esac
shift
done
if [ -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_help
exit 1
fi
if [ -z "${drupal_user}" ] || [ $(id -un ${drupal_user} 2> /dev/null) != "${drupal_user}" ]; then
printf "Please provide a valid user.\n"
print_help
exit 1
fi
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"
Bây giờ hãy chạy tập lệnh này dưới dạng: sudo bash fix-permissions.sh --drupal_path = your / drupal / path --drupal_user = your_user_name
Viola! Quyền của bạn được tự động sửa.
Đây là cách tôi quyết định đặt quyền cho phiên bản Drupal của mình:
mkdir sites/default/files
chgrp -Rv apache sites/default/files
chmod 2775 sites/default/files
Chúng tôi làm điều này bằng cách sử dụng 2775 trong lệnh chmod của chúng tôi. 2 có nghĩa là id nhóm sẽ được giữ nguyên cho mọi tệp mới được tạo trong thư mục này. Điều đó có nghĩa là apache sẽ luôn là nhóm trên bất kỳ tệp nào, do đó đảm bảo rằng máy chủ web và người dùng sẽ luôn có quyền ghi vào bất kỳ tệp mới nào được đặt trong thư mục này. 7 đầu tiên có nghĩa là chủ sở hữu (ví dụ) có thể R (Đọc) W (Viết) và X (Thực thi) bất kỳ tệp nào ở đây. 7 thứ hai có nghĩa là nhóm (dữ liệu www) cũng có thể RW và X bất kỳ tệp nào trong thư mục này. Cuối cùng, 5 có nghĩa là những người dùng khác có thể tệp R và X, nhưng không thể ghi.
Một điểm khác là đặt quyền chính xác cho settings.php của bạn
chmod 444 sites/default/settings.php
Các quyền khác được mặc định.
Hướng dẫn cài đặt Drupal hoàn chỉnh: http://itvictories.com/node/21
Câu trả lời được chọn không hoàn toàn chính xác, đặc biệt là khi có một vài ẩn số ở đó, tuy nhiên Aleks đã giải thích nó khá rộng rãi và cách tiếp cận rất giống với cách tôi sử dụng trên các trang web của Drupal.
Ngoài ra, tôi nghĩ rằng tôi cũng sẽ chia sẻ kịch bản của mình ở đây, nhưng với tư cách là một Mô-đun Drupal, mà tôi đã tạo ra một thời gian trước đây. Bạn có thể đặt nó trong ~/.drush
thư mục con và chỉ cần thực thi drush file-permissions
trong khi ở bất kỳ thư mục con trang web Drupal nào đang hoạt động.
Nó bootstraps trang web của bạn Drupal, kiểm tra cho file_private_path
, file_public_path
và bộ họ đúng người sử dụng Apache và nhóm. Người dùng / nhóm Apache đang được xác định tự động, do đó, nó không phụ thuộc vào người dùng chỉ định chúng theo cách thủ công hoặc để chúng được mã hóa cứng trong tệp tập lệnh.
Trang mô-đun: https://www.drupal.org/project/file_permissions
Như những người khác đề cập đến sự cho phép chính xác là
Tất cả các Drectories -> 755
Tất cả các tệp -> 755
trang web / mặc định -> 755 (quy tắc này ghi đè lên thư mục này)
các trang web / mặc định / tệp -> 775 (quy tắc này ghi đè lên thư mục này và nội dung của nó)
trang web / mặc định / cài đặt. php -> 444 (quy tắc ghi đè lên tệp này)
Các lệnh thích hợp để đạt được Quy tắc được đề cập đến ở phần sau, tại thư mục gốc của trang web Drupal của bạn
find . -type f | xargs chmod 644
find . -type d | xargs chmod 755
chmod 444 sites/default/settings.php
chmod 775 -R sites/default/files