Www-ডেটা গ্রুপে লেখার অনুমতি প্রদান করা


27

আমি একটি ওয়েবসাইট তৈরি করছি এবং ফাংশনের অংশটি হ'ল পিএইচপি সহ ব্যবহারকারী উত্পন্ন ডেটা লিখতে হবে। আমি উবুন্টু ১৩.০৪-তে এনগিনেক্স ব্যবহার করছি। এই মুহুর্তে আমি কেবল পরীক্ষা করছি এবং লোকহোস্টে এনজিনেক্সের মাধ্যমে সমস্ত কিছু পরিবেশন করা হচ্ছে।

আমার পিএইচপি স্ক্রিপ্ট টেক্সট ফাইলটি লিখতে ব্যর্থ হয়েছে (যদিও আমি এটি ম্যানুয়ালি করতে পারি) এবং আমি মনে করি এটি আমার /var/www/example.com/public_html ডিরেক্টরিতে লেখার জন্য অনুমতি সংক্রান্ত সমস্যা।

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

useradd -G www-data iain
chown -R www-data:www-data /var/www/example.com
chmod 775 /var/www

তাহলে এর মানে কি এই যে ডাব্লু-ডেটা গ্রুপের যে কেউ এখন / var / www তে লিখতে, লিখতে এবং এক্সিকিউট করতে পারে?

উত্তর:


52

প্রথমে useraddএকটি নতুন ব্যবহারকারী তৈরি করে। আপনি (আইয়েন) ইতিমধ্যে বিদ্যমান হিসাবে, আপনি usermodপরিবর্তে কল করতে চান । সুতরাং যে হবে:

sudo usermod -aG www-data iain
addgroup www-data

( -aডেবিয়ান-ভিত্তিক সার্ভারগুলিতে নোট করুন (উবুন্টু অন্তর্ভুক্ত) যা আপনাকে সেই গোষ্ঠীতে যোগ করবে এবং আপনার সদস্যপদটি অন্য গোষ্ঠীর সাথে রাখবে it এটি ভুলে যান এবং আপনি কেবল www-ডেটা গ্রুপের অন্তর্ভুক্ত থাকবেন - যদি কোনও একটি খারাপ অভিজ্ঞতা হতে পারে তাদের চাকা ছিল। সুস-টাইপ সার্ভারগুলিতে বিকল্পটি -Aপরিবর্তে সঠিকভাবে -aGপড়ার man usermodজন্য রয়েছে read )

দ্বিতীয়ত, আপনি চান না যে অ্যাপাচে সম্পূর্ণ rw অ্যাক্সেস থাকতে পারে /var/www: এটি সম্ভবত একটি বড় সুরক্ষা লঙ্ঘন। একটি সাধারণ নিয়ম হিসাবে, কেবল আপনার যা প্রয়োজন তা মঞ্জুরি দিন এবং আরও কিছু নয় ( অন্ততপক্ষে সুযোগ সুবিধার মূলনীতি )। এই ক্ষেত্রে, আপনার অ্যাপাচি ( www-data) এবং আপনার ( www-dataগ্রুপ) লিখতে (এবং পড়তে) দরকার /var/www/example.com/public_html, তাই

sudo chown -R www-data:www-data /var/www/example.com/public_html
sudo chmod -R 770 /var/www/example.com/public_html

সম্পাদনা করুন : আপনার মূল প্রশ্নের উত্তর দিতে, হ্যাঁ, যে কোনও সদস্য www-dataএখন পড়তে এবং সম্পাদন করতে পারবেন /var/www(কারণ আপনার অনুমতিগুলির শেষ বিট 5 = পড়ুন + এক্সিকিউট )। তবে আপনি -Rস্যুইচটি ব্যবহার করেননি , এটি কেবলমাত্র /var/wwwএতে অন্তর্ভুক্ত ফাইল এবং উপ-ডিরেক্টরিতে প্রয়োগ হয় না। এখন, তারা লিখতে পারে কি না তা অন্য বিষয়, এবং /var/wwwআপনি যে গোষ্ঠীটি সেট করেন নি তার গ্রুপের উপর নির্ভর করে । আমার ধারণা এটি সাধারণত হয় root:root, তাই না, তারা (সম্ভবত) লিখতে পারে না।

2014-06-22 এ সম্পাদনা করুন : একটি নোট যুক্ত করেছেন যে -aGডবিয়ান-ভিত্তিক সার্ভারগুলিতে বিকল্পটি বৈধ। এটি স্পষ্টতই বিতরণের সাথে পরিবর্তিত হয়, তাই manকার্যকর করার আগে সাবধানে পড়ুন ।


আচ্ছা আমি দেখি. গ্রুপের / var / www প্রকৃতপক্ষে মূল: মূল। লিঙ্কের জন্য ধন্যবাদ। সুবিধার্থে যাবার পরিবর্তে যা প্রয়োজন তা দেওয়ার অভ্যাসে থাকতে আরও বুদ্ধিমান মনে হয়। নির্দেশনার জন্য ধন্যবাদ।
ডুফ

2
ঠিক আছে, তাই আমি /var/www/example.com/public_html এর সাথে কেবল লেখার চেষ্টা করেছি cp -r php /var/www/example.com/public_htmlএবং আমি অনুমতি অস্বীকার পেয়েছি। আমি www-ডেটা গ্রুপে আছি যার কাছে rwxrwx --- এই দিরের জন্য অনুমতি রয়েছে। কেন?
ডফ

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

সম্পর্কিত সমস্ত উত্তরগুলি থেকে www-data:www-data, এটি অনুপস্থিত অনুমতি নিয়ে সমস্যাটি সমাধান করেছে। ধন্যবাদ.
ইউজিন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.