পিএইচপি-এফপিএম এর ক্রুট এবং chdir ডিরেক্টরি


10

আমি ক্রুটিং সক্ষম করে পিএইচপি-এফএমপি সেট আপ করছি। এখন আমি দেখতে পাচ্ছি যে দুটি বিকল্প রয়েছে এবং আমি সঠিক পার্থক্য কী তা জানতে চাই।

সেটআপটিতে রয়েছে:

chroot = /var/www/domains/domain.tld/
; Chdir to this directory at the start. This value must be an absolute path.
; Default Value: current directory or / when chroot
chdir = /docroot/

এখানে দুটি পৃথক অবস্থান কেন এবং কোন পথে পিএইচপিকে প্রবেশ করার অনুমতি দেওয়া হয়েছে। পিএইচপি ওয়েবসাইট অ্যাক্সেস /var/www/domains/domain.tld/করতে পারে, বা এটি কেবল docrootডিরেক্টরি সহ ফাইলগুলি অ্যাক্সেস করতে পারে ।

===

আমার জন্য হয়তো কিছু নমনীয় পরামর্শ রয়েছে। আমি এই মত একটি সেটআপ করতে চান:

ওয়েবরুট অবস্থান: /var/www/

domain.com/
 |---conf/
 |    |--nginx.conf
 |    |--php-fpm.conf
 |
 |---ssl/
 |---logs/
 |---session/
 |---domains/
       |---www/
       |---app/
       |---dev/

এখন এখানে php-fpm সেটিংসটি হ'ল:

chroot = /var/www/domain.com/
chdir  = /domains/www

এখন এখানে মূল প্রশ্ন অবস্থিত আবেদন করবে হয় wwwসাবডোমেন ফাইল অ্যাক্সেস করতে সক্ষম হবেন devবা app। অথবা এমনকি সেশনে অবস্থিত ফাইলগুলি যা সেশন সেভ পাথ, বা অন্যান্য ফোল্ডার যেমন এসএসএল এবং লগগুলি।

উত্তর:


12
  • ক্রুট 'রুট' ডিরেক্টরিটি সেট করে - আপনি রুট ডিরেক্টরিটির উপরে নেভিগেট করতে পারবেন না।
  • Chdir কেবল সূচনা ডিরেক্টরি পরিবর্তন করে - অন্যান্য ডিরেক্টরিতেও নেভিগেট করা এখনও সম্ভব (এটি উপরেরগুলি সহ)।
    • আপনি যদি ক্রুট পাথটি নির্দিষ্ট না করেন তবে 'আসল' রুট প্রযোজ্য - এবং আপনি একটি নিখুঁত chdir নির্দিষ্ট করেন।
    • আপনি যদি ক্রুট পাথটি নির্দিষ্ট করে থাকেন তবে আপনি ক্রুট'ড পাথের সাথে সম্পর্কিত একটি পাথ নির্দিষ্ট করুন (যা মূল ডিরেক্টরিটিকে পুনরায় সংজ্ঞায়িত করে)।

আপনার প্রস্তাবিত সেটিংসটি বেশ সূক্ষ্ম বলে মনে হচ্ছে।

  • প্রারম্ভিক পথটি হবে ক্রুট পথ + চিডির পাথ
  • অ্যাপ্লিকেশনটি ক্রুট পাথের অধীনে সমস্ত ফাইল অ্যাক্সেস করতে সক্ষম করবে (যদি না সেখানে অন্যান্য বিধিনিষেধ না থাকে - যেমন পিএইচপি_পেনবেসডির, অনুমতি ইত্যাদি) place

পার্শ্ব নোট হিসাবে - আপনার প্রদর্শিত ডকুমেন্টের কাঠামোর উপর ভিত্তি করে আপনার পিএইচপি-অ্যাপ্লিকেশনটিতে আপনার nginx.conf এবং php-fpm.conf এ অ্যাক্সেস থাকবে - যা আপনি পরিবর্তন করতে চান এমন কিছু মনে হচ্ছে (কমপক্ষে ফাইলগুলি পড়ার- কেবলমাত্র সেই ব্যবহারকারীর কাছে)।


এই ফাইলগুলি নিরাপদ কিনা তা আমি নিশ্চিত করব। যাইহোক, ক্রুটিংয়ের এই পদ্ধতির মধ্যে কী পার্থক্য রয়েছে এবং কেবল পিএইচপি_উপেনবেসেডির সেট করা আছে?
সাইফ বেকহান

1
হ্যাঁ - ক্রুট অপারেটিং সিস্টেম স্তরে প্রযোজ্য এবং বাইপাস করা আরও শক্ত is ওপেন_বেসাদির পিএইচপি সম্পর্কিত, এবং প্রতিটি ফাংশনে যাচাই করা দরকার যাতে শোষণগুলি আরও সাধারণ হয় (যেমন শেল_এক্সেক দিয়ে বাইরের স্ক্রিপ্টগুলি চালিয়ে)। এই বিষয়ে পিএইচপি এর সাইটে একটি আকর্ষণীয় সুরক্ষা নোট আছে । এর অর্থ এই নয় যে আপনি ক্রুট ব্যবহার করছেন যদি ওপেন_ব্যাসিডির অকেজো হয় - যে কোনও পরিস্থিতিতে যেখানে আপনার স্ক্রিপ্টের বাইরে কিছু ঘটে, আপনার ক্রুট পথের চেয়ে আলাদা ওপেন-বেসডির সংজ্ঞায়িত করা সহজ y ক্রুট আরও ভাল পারফরম্যান্সের প্রস্তাব দিতে পারে।
cyberx86
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.