সাইট, ডিফল্ট এবং ফাইল ফোল্ডারগুলির জন্য সঠিক অনুমতি?


10

আমাকে কেবল এই অনুমতিটি সংশোধন করে কিনা তা জানতে হবে:

site --> 775
site/default -->775
site/default/files --> 775
site/default/setting.php --> 555

5
ডিফল্ট ব্যবহারকারী: ফাইলগুলিতে গ্রুপটি কী এবং আপনার ওয়েবসভারটি কোন ব্যবহারকারী এবং গোষ্ঠী হিসাবে কাজ করে তা না জেনে এই প্রশ্নের উত্তর দেওয়া যাবে না। এটি "আপনি যা জিজ্ঞাসা করছেন অস্পষ্ট" হিসাবে বন্ধ করা উচিত। বিকল্প হিসাবে এর সদৃশ হিসাবে: drupal.stackexchange.com/questions/373/…
ফ্রি র‌্যাডিকাল

উত্তর:


14

আসলে অনুমতি থাকতে হবে

sites -> 755
sites/default -> 755
sites/default/files -> 775
sites/default/settings.php -> 444

কিছু দুর্দান্ত বিবরণের জন্য এই প্রশ্নের শীর্ষ 3 টি উত্তর দেখুন।


3
আপভোটেড এবং স্বীকৃত অবস্থায়, এটি কোনও ভাল উত্তর নয়। প্রশ্নটি অসম্পূর্ণ এবং এই উত্তরটি ওপিএস কনফিগারেটনের (বা অন্য কারও জন্য) সঠিক কিনা তা জানার কোনও উপায় নেই। এটি সম্পর্কে ভাল জিনিস লিংক।
ফ্রি র‌্যাডিকাল

ডিরেক্টরি উল্লেখ না করা সাইটগুলি, সাইট নয়। : ডি
রায়ান স্জরামা

5

থেকে Drupal এর অফিসিয়াল হ্যান্ডবুকে :

এটিকে একটি ফাইলে অনুলিপি করুন এবং নাম দিন "ফিক্স-সুপারিশন.শ"

#!/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"

এখন এই স্ক্রিপ্টটি চালান: sudo bash fix-permission.sh --drupal_path = আপনার / দ্রুপাল / পথ --ড্রুপাল_ইউসার = আপনার_ ব্যবহারকারী_নাম

ভিওলা! আপনার অনুমতিগুলি স্বয়ংক্রিয়ভাবে স্থির হয়ে গেছে।


নিশ্চিত হয়ে নিন যে আপনি পুরো পোস্টটি এবং মন্তব্যগুলি পড়েছেন।
এমপিডোনাদিও

আর এই ফাইলটি কোথায় পেস্ট করবেন? কোন ডিরেক্টরিতে?
ব্রুনো ভিনসেন্ট

3

এইভাবে আমি আমার ড্রুপাল উদাহরণের জন্য অনুমতি সেট করার সিদ্ধান্ত নিয়েছি:

mkdir sites/default/files
chgrp -Rv apache sites/default/files
chmod 2775 sites/default/files

আমরা আমাদের chmod কমান্ডে 2775 ব্যবহার করে এটি করি। ২ এর অর্থ এই ডিরেক্টরিতে তৈরি হওয়া যে কোনও নতুন ফাইলের জন্য গ্রুপ আইডি সংরক্ষণ করা হবে। এর অর্থ হ'ল অ্যাপাচি যে কোনও ফাইলের সর্বদা গ্রুপ হবে, যার ফলে এটি নিশ্চিত করা যায় যে ওয়েব সার্ভার এবং ব্যবহারকারী উভয়ই সর্বদা এই ডিরেক্টরিতে থাকা কোনও নতুন ফাইলগুলিতে লেখার অনুমতি পাবেন। প্রথম 7 এর অর্থ হল যে মালিক (উদাহরণস্বরূপ) ডাব্লু (পড়ুন) এবং এক্স (এক্সিকিউট) এখানে যে কোনও ফাইল করতে পারেন। দ্বিতীয় 7 এর অর্থ এই গ্রুপ (www-ডেটা) এর অর্থ এই ডিরেক্টরিতে যে কোনও ফাইল আরডাব্লু এবং এক্স করতে পারে। অবশেষে, 5 টির অর্থ অন্য ব্যবহারকারীরা আর ও এক্স ফাইল করতে পারবেন তবে লিখতে পারবেন না।

আরেকটি বিষয় হ'ল আপনার সেটিংস.এফপি জন্য সঠিক অনুমতি সেট করা

chmod 444 sites/default/settings.php

অন্যান্য অনুমতিগুলি ডিফল্ট হতে হয়।

সম্পূর্ণ ড্রুপাল ইনস্টলেশন গাইড: http://itvictories.com/node/21


2

নির্বাচিত উত্তর একেবারেই সঠিক নয়, বিশেষত যখন সেখানে অজানা কিছু লোক থাকে, তবে আলেকস এটি বেশ বিস্তৃতভাবে ব্যাখ্যা করেছিলেন, এবং এটি ড্রুপাল সাইটগুলিতে আমি গ্রহণ করি এটির অনুরূপ পন্থা।

এছাড়াও, আমি ভেবেছিলাম আমি এখানে আমার স্ক্রিপ্টটিও ভাগ করে নেব, তবে একটি ড্রুপাল মডিউল হিসাবে, যা আমি কিছু সময় আগে তৈরি করেছি। আপনি এটি ~/.drushউপ - ডিরেক্টরিতে স্থাপন করতে পারেন এবং drush file-permissionsকোনও কার্যনির্বাহী ড্রুপাল সাইট উপ-ডিরেক্টরিতে থাকার সময় কেবল কার্যকর করতে পারেন ।

এটি আপনার ড্রুপাল সাইটটিকে বুটস্ট্র্যাপ করে file_private_path, file_public_pathঅ্যাপাচি ব্যবহারকারী এবং গোষ্ঠীটিকে সংশোধন করার জন্য তাদের পরীক্ষা করে এবং সেট করে। অ্যাপাচি ব্যবহারকারী / গোষ্ঠীটি স্বয়ংক্রিয়ভাবে নির্ধারিত হচ্ছে, সুতরাং এটি কোনও ম্যানুয়ালি তাদের নির্দিষ্ট করে দেওয়া বা কোনও স্ক্রিপ্ট ফাইলে হার্ড-কোডডযুক্ত ব্যবহারকারীর উপর নির্ভর করে না।

মডিউল পৃষ্ঠা: https://www.drupal.org/project/file_permission


মডিউলটি দ্রুপাল 8
বেনেডিক্ট

মডিউল টিএমপি ফোল্ডারের জন্য অনুমতি পরিবর্তন করে না। এটা কি ইচ্ছাকৃত? আমার কনফিগারেশনে tmp সাইট / ডিফল্ট / tmp এ সেট করা আছে এবং সেই ডিরেক্টরিতে কোনও অনুমতি পরিবর্তন প্রয়োগ করা হয় না।
কিরানকিং

0

অন্য ছেলেরা যেমন উল্লেখ করেছে সঠিক অনুমতিটি

সমস্ত ডাইরেক্টরিস -> 755
সমস্ত ফাইল -> 755
সাইট / ডিফল্ট -> 755 (এটি এই ডিরেক্টরিটিকে ওভাররাইড করে)
সাইট / ডিফল্ট / ফাইল -> 775 (এই ডিরেক্টরিটি এবং এর বিষয়বস্তুগুলির জন্য এই নিয়ম ওভাররাইড করে)
সাইট / ডিফল্ট / সেটিংস। পিএইচপি -> 444 (এটি এই ফাইলটির জন্য ওভাররাইড নিয়ম)

উল্লিখিত বিধিগুলি অর্জনের জন্য উপযুক্ত কমান্ডগুলি নিম্নলিখিত আপনার ড্রুপাল ওয়েবসাইটের মূলের নীচে আসে

find . -type f | xargs chmod 644
find . -type d | xargs chmod 755
chmod 444 sites/default/settings.php
chmod 775 -R sites/default/files
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.