www- ডেটা অনুমতি?


108

সুতরাং আমার কাছে / var / www তে ডিরেক্টরি রয়েছে (কেক নামে পরিচিত) এবং আমার এটিতে www-ডেটা লেখার অনুমতি দেওয়া দরকার, তবে আমি এটিতেও লিখতে চাই (sudo ব্যবহার না করে)। আমার মেশিনের অন্য কোনও ব্যবহারকারীর (বা হ্যাকার) সেই ডিরেক্টরিতে ফাইল সংশোধন করার চেষ্টা করার ক্ষেত্রে আমি অনুমতিগুলি 777 এ পরিবর্তন করতে ভয় পাই। আমি কীভাবে কেবল নিজের এবং অ্যাপাচের www-ডেটা ব্যবহারের অনুমতি দেব?

উত্তর:


168
sudo chown -R yourname:www-data cake

তারপর

sudo chmod -R g+s cake

প্রথম কমান্ড মালিক এবং গোষ্ঠী পরিবর্তন করে।

দ্বিতীয় কমান্ড s বৈশিষ্ট্য যুক্ত করে যা নতুন ফাইল এবং ডিরেক্টরিগুলিকে একই গ্রুপের অনুমতিযুক্ত কেকের মধ্যে রাখবে।


3
Chmod g + s পুনরুক্তি কেন?
বেন রোগম্যানস

জি + এস সম্পর্কে জানতেন না। খুব খুব সহজ!
FRAGA

1
ব্যবহারকারী নিজেই পিঠে ডাব্লু-ডেটা দ্বারা তৈরি করা ফাইল এবং www-ডেটা দ্বারা নির্মিত ডিরেক্টরিতে www-ডেটা দ্বারা তৈরি করা ফাইলগুলি কী করতে পারে? উদাহরণস্বরূপ, সম্পাদনা, নাম পরিবর্তন, অপারেশন মুছতে? যেমন আমি বুঝতে পেরেছি, ডাব্লু-ডেটা দ্বারা নির্মিত ডিরেক্টরিতে নতুন নামকরণ এবং মুছে ফেলা সম্ভব নয় এবং www-ডেটা দ্বারা তৈরি ফাইলগুলির সম্পাদনা ব্যবহারকারীর পক্ষে মোটেই সম্ভব নয়।
কিদিনার

49

স্লাইসহোস্টের একটি নিবন্ধে যেমন বলা হয়েছে :

ব্যবহারকারী সেটআপ

সুতরাং আসুন প্রধান ব্যবহারকারী অ্যাপাচি ব্যবহারকারী গ্রুপে যুক্ত করে শুরু করুন:

sudo usermod -a -G www-data demo

এটি ব্যবহারকারীর 'ডেমো'টিকে' www-ডেটা 'গ্রুপে যুক্ত করে। উপরের দেখানো ব্যবহারকারীর কমান্ডের সাহায্যে আপনি -a এবং -G বিকল্প দুটি ব্যবহার করেছেন তা নিশ্চিত করুন।

গোষ্ঠী পরিবর্তন সক্ষম করতে আপনাকে লগ আউট এবং আবার লগ ইন করতে হবে।

এখনই গ্রুপগুলি পরীক্ষা করুন:

groups
...
# demo www-data

সুতরাং এখন আমি দুটি গ্রুপের সদস্য: আমার নিজস্ব (ডেমো) এবং অ্যাপাচি গ্রুপ (www-ডেটা)।

ফোল্ডার সেটআপ

এখন আমাদের নিশ্চিত করতে হবে যে সর্বজনীন_এইচটিএমএল ফোল্ডারটি মূল ব্যবহারকারীর (ডেমো) মালিকানাধীন এবং অ্যাপাচি গ্রুপের (www-ডেটা) অংশ।

এটি সেট আপ করা যাক:

sudo chgrp -R www-data /home/demo/public_html

যেহেতু আমরা অনুমতি সম্পর্কে কথা বলছি আমি sudo কমান্ড সংক্রান্ত একটি দ্রুত নোট যুক্ত করব: আপেক্ষিক পাথ (home / সার্বজনীন_ html) এর চেয়ে উপরে উল্লিখিত মতো পরম পাথ (/ home / ডেমো / পাবলিক_এইচটিএমএল) ব্যবহার করা ভাল অভ্যাস। এটি সুডো সঠিক স্থানে ব্যবহৃত হচ্ছে তা নিশ্চিত করে।

যদি আপনার জায়গায় সিমলিংকগুলির সাথে একটি সর্বজনীন_ এইচটিএমএল ফোল্ডার থাকে তবে সেই কমান্ডটি সম্পর্কে সতর্কতা অবলম্বন করুন কারণ এটি প্রতিলিঙ্কগুলি অনুসরণ করবে। কোনও কাজের পাবলিক_এইচটিএমএল ফোল্ডারের ক্ষেত্রে, প্রতিটি ফোল্ডারটি হাতে হাতে পরিবর্তন করুন।

Setgid

এতক্ষণ ভাল, তবে আমরা যে আদেশটি দিয়েছি তা কেবল বিদ্যমান ফোল্ডারগুলিকেই প্রভাবিত করে। নতুন কি কি?

আমরা মালিকানা সেট করতে পারি তাই নতুন কিছুও 'www-ডেটা' গ্রুপে রয়েছে।

প্রথম কমান্ড পাবলিক_এইচটিএমএল ডিরেক্টরিতে "সেটগিড" বিট অন্তর্ভুক্ত করার জন্য অনুমতিগুলি পরিবর্তন করবে:

sudo chmod 2750 /home/demo/public_html

এটি নিশ্চিত করবে যে কোনও নতুন ফাইলকে গ্রুপ 'www-ডেটা' দেওয়া হয়েছে। আপনার যদি উপ-ডিরেক্টরি থাকে তবে আপনি প্রতিটি উপ-ডিরেক্টরিতে এই আদেশটি চালাতে চান (এই ধরণের অনুমতি '-আর' দিয়ে কাজ করে না)। ভাগ্যক্রমে স্বয়ংক্রিয়ভাবে 'সেটগিড' বিট সেট দিয়ে নতুন উপ-ডিরেক্টরিগুলি তৈরি করা হবে।

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

sudo chmod 2770 /home/demo/public_html/domain1.com/public/uploads

নতুন ফাইলগুলি স্বয়ংক্রিয়ভাবে সঠিক মালিকানা অর্পণ করা হওয়ায় অনুমতিগুলি কেবল একবার সেট করা দরকার।


এই সমাধানটি আমার পক্ষে কাজ করে। তার আগে, আমি সর্বদা রুট ব্যবহারকারী ব্যবহার করে টার্মিনাল থেকে সার্ভারটি চালিত করি। এই সমাধানের সাহায্যে আমি ডিরেক্টরিটিতে ফাইলটি আপলোড করতে পারি যার অনুমতি 770 রয়েছে This এটি দুর্দান্ত, কারণ এর আগে আমি কেবল 777 অনুমতি ব্যবহার করে ফাইল আপলোড করতে পারি।
ইফান ইকবাল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.