আমি রাহমুর এবং এমভির উত্তরগুলি একটি প্রযুক্তিগত সমাধান দিয়ে সম্পূর্ণ করব। নীচের সমস্ত কিছু কেবল ইউনিক্স-মতো সিস্টেমের জন্য বৈধ।
ACL গুলি ব্যবহার করে উদাহরণস্বরূপ chmod / chown বিভাগটি পেরিয়ে যান - ইউনিক্স ফাইলের মোডের চেয়ে আরও শক্তিশালী একটি সরঞ্জাম।
আপনার ওয়েব সার্ভারের ব্যবহারকারীর নাম সন্ধান করা
প্রথমত, আপনাকে নিজের ব্যবহারকারীর নামটি জানতে হবে যার অধীনে আপনার ওয়েব সার্ভারটি চলমান। আপনি Apache ব্যবহার করে থাকেন, এটা হতে পারে apache
অথবা httpd
, www-data
, সবচেয়ে ডেবিয়ান মত সিস্টেম, অ্যাপাচি হয় ইত্যাদি www-data
। Nginx জন্য, সাধারণত, এটি হয় www-data
।
এটি পরীক্ষা করে দেখতে, চেষ্টা করুন:
ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\ -f1
নিশ্চিত হয়ে নিন যে এই কমান্ডটি যে ব্যবহারকারীর নামটি ফেরত দিয়েছে তা সুসংগত (উদাহরণস্বরূপ, আমি 99% সময় এনজিনেক্স ব্যবহার করি, তবে এই কমান্ডটি ফিরে আসে tomcat7
, আমি একবার ইনস্টল করা একটি জাভা ওয়েব সার্ভার) ।
ওয়েব সার্ভারে অনুমতি প্রদান করা: ব্যবহার করে chmod
এবংchown
6 chmod
666 বা 7 777 (খারাপ ডকুমেন্টেশন / টিউটোরিয়ালগুলিতে সেই ধরণের সমস্যার সমাধানের সমাধান) কাজটি যাদুতে কার্যকরভাবে তৈরি করতে পারে তবে এটি নিরাপত্তাহীন। 6 666 বা 7 777 অনুমতি দেওয়ার ফলে "অন্যদের" অ্যাক্সেস পাওয়া যাবে। সুতরাং কেবল আপাচি নয়, grandmother
এবং এটিও nsa
(আপনার মেশিনে সেই ব্যবহারকারী অ্যাকাউন্টগুলি বিদ্যমান রয়েছে - তবে সত্যিকার অর্থে নয়, দয়া করে এটি পরীক্ষা করা / সমস্যা সমাধানের জন্য ব্যতীত এটি করা এড়ান)।
আরও সুনির্দিষ্ট হওয়া এবং কেবল আপনার এবং আপাচে অনুমতি দেওয়া ভাল। ওয়েব সার্ভারে আপনার ফাইলে সম্পূর্ণ নিয়ন্ত্রণ দেওয়ার জন্য আপনার ফাইলগুলির গ্রুপ পরিবর্তন করুন। এটি করতে, মালিককে পুনরাবৃত্তভাবে পরিবর্তন করুন:
chown -R www-data:www-data your/folder/
তবে সম্ভবত, আপনি কেবল গ্রুপ পরিবর্তন করে আপনার ফাইলগুলিতে সম্পূর্ণ অ্যাক্সেস রাখতে চান:
chown -R yourusername:www-data your/folder/
তারপরে, chmod
গোষ্ঠীকে www-data
আপনার মতো একই অনুমতি দেওয়ার জন্য উপযুক্ত করুন । উদাহরণস্বরূপ, যদি বর্তমান মোডটি 640 হয় (আপনার জন্য 6, www- ডেটার জন্য 4, অন্যের জন্য 0, -rw-r ----- তে অনুবাদ করে) এটি 660 (আপনার জন্য 6, www- এর জন্য 6 ) এ সেট করুন ডেটা, 0 অন্যের জন্য, -আর-আরডব্লিউ ---- তে অনুবাদ করে । ফাইল মোড সম্পর্কে আরও জানার জন্য রাহমুর উত্তর দেখুন, এটি একটি পুরানো, তবে মার্জিত মেকানিজম।
এর সাহায্যে আরকেন সংখ্যাগুলি এড়ানোর জন্য chmod
, আপনি এই বাক্য গঠনটিও ব্যবহার করতে পারেন:
chmod -R g+rw your/folder/
এর অর্থ "গোষ্ঠীতে ( g
), ফোল্ডারে ( +
) পড়ুন এবং লিখুন ( rw
) অনুমতিগুলি your/folder/
পুনরাবৃত্তি করুন ( -R
)"।
90% ক্ষেত্রে, এটি যথেষ্ট হওয়া উচিত।
আমার পছন্দসই পদ্ধতি: এসিএল ব্যবহার করে (অ্যাক্সেস নিয়ন্ত্রণের তালিকা)
কখনও কখনও প্রথম সমাধান পর্যাপ্ত হয় না। আমি সিমফনি ফ্রেমওয়ার্কের উদাহরণ নেব যা প্রচুর ডেটা লগ করে এবং ক্যাশে করে। সুতরাং এটি উপযুক্ত ফোল্ডারে লেখার অ্যাক্সেস প্রয়োজন needs
এবং chmod
/ chown
পদ্ধতিটি পর্যাপ্ত হতে পারে না, যখন আপনি সিএলআই-তে আমার ব্যবহারকারী সমান্তরালভাবে (আমার ব্যবহারকারীর অ্যাকাউন্টের অধীনে) এবং ওয়েব (ওয়েব সার্ভার ব্যবহারকারী) ব্যবহার করেন। এটি প্রচুর সমস্যা সৃষ্টি করে কারণ সিমফনি ক্রমাগত অনুমতিগুলি পরিবর্তন করে চলেছে।
এই ক্ষেত্রে, আমরা এসিএল (অ্যাক্সেস কন্ট্রোল লিস্ট) ব্যবহার করব, যা অনেক ইউএনআইএক্স সিস্টেমে অনুমতি পরিচালনা করার জন্য আরও উন্নত উপায়।
এখানে অফিসিয়াল সিমফনি ডকুমেন্টেশন দ্বারা প্রদত্ত আদেশগুলি ( দয়া করে পরিবর্তন করুন app/cache
এবং app/logs
আপনার প্রয়োজন হিসাবে ):
এমন একটি সিস্টেমে যা সমর্থন করে chmod +a
(যেমন: দেবিয়ান / উবুন্টু নয়)
sudo chmod +a "www-data allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs
sudo chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs
এমন সিস্টেমে যা সমর্থন করে না chmod +a
(সর্বাধিক সাধারণ)
আপনি setfacl
সরঞ্জাম প্রয়োজন হবে ; এটি ডিফল্টরূপে এটি আপনার সিস্টেমে ইনস্টল করা আছে, সুতরাং setfacl -v
কমান্ডটি উপলব্ধ কিনা তা দেখার চেষ্টা করুন ।
যদি কমান্ডটি উপলভ্য না থাকে এবং আপনি উবুন্টু 14.04+ ব্যবহার করছেন তবে আপনাকে কেবলমাত্র সরঞ্জামটি ইনস্টল করতে হবে:
sudo apt install acl
অন্যথায়, আপনার ওএস ডকুমেন্টেশন অনুসরণ করুন, কারণ আপনার পার্টিশনটি কীভাবে মাউন্ট হয় তা আপনার পরিবর্তনের প্রয়োজন হতে পারে ( উবুন্টু ডকুমেন্টেশন এখানে )।
এবং আমরা এখানে রয়েছি:
sudo setfacl -R -m u:"www-data":rwX -m u:`whoami`:rwX app/cache app/logs
sudo setfacl -dR -m u:"www-data":rwX -m u:`whoami`:rwX app/cache app/logs
এই পদ্ধতি, সন্তুষ্ট বা আপনার টাকা ফেরত নিয়ে আমার কোনও সমস্যা হয়নি।