আমি বিশ্বাস করি (নিশ্চিত নয়) যে কোনও ফাইল / ডিরেক্টরির মালিক এবং মূল ব্যবহারকারী কেবলমাত্র সেই ব্যবহারকারী যাঁরা কোনও ফাইল / ডিরেক্টরিতে অনুমতি পরিবর্তন করতে পারবেন। আমি কি সঠিক বা অন্য কোনও ব্যবহারকারীকেও অনুমতি পরিবর্তন করার অনুমতি দেওয়া হয়েছে?
আমি বিশ্বাস করি (নিশ্চিত নয়) যে কোনও ফাইল / ডিরেক্টরির মালিক এবং মূল ব্যবহারকারী কেবলমাত্র সেই ব্যবহারকারী যাঁরা কোনও ফাইল / ডিরেক্টরিতে অনুমতি পরিবর্তন করতে পারবেন। আমি কি সঠিক বা অন্য কোনও ব্যবহারকারীকেও অনুমতি পরিবর্তন করার অনুমতি দেওয়া হয়েছে?
উত্তর:
কেবলমাত্র মালিক এবং root
(সুপার ব্যবহারকারী) কোনও ফাইল বা ডিরেক্টরিতে অনুমতি পরিবর্তনের অনুমতি দেওয়া হয়। এর অর্থ হ'ল মালিক এবং সুপার ব্যবহারকারী পঠন ( r
) লিখতে ( w
) লিখতে এবং ( x
) অনুমতিগুলি কার্যকর করতে পারে । তবে ফাইল chown
/ ডিরেক্টরিগুলির মালিকানা (ব্যবহারকারী / গোষ্ঠী) পরিবর্তন করার সাথে কমান্ড / chgrp
কেবলমাত্র অনুমোদিত root
।
সাধারণ ক্রিয়াকলাপের উদ্দেশ্যে, কেবলমাত্র রুট এবং মালিকই পারেন 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
) যা "ধ্রুপদী" শৈলীর ফাইল অনুমতিগুলির চেয়ে আরও নমনীয়তা দেয়। * নিক্সের ফাইল মুছে ফেলা ডিরেক্টরি থেকে ফাইলের লিঙ্কটি সরিয়ে কাজ করে, সুতরাং ফাইল অপসারণ সর্বদা ডিরেক্টরি অনুমতি দ্বারা নিয়ন্ত্রিত হয়; ফাইল অনুমতি নিজেই সেখানে কোন ভূমিকা পালন করে না।
chmod
কমান্ড মোটামুটি সরাসরি একই নামের সিস্টেম কল ডাকে; chmod(2)
সিস্টেম কলের জন্য ম্যান পেজটি (লিনাক্স ৪.১০ এ) বলেছে:
কলিং প্রক্রিয়াটির কার্যকর ইউআইডি অবশ্যই ফাইলের মালিকের সাথে মেলে, বা প্রক্রিয়াটি অবশ্যই অধিকারযুক্ত হওয়া উচিত (লিনাক্স: এটির অবশ্যই
CAP_FOWNER
দক্ষতা থাকতে হবে)।যদি কলিং প্রক্রিয়াটি সুবিধাযুক্ত না হয় (লিনাক্স: এর
CAP_FSETID
ক্ষমতা নেই) এবং ফাইলটির গ্রুপ প্রক্রিয়াটির কার্যকর গ্রুপ আইডির সাথে বা এর পরিপূরক গোষ্ঠীর কোনও আইডির সাথে মেলে না, তবেS_ISGID
বিটটি বন্ধ হয়ে যাবে, তবে এটি কোনও ত্রুটি ফিরে আসার কারণ হবে না।
সুতরাং হ্যাঁ, রুট হিসাবে চলমান একটি প্রক্রিয়া যদি কোনও CAP_FOWNER
ক্ষমতা ছাড়েনি তবে কোনও ফাইলের অনুমতি পরিবর্তন করতে পারে ।
আগ্রহের বিষয়টিও chown
; ম্যান পেজ chown(2)
বলেছেন:
কেবলমাত্র একটি সুবিধাযুক্ত প্রক্রিয়া (লিনাক্স:
CAP_CHOWN
সক্ষমতা সহ একটি ) কোনও ফাইলের মালিককে পরিবর্তন করতে পারে। কোনও ফাইলের মালিক সেই গ্রুপের যে কোনও গ্রুপের মালিক সেই সদস্য হিসাবে পরিবর্তিত হতে পারে। একটি সুবিধাপ্রাপ্ত প্রক্রিয়া (লিনাক্স: সহCAP_CHOWN
) ইচ্ছামত গ্রুপটি পরিবর্তন করতে পারে।