কোন অনুমতিগুলি ব্যবহার করবেন তা সিদ্ধান্ত নেওয়ার সময় আপনার ব্যবহারকারীরা কারা এবং তাদের কী প্রয়োজন তা ঠিক আপনার জানা দরকার। একজন ওয়েবসার্ভার দুই ধরণের ব্যবহারকারীর সাথে যোগাযোগ করে।
প্রমাণীকৃত ব্যবহারকারীদের সার্ভারে একটি ব্যবহারকারীর অ্যাকাউন্ট রয়েছে এবং নির্দিষ্ট সুযোগ-সুবিধা দেওয়া যেতে পারে। এটিতে সাধারণত সিস্টেম প্রশাসক, বিকাশকারী এবং পরিষেবা অ্যাকাউন্ট অন্তর্ভুক্ত থাকে। তারা সাধারণত এসএসএইচ বা এসএফটিপি ব্যবহার করে সিস্টেমে পরিবর্তন করে।
বেনামে ব্যবহারকারীরা আপনার ওয়েবসাইটে দর্শক হয়। যদিও তাদের কাছে সরাসরি ফাইল অ্যাক্সেসের অনুমতি নেই, তারা ওয়েব পৃষ্ঠার জন্য অনুরোধ করতে পারেন এবং ওয়েব সার্ভার তাদের পক্ষে কাজ করে। ওয়েব সার্ভার প্রক্রিয়াতে কী অনুমতি রয়েছে সে সম্পর্কে যত্নবান হয়ে আপনি বেনাম ব্যবহারকারীদের অ্যাক্সেসকে সীমাবদ্ধ করতে পারেন। অনেকগুলি লিনাক্স বিতরণে, অ্যাপাচি www-data
ব্যবহারকারী হিসাবে চালিত হয় তবে এটি আলাদা হতে পারে different আপনার সিস্টেমে অ্যাপাচি ব্যবহারকারী কী ব্যবহার করছে তা ব্যবহার ps aux | grep httpd
বা ps aux | grep apache
দেখুন।
লিনাক্স অনুমতি সংক্রান্ত নোট
লিনাক্স এবং অন্যান্য POSIX- অনুবর্তী সিস্টেমগুলি traditionalতিহ্যগত ইউনিক্স অনুমতি ব্যবহার করে। ফাইল সিস্টেমে অনুমতি সম্পর্কে উইকিপিডিয়ায় একটি দুর্দান্ত নিবন্ধ রয়েছে তাই আমি এখানে সমস্ত কিছু পুনরাবৃত্তি করব না। তবে কয়েকটি বিষয় সম্পর্কে আপনার সচেতন হওয়া উচিত।
এক্সিকিউট বিট
ইন্টারপ্রিটেড স্ক্রিপ্টগুলি (যেমন। রুবি, পিএইচপি) এক্সিকিউট করার অনুমতি ব্যতীত ঠিক কাজ করে। শুধুমাত্র বাইনারি এবং শেল স্ক্রিপ্টগুলির এক্সিকিউট বিট প্রয়োজন। কোনও ডিরেক্টরিকে অতিক্রম করতে (প্রবেশ করতে) আপনাকে সেই ডিরেক্টরিতে অনুমতি কার্যকর করতে হবে। ডিরেক্টরিটি তালিকাভুক্ত করতে বা এর মধ্যে কোনও ফাইল পরিবেশন করার জন্য ওয়েবসভারটির এই অনুমতি প্রয়োজন।
ডিফল্ট নতুন ফাইল অনুমতিগুলি
যখন কোনও ফাইল তৈরি করা হয়, তখন সাধারণত এটি যিনি তৈরি করেছেন তার গ্রুপ আইডি উত্তরাধিকার সূত্রে প্রাপ্ত হয়। তবে কখনও কখনও আপনি নতুন ফাইলগুলি যে ফোল্ডারটি তৈরি করা হয়েছে তার গ্রুপ আইডি উত্তরাধিকারী করতে চান, যাতে আপনি প্যারেন্ট ফোল্ডারে এসজিআইডি বিট সক্ষম করতে পারেন।
ডিফল্ট অনুমতি মানগুলি আপনার উমাস্কের উপর নির্ভর করে। উমাস্ক সদ্য নির্মিত ফাইলগুলি থেকে অনুমতিগুলি বিয়োগ করে, সুতরাং 022 এর সাধারণ মান 755 দিয়ে ফাইল তৈরি হওয়ার ফলাফল দেয় a কোন গোষ্ঠীর সাথে সহযোগিতা করার সময়, আপনার উমাস্কটি 002 এ পরিবর্তন করা কার্যকর হবে যাতে আপনার তৈরি করা ফাইলগুলি গ্রুপের সদস্যদের দ্বারা পরিবর্তন করা যায়। এবং যদি আপনি আপলোড করা ফাইলগুলির অনুমতিগুলি কাস্টমাইজ করতে চান তবে আপনার আপায়কের জন্য উমাস্কটি পরিবর্তন করতে হবে বা ফাইল আপলোড হওয়ার পরে chmod চালাতে হবে।
777 নিয়ে সমস্যা
আপনি যখন chmod 777
আপনার ওয়েবসাইট, আপনার কোনও সুরক্ষা নেই। সিস্টেমের যে কোনও ব্যবহারকারী আপনার ওয়েবসাইটের কোনও ফাইল পরিবর্তন বা মুছতে পারবেন। তবে আরও গুরুতরভাবে মনে রাখবেন যে ওয়েব সার্ভারটি আপনার ওয়েবসাইটের দর্শকদের পক্ষে কাজ করে এবং এখন ওয়েব সার্ভার যে ফাইলগুলি চালাচ্ছে একই ফাইলগুলি পরিবর্তন করতে সক্ষম। আপনার ওয়েবসাইটে যদি কোনও প্রোগ্রামিং দুর্বলতা থাকে তবে সেগুলি আপনার ওয়েবসাইটকে অজ্ঞান করতে, ফিশিং আক্রমণ sertোকাতে বা আপনার সার্ভার থেকে আপনাকে কখনও না জেনে তথ্য চুরি করতে কাজে লাগানো যেতে পারে।
তদ্ব্যতীত, যদি আপনার সার্ভারটি একটি সুপরিচিত বন্দরে চালিত হয় (যা অ-রুট ব্যবহারকারীদের শোনার পরিষেবাগুলি বিশ্ব-অ্যাক্সেসযোগ্য স্পাউং করা থেকে বিরত করা উচিত), এর অর্থ আপনার সার্ভারটি অবশ্যই রুট দিয়ে শুরু করা উচিত (যদিও কোনও বুদ্ধিমান সার্ভার তত্ক্ষণাত ড্রপ হবে) একবার বন্দর সীমাবদ্ধ হলে একটি স্বল্প-সুবিধাপূর্ণ অ্যাকাউন্টে)। অন্য কথায়, আপনি যদি এমন কোনও ওয়েবসার্ভার চালিয়ে যাচ্ছেন যেখানে মূল নির্বাহযোগ্য সংস্করণ নিয়ন্ত্রণের অংশ (যেমন একটি সিজিআই অ্যাপ্লিকেশন) থাকে তবে তার অনুমতিগুলি (বা, এই বিষয়টির জন্য, অন্তর্ভুক্ত ডিরেক্টরিটির অনুমতিগুলির অনুমতিগুলি রেখে) যেহেতু ব্যবহারকারী নাম পরিবর্তন করতে পারে এক্সিকিউটেবল) 7 777 এ যে কোনও ব্যবহারকারীকে যে কোনও নির্বাহযোগ্যকে রুট হিসাবে চালানোর অনুমতি দেয় ।
প্রয়োজনীয়তা সংজ্ঞায়িত করুন
- বিকাশকারীদের ফাইলগুলি পড়ার / লেখার অ্যাক্সেসের প্রয়োজন হয় যাতে তারা ওয়েবসাইট আপডেট করতে পারে
- বিকাশকারীদের ডিরেক্টরি পড়তে / লিখতে / চালানো দরকার যাতে তারা চারপাশে ব্রাউজ করতে পারে
- অ্যাপাচি ফাইল এবং ব্যাখ্যা স্ক্রিপ্ট অ্যাক্সেস প্রয়োজন
- পরিবেশনযোগ্য ডিরেক্টরিতে অ্যাপাচি পড়া / চালিত অ্যাক্সেস প্রয়োজন
- অ্যাপাচি আপলোড করা সামগ্রীর জন্য ডিরেক্টরি পড়তে / লিখতে / এক্সিকিউট করতে হবে needs
একক ব্যবহারকারীর দ্বারা রক্ষণাবেক্ষণ করা
কেবলমাত্র একজন ব্যবহারকারী যদি সাইটটি রক্ষণাবেক্ষণের জন্য দায়বদ্ধ হন তবে তাদের ওয়েবসাইট ডিরেক্টরিতে ব্যবহারকারীর মালিক হিসাবে সেট করুন এবং ব্যবহারকারীকে সম্পূর্ণ rwx অনুমতি দিন। অ্যাপাচি এখনও অ্যাক্সেস প্রয়োজন যাতে এটি ফাইলগুলি পরিবেশন করতে পারে, তাই www-ডেটাটিকে গ্রুপের মালিক হিসাবে সেট করুন এবং গোষ্ঠীটিকে rx অনুমতি দিন।
আপনার ক্ষেত্রে, ইভ, যার ব্যবহারকারীর নাম হতে পারে eve
, একমাত্র ব্যবহারকারী যা বজায় রাখে contoso.com
:
chown -R eve contoso.com/
chgrp -R www-data contoso.com/
chmod -R 750 contoso.com/
chmod g+s contoso.com/
ls -l
drwxr-s--- 2 eve www-data 4096 Feb 5 22:52 contoso.com
যদি আপনার কাছে ফোল্ডারগুলি থাকে যা অ্যাপাচি দ্বারা লিখনযোগ্য হতে হয়, আপনি কেবলমাত্র গ্রুপের মালিকের জন্য অনুমতি মানগুলি সংশোধন করতে পারেন যাতে www-ডেটা লেখার অ্যাক্সেস থাকে।
chmod g+w uploads
ls -l
drwxrws--- 2 eve www-data 4096 Feb 5 22:52 uploads
এই কনফিগারেশনের সুবিধাটি হ'ল এটি সিস্টেমের অন্যান্য ব্যবহারকারীর পক্ষে চলাফেরা করা আরও শক্ত (তবে অসম্ভব নয় *), যেহেতু কেবলমাত্র ব্যবহারকারী এবং গ্রুপের মালিকরা আপনার ওয়েবসাইট ডিরেক্টরি ব্রাউজ করতে পারবেন। আপনার কনফিগারেশন ফাইলগুলিতে গোপন তথ্য থাকলে এটি কার্যকর। আপনার উমাস্ক সম্পর্কে সাবধান! আপনি যদি এখানে একটি নতুন ফাইল তৈরি করেন তবে অনুমতি মানগুলি সম্ভবত 755 এ ডিফল্ট হয়ে যাবে You আপনি চালাতে umask 027
পারেন যাতে নতুন ফাইলগুলি 640 ( rw- r-- ---
) এ ডিফল্ট হয় ।
একদল ব্যবহারকারীর দ্বারা পরিচালিত
যদি একাধিক ব্যবহারকারীর সাইটটি রক্ষণাবেক্ষণের জন্য দায়বদ্ধ থাকে তবে আপনাকে অনুমতি বরাদ্দের জন্য একটি গোষ্ঠী তৈরি করতে হবে। প্রতিটি ওয়েবসাইটের জন্য পৃথক গোষ্ঠী তৈরি করা এবং সেই ওয়েবসাইটটির পরে গোষ্ঠীর নামকরণ করা ভাল অনুশীলন।
groupadd dev-fabrikam
usermod -a -G dev-fabrikam alice
usermod -a -G dev-fabrikam bob
পূর্ববর্তী উদাহরণে, আমরা গ্রুপের মালিককে অ্যাপাচি-তে সুবিধা দেওয়ার জন্য ব্যবহার করেছিলাম, কিন্তু এখন এটি বিকাশকারীদের গোষ্ঠীর জন্য ব্যবহৃত হয়। যেহেতু ব্যবহারকারীর মালিক আমাদের পক্ষে আর কার্যকর নয়, তাই কোনও সুযোগ ফাঁস না হওয়ার বিষয়টি নিশ্চিত করার একটি সহজ উপায় এটির মূলতে সেট করা। অ্যাপাচি এখনও অ্যাক্সেস প্রয়োজন, তাই আমরা বিশ্বের অন্যান্য অংশে পড়ার অ্যাক্সেস দেই।
chown -R root fabrikam.com
chgrp -R dev-fabrikam fabrikam.com
chmod -R 775 fabrikam.com
chmod g+s fabrikam.com
ls -l
drwxrwxr-x 2 root dev-fabrikam 4096 Feb 5 22:52 fabrikam.com
আপনার যদি ফোল্ডারগুলি থাকে যা অ্যাপাচি দ্বারা লিখনযোগ্য হওয়া দরকার, আপনি অ্যাপাচি ব্যবহারকারী ব্যবহারকারী বা গোষ্ঠীর মালিককে তৈরি করতে পারেন। যে কোনও উপায়ে এটির প্রয়োজনীয় সমস্ত অ্যাক্সেস থাকবে। ব্যক্তিগতভাবে, আমি এটিকে ব্যবহারকারীর মালিক বানাতে পছন্দ করি যাতে বিকাশকারীরা এখনও আপলোড ফোল্ডারের সামগ্রীগুলি ব্রাউজ করতে এবং সংশোধন করতে পারে।
chown -R www-data uploads
ls -l
drwxrwxr-x 2 www-data dev-fabrikam 4096 Feb 5 22:52 uploads
যদিও এটি একটি সাধারণ পন্থা, তবে একটি খারাপ দিক রয়েছে। যেহেতু সিস্টেমের প্রত্যেকটি ব্যবহারকারীর আপনার ওয়েবসাইটটিতে অ্যাপাচি-র মতো একই সুবিধা রয়েছে, তাই অন্য ব্যবহারকারীদের পক্ষে আপনার সাইটটি ব্রাউজ করা এবং এমন গোপনীয় ডেটা থাকতে পারে এমন ফাইলগুলি পড়া যেমন আপনার কনফিগারেশন ফাইলগুলি সহজেই সহজ।
আপনি আপনার কেক রাখতে পারেন এবং এটিও খেতে পারেন
এটি আরও উন্নত করা যেতে পারে। গোষ্ঠীর তুলনায় মালিকের পক্ষে কম সুযোগ-সুবিধা থাকা একেবারে আইনী, সুতরাং ব্যবহারকারীর মালিককে এটি রুটে অর্পণ করে নষ্ট করার পরিবর্তে, আমরা আপনার ওয়েবসাইটের ডিরেক্টরি এবং ফাইলগুলিতে অ্যাপাচি-র ব্যবহারকারীর মালিককে তৈরি করতে পারি। এটি একক রক্ষণাবেক্ষণকারী দৃশ্যের বিপরীত, তবে এটি সমানভাবে ভাল কাজ করে।
chown -R www-data fabrikam.com
chgrp -R dev-fabrikam fabrikam.com
chmod -R 570 fabrikam.com
chmod g+s fabrikam.com
ls -l
dr-xrwx--- 2 www-data dev-fabrikam 4096 Feb 5 22:52 fabrikam.com
যদি আপনার কাছে ফোল্ডারগুলি থাকে যা অ্যাপাচি দ্বারা লিখনযোগ্য হতে হয় তবে আপনি কেবলমাত্র ব্যবহারকারীর মালিকের জন্য অনুমতি মানগুলি সংশোধন করতে পারেন যাতে www-ডেটা লেখার অ্যাক্সেস থাকে।
chmod u+w uploads
ls -l
drwxrwx--- 2 www-data dev-fabrikam 4096 Feb 5 22:52 fabrikam.com
এই সমাধানটি সম্পর্কে আমাদের সাবধানতা অবলম্বন করার একটি বিষয় হল যে নতুন ফাইলগুলির ব্যবহারকারী মালিক www-ডেটাতে সেট না হয়ে স্রষ্টার সাথে মিলবে। সুতরাং আপনার তৈরি করা কোনও নতুন ফাইল আপনি এগুলি না ছাপিয়ে অ্যাপাচি দ্বারা পঠনযোগ্য হবে না।
* অ্যাপাচি সুবিধাদির বিচ্ছেদ
আমি আগে উল্লেখ করেছি যে অন্যান্য ব্যবহারকারীর পক্ষে আপনার ওয়েবসাইটের আশেপাশে ঝাঁপিয়ে পড়ার পক্ষে সম্ভব হয় আপনি যে ধরণের সুযোগ-সুবিধা ব্যবহার করছেন তা বিবেচনা করে না। ডিফল্টরূপে, সমস্ত অ্যাপাচি প্রক্রিয়া একই www-ডেটা ব্যবহারকারী হিসাবে চালিত হয়, সুতরাং কোনও অ্যাপাচি প্রক্রিয়া একই সার্ভারে কনফিগার করা অন্য সমস্ত ওয়েবসাইটের ফাইলগুলি পড়তে পারে এবং কখনও কখনও পরিবর্তনও করতে পারে। স্ক্রিপ্ট চালানোর জন্য অ্যাপাচি পেতে পারে এমন যে কোনও ব্যবহারকারী নিজেই অ্যাপাচে যেভাবে অ্যাক্সেস পেতে পারেন।
এই সমস্যাটি মোকাবেলায় অ্যাপাচে বিশেষাধিকার পৃথকীকরণের বিভিন্ন পদ্ধতি রয়েছে । যাইহোক, প্রতিটি পদ্ধতির সাথে বিভিন্ন কার্যকারিতা এবং সুরক্ষার ঘাটতি রয়েছে। আমার মতে, উচ্চতর সুরক্ষা প্রয়োজনীয়তা সহ যে কোনও সাইট একটি ভাগ করা সার্ভারে ভার্চুয়ালহোস্টগুলি ব্যবহার না করে একটি ডেডিকেটেড সার্ভারে চালানো উচিত।
অতিরিক্ত বিবেচনা
আমি এর আগে এটি উল্লেখ করিনি, তবে বিকাশকারীরা সরাসরি ওয়েবসাইট সম্পাদনা করানো খুব খারাপ অভ্যাস। বৃহত্তর সাইটগুলির জন্য, আপনি কোনও সংস্করণ নিয়ন্ত্রণ সিস্টেমের বিষয়বস্তু থেকে ওয়েবসারভার আপডেট করে এমন এক ধরণের রিলিজ সিস্টেম রাখাই অনেক ভাল। একক রক্ষণাবেক্ষণকারী পদ্ধতি সম্ভবত আদর্শ, তবে কোনও ব্যক্তির পরিবর্তে আপনার স্বয়ংক্রিয় সফ্টওয়্যার রয়েছে।
যদি আপনার ওয়েবসাইটগুলি এমন আপলোডগুলি মঞ্জুরি দেয় যেগুলি পরিবেশন করার প্রয়োজন হয় না, সেই আপলোডগুলি ওয়েবের মূলের বাইরে কোথাও সংরক্ষণ করা উচিত। অন্যথায়, আপনি খুঁজে পেতে পারেন যে লোকেরা এমন ফাইল ডাউনলোড করছে যা গোপনীয়তার উদ্দেশ্যে করা হয়েছিল। উদাহরণস্বরূপ, আপনি যদি শিক্ষার্থীদের অ্যাসাইনমেন্ট জমা দেওয়ার মঞ্জুরি দেন তবে তাদের একটি ডিরেক্টরিতে সংরক্ষণ করা উচিত যা অ্যাপাচি দ্বারা পরিবেশন করা হয়নি। এটি কনফিগারেশন ফাইলগুলির জন্য একটি ভাল পদ্ধতির যা গোপনীয়তা রয়েছে।
আরও জটিল প্রয়োজনীয়তা সহ একটি ওয়েবসাইটের জন্য আপনি অ্যাক্সেস কন্ট্রোল তালিকাগুলির ব্যবহার সন্ধান করতে পারেন । এগুলি সুবিধাগুলির উপর আরও পরিশীলিত নিয়ন্ত্রণকে সক্ষম করে।
যদি আপনার ওয়েবসাইটটির জটিল প্রয়োজনীয়তা থাকে তবে আপনি এমন স্ক্রিপ্ট লিখতে চাইতে পারেন যা সমস্ত অনুমতিগুলি সেট আপ করে। এটি পুরোপুরি পরীক্ষা করুন, তারপরে এটি নিরাপদ রাখুন। আপনি যদি কোনও কারণে নিজেকে নিজের ওয়েবসাইটটি পুনর্নির্মাণের প্রয়োজন মনে করেন তবে সোনার পক্ষে এটির ওজনের মূল্য হতে পারে।