"অন্যরা" কে, যদি আমরা আমাদের সার্ভারে সমস্ত পরিষেবা ব্যবহারকারীকে দিয়ে থাকি তবে "অন্যরা" ঠিকই বিদ্যমান না? উদাহরণস্বরূপ, যদি আমরা কোনও ব্যবহারকারীর কাছে অ্যাপাচি রাখি এবং আমরা /var/www
এটির উপরে চাপিয়ে দিয়েছি apache
এবং আমরা প্রবেশ chmod 700
করি তবে এটি ঠিক কাজ করা উচিত?
অনুমতিগুলি কীভাবে কাজ করে তা এখানে খুব সংক্ষিপ্তভাবে ব্যাখ্যা করা হয়েছে:
প্রথম সংখ্যা একটি ফাইল প্রকৃত মালিকের জন্য আছে (পরীক্ষা যারা সহ একটি ফাইল মালিক এর ls -l
সাথে এটি পরিবর্তন chown
)
দ্বিতীয় অঙ্ক ফাইলের দলের জন্য আছে (যদিও ফাইলের মালিক অগত্যা একই গ্রুপের যে ফাইল মালিক হতে না)
তৃতীয় অঙ্ক অন্য কেউ, যার অর্থ হল না ফাইল মালিক এবং দলের সকলেই।
সুতরাং যদি আপনি chmod
700 এ ফাইল করেন এবং এটির মালিকানা থাকে apache
, এমনকি আপনার "সাধারণ" ব্যবহারকারী এটি পড়তে, লিখতে বা চালাতে সক্ষম হবেন না। এটি অত্যন্ত সীমাবদ্ধ এবং কেবল বিরল অনুষ্ঠানে প্রয়োজন - উদাহরণস্বরূপ, আপনি যখন নিজের এসএসএইচ প্রাইভেট কীটি সুরক্ষিত করতে চান, তখন এটির 600
অনুমতি পাওয়া যায়। অ্যাপাচি-র ক্ষেত্রে এটির ফলে অন্যান্য সমস্যাও হতে পারে, আপনার সাধারণ ব্যবহারকারীর অ্যাকাউন্ট ছাড়াও আপনি /var/www
আর কোনও ফাইল সম্পাদনা করতে পারবেন না।
সুতরাং, সাধারণভাবে বলতে গেলে, আপনার x00
অন্যের জন্য পড়ার অনুমতিগুলি ( ) সরাতে হবে না ।
আপনি ডিরেক্টরিটির apache
মালিকানা পেতে পারেন /var/www
, তবে 644
(অন্যদের জন্য কেবল পঠনযোগ্য) দিয়ে with আরেকটি পন্থা আমি প্রায়ই ব্যবহার আপনার নিজের ব্যবহারকারী যোগ করা হয় এবং একটি নতুন এ্যাপাচি ব্যবহারকারী www-users
গ্রুপ, এবং তারপর ফাইল chmodding /var/www
করতে 775
। এইভাবে, আপনি এবং আপাচে উভয়ই ফাইলগুলিতে লিখতে পারেন। আরও তথ্যের জন্য এখানে দেখুন: অ্যাপাচি জন্য গ্রুপ অনুমতি
"এক্সিকিউট" এবং "রিড" এর মধ্যে পার্থক্য কী?
এক্সিকিউটেবল ফাইলগুলি সরাসরি কোনও ব্যবহারকারী দ্বারা চালানো যায় - শেল থেকে সরাসরি। এটি প্রদর্শনের জন্য, আসুন একটি ছোট ফাইল লিখি এবং এটিকে "পরীক্ষা" বলি। নিম্নলিখিত সামগ্রী যুক্ত করুন:
echo "I am executable"
ফাইলটি সংরক্ষণ করুন। এখন, আপনার শেলটিতে, প্রবেশ করার চেষ্টা করুন ./test
। আপনি একটি " -বাশ:। / টেস্ট: অনুমতি অস্বীকার " ত্রুটি পাবেন। এটি কারণ ডিফল্টরূপে, নতুন তৈরি করা ফাইলগুলি কার্যকর করার অনুমতি বহন করে না। আপনি যদি নির্বাহের অনুমতি যুক্ত করেন তবে এটি কার্যকর হবে।
$ chmod +x test
$ ./test
I am executable
এখন, এটি কেবল একটি পরীক্ষা স্ক্রিপ্ট ছিল, তবে সাধারণত, সমস্ত বাইনারি ফাইলগুলির (যেমন সংকলিত প্রোগ্রামগুলির মতো) এক্সিকিউট করার অনুমতি সেটও প্রয়োজন, যাতে আপনি আসলে চালাতে পারেন এবং তাদের সাথে কিছু করতে পারেন , এবং কেবল পড়েন না ।
এগুলি উদাহরণস্বরূপ সিস্টেম প্রোগ্রামগুলি বেশিরভাগ ক্ষেত্রে পাওয়া যায় /bin
। ls -l /bin
তাদের অনুমতিগুলি পরিদর্শন করতে চালান । আপনি দেখতে পাচ্ছেন যে এগুলির মালিকানা রয়েছে root
এবং আপনি এগুলি পরিবর্তন করতে পারবেন না তবে আপনি সর্বদা তাদের সম্পাদন করতে পারেন।
সুতরাং, এটি কিছুটা সুরক্ষা বৈশিষ্ট্যও যেহেতু আপনি কিছু ব্যবহারকারীর জন্য নির্দিষ্ট স্ক্রিপ্ট এবং বাইনারিগুলি নিষিদ্ধ করতে পারেন।
ইউনিক্স অনুমতি সম্পর্কে আরও জানতে, উইকিপিডিয়া নিবন্ধটি পড়ুন । "রিড-রাইটিং-এক্সিকিউট" হিসাবে আপনি যে প্রাথমিক অনুমতিগুলি জানেন তা প্রায় দীর্ঘকাল ধরে চলেছিল তবে আপনি অ্যাক্সেস কন্ট্রোল তালিকাগুলির কলহের অংশ মাত্র which যা এর চেয়ে আরও বেশি কার্যকারিতা সরবরাহ করে।
ক্লিন ইনস্টল করার পরে পুরো সিস্টেমের জন্য ডিফল্ট ফাইল অনুমতিগুলি কী (উদাহরণস্বরূপ উবুন্টুতে)?
ডিরেক্টরি এবং মালিক অনুসারে এগুলি পরিবর্তিত হয়। কিছু ফাইল এবং ডিরেক্টরিগুলি সিস্টেম-সংরক্ষিত এবং এর মালিকানাধীন root
। বেশিরভাগ ক্ষেত্রে, আপনি তবে এগুলি আপনার সাধারণ ব্যবহারকারী অ্যাকাউন্টের সাথে পড়তে সক্ষম হবেন।
আপনার হোম ফোল্ডারের মতো অন্যান্য ডিরেক্টরি অবশ্যই আপনার ব্যবহারকারীর অন্তর্ভুক্ত। কোনও মেশিনে অন্য ব্যবহারকারীর কাছে এটি যদি একাধিক ব্যক্তির মধ্যে ভাগ করা হয় তবে সেগুলি পড়ার অনুমতিগুলি অস্বীকার করা বুদ্ধিমান হতে পারে - সর্বোপরি, আপনি চান না যে আপনার ব্যক্তিগত জিনিসগুলি উন্মুক্ত হোক।
শেষ অবধি, কিছু ফাইল ডিফল্টরূপে নির্বাহযোগ্য (যেমন /bin
:), তবে অন্যগুলি হয় না (যেমন কনফিগারেশন ফাইলগুলি /etc
)।
ফাইলসিস্টেম শ্রেণীক্রম স্ট্যান্ডার্ড লিনাক্স অপারেটিং সিস্টেমে পাওয়া ডিরেক্টরি জন্য দেয়ার উদ্দেশ্যে করা ব্যবহার নির্দিষ্ট করে। আপনি ডিরেক্টরিটির সাথে কী করতে চান তার ভিত্তিতে অনুমতিগুলি কী হওয়া উচিত তা আপনি প্রায় "অনুমান" করতে পারেন।