উপ-ডিরেক্টরিতে অ্যাক্সেস করার সময় পিতামাতার ডিরেক্টরিগুলির অনুমতিগুলি কী বিবেচনা করে?


159

যদি আমার কাছে কিছু সীমাবদ্ধ অনুমতি সহ একটি রুট ফোল্ডার থাকে তবে আসুন 600 বলুন এবং চাইল্ড ফোল্ডার / ফাইলগুলির 777 এর অনুমতি থাকলে প্রত্যেকেরই কি চাইল্ড ফাইলটি পড়তে / লিখতে / চালাতে সক্ষম হবে যদিও মূল ফোল্ডারে 600 আছে?


12
নোট করুন যে কোনও ডিরেক্টরিকে 600 এ ছোড করা এটি এমনকি মালিকের কাছে অ্যাক্সেসযোগ্য করে তোলে, কারণ এতে আপনাকে চিডির অনুমতি কার্যকর করার দরকার হয় ...
শাদুর

উত্তর:


183

সুনির্দিষ্ট নিয়মটি হ'ল: আপনি যদি কোনও ডিরেক্টরিতে এর অনুমতি কার্যকর করেন তবেই আপনি কোনও ডিরেক্টরি ট্র্যাভার করতে পারেন।

সুতরাং অ্যাক্সেস করতে উদাহরণস্বরূপ dir/subdir/file, আপনি অনুমতি চালানো প্রয়োজন dirএবং dir/subdir, প্লাস অনুমতি fileঅ্যাক্সেসের প্রকার যদি আপনি চান জন্য। কোণার কেসগুলিতে প্রবেশ করা, আমি নিশ্চিত নই যে এটি সর্বজনীন যে কোনও আপেক্ষিক পথের মাধ্যমে কোনও ফাইল অ্যাক্সেস করার জন্য আপনার বর্তমান ডিরেক্টরিতে অনুমতি নির্ধারণের প্রয়োজন (আপনি লিনাক্সে যা করেন) whether

আপনি যেভাবে কোনও ফাইল অ্যাক্সেস করেন তা গুরুত্বপূর্ণ। উদাহরণস্বরূপ, আপনার যদি অনুমতিগুলি চালু থাকলেও /foo/barচালু থাকে /fooতবে আপনার বর্তমান ডিরেক্টরিটি হল /foo/bar, আপনি /foo/barকোনও আপেক্ষিক পথ দিয়ে ফাইলগুলি অ্যাক্সেস করতে পারবেন তবে কোনও পরম পথ দিয়ে নয়। আপনি /foo/barএই পরিস্থিতিতে পরিবর্তন করতে পারবেন না ; সুবিধাবঞ্চিত প্রক্রিয়াটি cd /foo/barঅনিরাপদ হওয়ার আগেই সম্ভবত সম্পন্ন হয়েছে । যদি কোনও ফাইলে একাধিক হার্ড লিঙ্ক থাকে, আপনি এটি অ্যাক্সেস করতে যে পথটি ব্যবহার করেন তা আপনার অ্যাক্সেসের সীমাবদ্ধতাগুলি নির্ধারণ করে।

প্রতীকী লিঙ্কগুলি কিছুই পরিবর্তন করে না। কার্নেল কলিং প্রসেসের অ্যাক্সেস রাইটগুলি তাদের অতিক্রম করতে ব্যবহার করে। উদাহরণস্বরূপ, যদি symডিরেক্টরিটিতে একটি প্রতীকী লিঙ্ক হয় তবে অ্যাক্সেসের জন্য dirআপনার চালনার অনুমতি প্রয়োজন । সিএমলিংকের অনুমতি নিজেই ওএস এবং ফাইল সিস্টেমের উপর নির্ভর করে বা বিষয়টি বিবেচনা করতে পারে (কিছু তাদের সম্মান করে, কিছু তাদের এড়িয়ে চলে)।dirsym/foo

রুট ডিরেক্টরি থেকে কার্যকর করার অনুমতি অপসারণ কার্যকরভাবে একটি ব্যবহারকারীর ডিরেক্টরি গাছের একটি অংশে সীমাবদ্ধ করে (আরও বেশি সুবিধাপ্রাপ্ত প্রক্রিয়াতে এটি অবশ্যই রূপান্তরিত হয়)। এটির কোনও ব্যবহারের জন্য অ্যাক্সেস নিয়ন্ত্রণ তালিকার প্রয়োজন। উদাহরণস্বরূপ, যদি /এবং /homeঅফ সীমা হয় joe( setfacl -m user:joe:0 / /home) এবং /home/joeহয় joeএর বাড়ি ডিরেক্টরি, তারপর joe(সঙ্গে শেল স্ক্রিপ্ট চলমান সহ সিস্টেম বাকি অ্যাক্সেস করতে সক্ষম হবেন না /bin/shবা পরিবর্তনশীল লিঙ্ক বাইনেরিতে ব্যবহার করার দরকার যে /libআপনি এখন, ' d ব্যবহারিক ব্যবহারের জন্য আরও গভীরতর হতে হবে, যেমন setfacl -m user:joe:0 /*; setfacl -d user:joe /bin /lib)।

কোনও ডিরেক্টরিতে পড়ার অনুমতি এন্ট্রিগুলি গণনার অধিকার দেয়। পড়ার অনুমতি না দিয়ে মৃত্যুদন্ড কার্যকর করার অনুমতি দেওয়া মাঝে মাঝে দরকারী: এন্ট্রিগুলির নামগুলি অ্যাক্সেসের জন্য পাসওয়ার্ড হিসাবে কাজ করে। অনুমতি কার্যকর না করে কোনও ডিরেক্টরিতে পড়া বা লেখার অনুমতি দেওয়ার ক্ষেত্রে আমি কোনও ব্যবহারের কথা ভাবতে পারি না।


32

রুট ফোল্ডার অনুমতি শিশুদের অনুমতি সীমাবদ্ধ করে। আপনি চেষ্টা করতে পারেন.

$ mkdir rootdir
$ touch ./rootdir/childfile
$ chmod 777 ./rootdir/childfile
$ chmod 600 rootdir
$ cat ./rootdir/childfile

বুঝতে পেরেছি:

$ cat: ./rootfolder/childfile: permission denied

4

আপনি চাইল্ড ডিরেক্টরিকে লিখিতযোগ্য করে তুলতে পারেন এমনকি পিতামহুল ডিরেক্টরিও নয়। আমি দলগতভাবে এটি করি।

উদাহরণস্বরূপ: প্যারেন্ট ডিরেক্টরিটি গ্রুপ কোডারের মালিকানাধীন

drwxr-sr-x

শিশু ডিরেক্টরি

drwxrwsr-x

আপনি (কোডার গ্রুপের যে কোনও সদস্য) এখনও চাইল্ড ডিরেক্টরিতে লিখতে পারেন তবে পিতামাতার ডিরেক্টরিতে নয়।


1

প্যারেন্ট ডিরেক্টরিতে কোনও এক্সিকিউটিভ সুবিধা না থাকলেও আপনি ফাইলটি অ্যাক্সেসের জন্য হার্ড লিঙ্কটি তৈরি করতে পারেন। তবে এখানে ধরাটি হ'ল পিতামাতার ডিরেক্টরিতে আপনি কার্যকর করার সুযোগটি হারিয়ে ফেলার আগে আপনাকে হার্ড লিঙ্কিং তৈরি করতে হবে

$ ln foo/bar/test_privs privs_test_checking
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.