আমার কাছে অ্যাপাচি এবং পিএইচপি চালানোর জন্য একটি দুর্দান্ত স্ট্যান্ডার্ড সার্ভার রয়েছে। আমি যে অ্যাপটি চালাচ্ছি সেগুলি ফাইল তৈরি করে এবং এগুলি অ্যাপাচি ব্যবহারকারীর মালিকানাধীন www-data। এসএফটিপি-এর মাধ্যমে আমি যে ফাইলগুলি আপলোড করি সেগুলি আমার নিজস্ব ব্যবহারকারীর charlesr। সমস্ত ফাইল www-dataগ্রুপের অংশ । আমার সমস্যাটি হ'ল আমি গ্রুপের অংশ থাকা www-dataসত্ত্বেও এসএফটিপি-র মাধ্যমে মালিকানাধীন যে কোনও ফাইলের সংশোধন বা ওভাররাইট করতে পারি না । আমি কোনও এসএসএইচ সেশনের মাধ্যমে কোনও সমস্যা ফাইলগুলিকে সংশোধন করতে পারি।charlesrwww-data
তাই আমি কী করব তা নিশ্চিত নই। মালিকানাধীন ফাইলগুলি সংশোধন করার জন্য আমি কীভাবে আমার এসএফটিপি সেশনের অনুমতি দেব www-data?
কিছুটা ব্যাকগ্রাউন্ডের জন্য, সার্ভারটি সেট আপ করার সময় আমি নিজেই এই নোটগুলি লিখেছিলাম:
Now set up permissions on `/var/www` where your files are served from by
default:
$ sudo adduser $USER www-data
$ sudo chgrp -R www-data /var/www
$ sudo chmod -R g+rw /var/www
$ sudo chmod -R g+s /var/www
Now log out and log in again to make the changes take hold.
The previous set of commands does the following:
1. adds the current user ($USER) to the `www-data` group;
2. changes `/var/www` to belong to the `www-data` group;
3. adds read/write permissions to the group that `/var/www` belongs to;
4. sets the SGID bit on `/var/www`; this final point bears some explaining.
এবং তারপরে আমি নিজের কাছে এসজিআইডি বিট সেট করার অর্থ কী তা বোঝাতে চলেছি (অর্থাত্ তৈরি হওয়া সমস্ত ফাইল স্বয়ংক্রিয়ভাবে গ্রুপের /var/wwwঅংশ হয়ে যায় www-data)।
হালনাগাদ
মনে হচ্ছে যে সমস্যা অ্যাপ্লিকেশনের বা, আরো নির্দিষ্টভাবে, অ্যাপ্লিকেশন ফ্রেমওয়ার্ক (সৃষ্টি হয়েছিল Kohana ) নির্দিষ্ট ফাইল সেটিং এটা 0644 থেকে লিখেছেন (RW-R - r--); অর্থাৎ গ্রুপ লিখনযোগ্য নয়। এটির সাথে এই ফাইলটিও মালিকানাধীন www-dataছিল যে লগ ইন করার সময় আমি এসএফটিপি-র মাধ্যমে ফাইলগুলি সম্পাদনা করতে পারিনি charlesr। আমি নিশ্চিত না কেন আমি এসএসএইচের মাধ্যমে ফাইলগুলি সম্পাদনা করতে পারি। আমার অনুমান যে আমি অবশ্যই sudo ব্যবহার করা উচিত।
এখানে আমি এখন মার্টি ফ্রিডের অক্লান্ত সহায়তার জন্য ধন্যবাদ ব্যবহার করি , যিনি আমার আগের কৌশলটির ত্রুটিগুলি চিহ্নিত করেছিলেন এবং অবশেষে আমি এটি তৈরি না করা পর্যন্ত লিনাক্স অনুমতিগুলির জগতে আমাকে মেরিনেডে সহায়তা করেছিল। ধন্যবাদ মার্টি!
সংক্ষিপ্ত বিবরণ
- ফাইল এবং ডিরেক্টরিগুলির
/var/wwwমালিকানা উচিত shouldroot:webmasters - সমস্ত ডেভস
webmastersগ্রুপের সদস্য হওয়া উচিত - এর সমস্ত ডিরেক্টরি এতে
/var/wwwসেট করা উচিত:2775বাu=rwx,g=rwxs,o=rx(rwxrwx-rx) - এর সমস্ত ফাইল
/var/wwwসেট করা উচিত:0664বাug=rw,o=r(rw-rw-r--)
নিম্নলিখিতগুলির মালিকানাধীন হওয়া উচিত www-data:webmasters(অর্থাত্ এগুলি সেই ডিরেক্টরিগুলি যা অ্যাপাচি লিখতে সক্ষম হতে হবে):
- আবেদন / ক্যাশে
- আবেদন / লগ
- আপলোড
- client_helpers / আপলোড
কিভাবে
/var/wwwআপনার ফাইলগুলি যেখানে ডিফল্টরূপে দেওয়া হয় সেখানে অনুমতি সেট আপ করতে :
sudo addgroup webmasterssudo adduser $USER webmasterssudo chown -R root:webmasters /var/wwwsudo find /var/www -type f -exec chmod 664 {} \;sudo find /var/www -type d -exec chmod 775 {} \;sudo find /var/www -type d -exec chmod g+s {} \;sudo chown -R www-data:webmasters application/cache/[ইত্যাদি ...]
পরিবর্তনগুলি ধরে রাখতে লগ আউট এবং আবার লগ ইন করুন।
পূর্ববর্তী কমান্ডগুলি নিম্নলিখিতটি করে:
- নামে একটি নতুন গ্রুপ তৈরি করুন
webmasters; যে সমস্ত ব্যবহারকারীদের অ্যাপ্লিকেশন ফাইলগুলিতে রাইটিং অ্যাক্সেস দরকার তারা এই গ্রুপে যুক্ত করা হবে। - বর্তমান ব্যবহারকারী (
$USER) কেwebmastersগ্রুপে যুক্ত করুন। - মালিক পরিবর্তন
/var/wwwকরারrootএবং গ্রুপwebmastersগ্রুপ। - যোগ করা 664 অনুমতি (-rw-RW-r--) এ সমস্ত ফাইল
/var/www। - যোগ করা 775 অনুমতি সমস্ত ডিরেক্টরি করার জন্য (drwxrwxr-X)
/var/www। - এসজিআইডি বিট সেট করে
/var/wwwএবং এতে সমস্ত ডিরেক্টরি; এই চূড়ান্ত পয়েন্ট কিছু ব্যাখ্যা বহন করে। এটিও নোট করুন যে আপনি একই জিনিসটি করতে আপনার chmod অষ্টালের সামনে (যেমন 2644) একটি 2 রাখতে পারেন put - মালিককে
www-data(অ্যাপাচি এর ব্যবহারকারী) এবং সরবরাহিত ডিরেক্টরিগুলির গোষ্ঠীতে সেট করেwebmaster। এটি নিশ্চিত করে যে ডিরেক্টরিটি আপাচি এবংwebmastersগ্রুপের যে কেউ লিখেছেন able অন্যান্য সমস্ত ডিরেক্টরি যা লিখনযোগ্য হতে হবে তার জন্য একই করুন।
/var/wwwসেই গ্রুপে যুক্ত না করে কীভাবে লিখবেন ?