কে কোন ফাইল / ডিরেক্টরিতে অনুমতি পরিবর্তন করতে পারে?


14

আমি বিশ্বাস করি (নিশ্চিত নয়) যে কোনও ফাইল / ডিরেক্টরির মালিক এবং মূল ব্যবহারকারী কেবলমাত্র সেই ব্যবহারকারী যাঁরা কোনও ফাইল / ডিরেক্টরিতে অনুমতি পরিবর্তন করতে পারবেন। আমি কি সঠিক বা অন্য কোনও ব্যবহারকারীকেও অনুমতি পরিবর্তন করার অনুমতি দেওয়া হয়েছে?

উত্তর:


19

কেবলমাত্র মালিক এবং root(সুপার ব্যবহারকারী) কোনও ফাইল বা ডিরেক্টরিতে অনুমতি পরিবর্তনের অনুমতি দেওয়া হয়। এর অর্থ হ'ল মালিক এবং সুপার ব্যবহারকারী পঠন ( r) লিখতে ( w) লিখতে এবং ( x) অনুমতিগুলি কার্যকর করতে পারে । তবে ফাইল chown/ ডিরেক্টরিগুলির মালিকানা (ব্যবহারকারী / গোষ্ঠী) পরিবর্তন করার সাথে কমান্ড / chgrpকেবলমাত্র অনুমোদিত root


19
ব্যবহারকারী যদি নতুন গ্রুপের সদস্য হন তবে কোনও ফাইলের মালিক সেই ফাইলটির গোষ্ঠী মালিকানা পরিবর্তন করতে পারেন।
কুসালানন্দ

7

সাধারণ ক্রিয়াকলাপের উদ্দেশ্যে, কেবলমাত্র রুট এবং মালিকই পারেন chmod। তদ্ব্যতীত , রুট করতে পারে chownএবং chgrp, এবং chgrpততক্ষণ পর্যন্ত মালিক যতক্ষণ লক্ষ্যবস্তু গোষ্ঠীর সদস্য।

সুরক্ষার উদ্দেশ্যে, অন্য একটি মামলা রয়েছে: ফাইল থাকা ডিরেক্টরিতে লেখার অনুমতি থাকা যে কোনও ব্যবহারকারী ফাইলটিকে একটি অনুলিপি দ্বারা প্রতিস্থাপন করতে পারবেন এবং এইভাবে অনুমতি এবং বিষয়বস্তুগুলিকে সংশোধন করার ক্ষমতা অর্জন করে মালিক হতে পারবেন।

তাই ভালো:

14:14 mybox:~ mkdir mydir
14:14 mybox:~ cd mydir/
14:14 mybox:mydir echo foo | sudo tee yourfile
foo
14:14 mybox:mydir ls -ld . yourfile 
drwxr-xr-x  3 me    staff  102 Apr 11 14:14 .
-rw-r--r--  1 root  staff    4 Apr 11 14:14 yourfile

আমরা একটি ডিরেক্টরি তৈরি করেছি এবং রুট হিসাবে একটি ফাইল লিখেছি। যেহেতু রুট ফাইলটির মালিক, আমরা এটিতে লিখতে পারি না বা chmodও করতে পারি না:

14:15 mybox:mydir echo bar > yourfile 
-bash: yourfile: Permission denied
14:15 mybox:mydir chmod a+x yourfile
chmod: Unable to change file mode on yourfile: Operation not permitted

তবে, আমাদের ডিরেক্টরিতে লেখার অনুমতি আছে, তাই আমরা মালিকানা পেতে ফাইলটি প্রতিস্থাপন করতে পারি:

14:15 mybox:mydir mv yourfile yourfile2
14:15 mybox:mydir cp yourfile2 yourfile
14:15 mybox:mydir ls -ld . yourfile 
drwxr-xr-x  4 me   staff  136 Apr 11 14:15 .
-rw-r--r--  1 me   staff    4 Apr 11 14:15 yourfile

এবং এখন আমরা যে মালিক, আমরা অবশ্যই সেই ফাইলটি দিয়ে যা করতে চাই তা করতে পারি:

14:15 mybox:mydir echo bar > yourfile 
14:15 mybox:mydir chmod a+x yourfile
14:16 mybox:mydir cat yourfile
bar

একইভাবে, যে কোনও ব্যবহারকারীর ফাইলের পুরোপথে যে কোনও ডিরেক্টরিতে লেখার অনুমতি নিয়ে ফাইলের দিকে যেতে হবে সেই দিক থেকে ডিরেক্টরি কাঠামোটি প্রতিস্থাপন করতে পারে, এইভাবে প্রদত্ত নামের সাথে ফাইলটির মালিকানা অর্জন করতে পারে। প্রকৃত আসল ফাইলের মালিকানা বা অনুমতিগুলি (যা আমরা "yourfile2" নামকরণ করেছি) অবশ্যই পরিবর্তন করা হয়নি।

14:17 mybox:mydir ls -l yourfile2
-rw-r--r--  1 root  staff  4 Apr 11 14:14 yourfile2

আপনি কি জানেন যে কোনও লিনাক্স বিতরণ উইন্ডোজের মতো অতিরিক্ত সুরক্ষা বৈশিষ্ট্যগুলি সমর্থন করে? আমি যদি উইন্ডোতে থাকি, ডিরেক্টরিটি অনুমতিপ্রাপ্ত হয়েও আমি মুছে ফেলা রোধ করতে অস্বীকার করার জন্য কোনও ফাইলের মোছার অনুমতি সেট করতে পারি।
কেভিন লি

অনেক (সর্বাধিক?) বর্তমান লিনাক্স স্বাদসমূহ ফাইল স্তরের অ্যাক্সেস নিয়ন্ত্রণ তালিকা সমর্থন করে, ( getfacl / setfacl) যা "ধ্রুপদী" শৈলীর ফাইল অনুমতিগুলির চেয়ে আরও নমনীয়তা দেয়। * নিক্সের ফাইল মুছে ফেলা ডিরেক্টরি থেকে ফাইলের লিঙ্কটি সরিয়ে কাজ করে, সুতরাং ফাইল অপসারণ সর্বদা ডিরেক্টরি অনুমতি দ্বারা নিয়ন্ত্রিত হয়; ফাইল অনুমতি নিজেই সেখানে কোন ভূমিকা পালন করে না।
বাস

ইউনিক্স দর্শনের কাছে সত্য "সবকিছুই একটি ফাইল Very" সুতরাং আপনি কি বলছেন যে লিনাক্সে এই জাতীয় জিনিস করা যায় না?
কেভিন লি

3
@ কেভিনলি এই উত্তরটি সত্যিই সম্পূর্ণ নয়। অ-মালিকদের ফাইল মুছতে বা নাম পরিবর্তন করতে সীমাবদ্ধ করতে আপনি কোনও ডিরেক্টরিতে স্টিকি বিট সেট করতে পারেন । এই প্রশ্নটি এবং এর উত্তরগুলি দেখুন: unix.stackexchange.com/questions/79395/… এসিএল বা অন্যান্য স্কিম ব্যবহার করার দরকার নেই।
অ্যান্ড্রু হেনেল

@ কেভিনল্লি * নিক্স ফাইল সিস্টেমগুলি উইন্ডোজের থেকে অনেক আলাদা। ডিরেক্টরিগুলি হায়ারার্কি থেকে ফাইলগুলি পৃথকভাবে বিদ্যমান এবং ডিরেক্টরিগুলিতে তাদেরকে নির্দেশ করে বেশ কয়েকটি "হার্ড লিঙ্ক" থাকতে পারে। কোনও ফাইল মোছার অর্থ হ'ল হার্ড লিঙ্কটি সরিয়ে ফেলা, যা ডিরেক্টরিতে করা হয়। ফাইলটি কয়টি হার্ড লিঙ্কগুলিতে এটি নির্দেশ করছে তা ট্র্যাক করে এবং প্রকৃত ফাইল যতক্ষণ না ডিস্কে কমপক্ষে একটি হার্ড লিঙ্ক নির্দেশ করে ততক্ষণ থাকবে। সুতরাং, অপসারণের ডিরেক্টরির অনুমতি, যার দ্বারা নিয়ন্ত্রিত হয় না একমাত্র ফাইলটি মালিকের & রুট দ্বারা মোছাগুলিকে অনুমতি একটি বিশেষ বিকল্প আছে, অ্যান্ড্রু বলেছেন হিসাবে।
বাস

1

chmodকমান্ড মোটামুটি সরাসরি একই নামের সিস্টেম কল ডাকে; chmod(2)সিস্টেম কলের জন্য ম্যান পেজটি (লিনাক্স ৪.১০ এ) বলেছে:

কলিং প্রক্রিয়াটির কার্যকর ইউআইডি অবশ্যই ফাইলের মালিকের সাথে মেলে, বা প্রক্রিয়াটি অবশ্যই অধিকারযুক্ত হওয়া উচিত (লিনাক্স: এটির অবশ্যই CAP_FOWNERদক্ষতা থাকতে হবে)।

যদি কলিং প্রক্রিয়াটি সুবিধাযুক্ত না হয় (লিনাক্স: এর CAP_FSETIDক্ষমতা নেই) এবং ফাইলটির গ্রুপ প্রক্রিয়াটির কার্যকর গ্রুপ আইডির সাথে বা এর পরিপূরক গোষ্ঠীর কোনও আইডির সাথে মেলে না, তবে S_ISGIDবিটটি বন্ধ হয়ে যাবে, তবে এটি কোনও ত্রুটি ফিরে আসার কারণ হবে না।

সুতরাং হ্যাঁ, রুট হিসাবে চলমান একটি প্রক্রিয়া যদি কোনও CAP_FOWNERক্ষমতা ছাড়েনি তবে কোনও ফাইলের অনুমতি পরিবর্তন করতে পারে ।


আগ্রহের বিষয়টিও chown; ম্যান পেজ chown(2)বলেছেন:

কেবলমাত্র একটি সুবিধাযুক্ত প্রক্রিয়া (লিনাক্স: CAP_CHOWNসক্ষমতা সহ একটি ) কোনও ফাইলের মালিককে পরিবর্তন করতে পারে। কোনও ফাইলের মালিক সেই গ্রুপের যে কোনও গ্রুপের মালিক সেই সদস্য হিসাবে পরিবর্তিত হতে পারে। একটি সুবিধাপ্রাপ্ত প্রক্রিয়া (লিনাক্স: সহ CAP_CHOWN) ইচ্ছামত গ্রুপটি পরিবর্তন করতে পারে।

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