"রুট" ব্যবহারকারীর জন্য ফাইল অনুমতি কীভাবে কাজ করে?


28

আমার কাছে নিম্নলিখিত ফাইল রয়েছে:

---------- 1 Steve Steve 341 2017-12-21 01:51 myFile.txt

আমি ব্যবহারকারীকে rootটার্মিনালে স্যুইচ করেছি , এবং আমি নীচের আচরণগুলি লক্ষ্য করেছি:

  • আমি এই ফাইলটি পড়তে এবং এটিতে লিখতে পারি।

  • আমি এই ফাইলটি কার্যকর করতে পারি না।

  • যদি আমি ফাইলটির xব্যবহারকারী অনুমতি ( ---x------) বা গ্রুপ অনুমতি ( ------x---) বা অন্যের অনুমতিতে ---------x) সেট করে রাখি তবে আমি এই ফাইলটি কার্যকর করতে সক্ষম হব।

কেউ যখন আমাকে rootফাইল বা ডিরেক্টরিগুলি ব্যবহার করতে পারেন তখন প্রযোজ্য সমস্ত বিধি সম্পর্কে ব্যাখ্যা করতে পারে এমন কোনও টিউটোরিয়াল আমাকে ব্যাখ্যা করতে বা আমাকে নির্দেশ করতে পারে ?

উত্তর:


38

ফাইল এবং ডিরেক্টরিগুলিতে বিশেষাধিকারপ্রাপ্ত অ্যাক্সেস আসলে ক্ষমতা দ্বারা নির্ধারিত হয়, কেবল না থাকার কারণে rootনয়। অনুশীলনে, rootসাধারণত সমস্ত সম্ভাব্য ক্ষমতা থাকে তবে এমন পরিস্থিতি রয়েছে যেখানে তাদের সমস্ত / অনেককেই বাদ দেওয়া যেতে পারে, বা কিছু অন্য ব্যবহারকারীদের (তাদের প্রক্রিয়াগুলি) দেওয়া হয়।

সংক্ষেপে, আপনি ইতিমধ্যে বর্ণনা করেছেন যে অ্যাক্সেস নিয়ন্ত্রণ চেকগুলি কোনও সুবিধাযুক্ত প্রক্রিয়ার জন্য কীভাবে কাজ করে। বিভিন্ন ক্ষমতাগুলি এটি কীভাবে প্রভাবিত করে তা এখানে রয়েছে:

এখানে প্রধান সামর্থ্য হ'লCAP_DAC_OVERRIDE , এমন একটি প্রক্রিয়া যা "ফাইলগুলি পড়তে, লিখতে এবং অনুমতি চেকগুলি চালিয়ে যেতে" পারে। এর মধ্যে রয়েছে যে কোনও ফাইলের পড়া এবং লেখার পাশাপাশি ডিরেক্টরিগুলি পড়া, লেখা এবং অ্যাক্সেস।

এটি বাস্তবায়িত হিসাবে চিহ্নিত নয় এমন ফাইলগুলি কার্যকর করার ক্ষেত্রে প্রযোজ্য নয়। ( ) -এর মন্তব্যgeneric_permissionfs/namei.c , ফাইলগুলির অ্যাক্সেস চেক করার আগে, এটি বলে

পঠন / লেখার ড্যাকগুলি সর্বদা ওভাররিডযোগ্য। কমপক্ষে একটি এক্সিকিউট বিট সেট থাকাকালীন এক্সিকিউটেবল ডিএসিগুলি ওভাররাইডযোগ্য।

এবং কোডটি পরীক্ষা করে xযদি আপনি ফাইলটি চালনার চেষ্টা করছেন তবে কমপক্ষে একটি বিট সেট আছে। আমার সন্দেহ হয় দুর্ঘটনাক্রমে এলোমেলো ডেটা ফাইল চালানো এবং ত্রুটি বা বিজোড় ফলাফল পেতে রোধ করার জন্য এটি কেবল একটি সুবিধা বৈশিষ্ট্য।

যাইহোক, আপনি যদি অনুমতিগুলি ওভাররাইড করতে পারেন তবে আপনি কেবল একটি কার্যকর কার্যকর অনুলিপি তৈরি করতে পারেন এবং এটি চালাতে পারেন। (যদিও এটি কোনও প্রক্রিয়ার সেতুযুক্ত ফাইলগুলির জন্য তত্ত্বের ক্ষেত্রে কোনও পার্থক্য আনতে CAP_DAC_OVERRIDEপারে তবে ফাইল অনুমতিগুলি ওভাররাইড করতে সক্ষম ছিল )) তবে এর সাথে অন্যান্য সম্পর্কিত ক্ষমতা ( CAP_FSETID/ CAP_FOWNER/ CAP_SETUID) ছিল না But তবে CAP_DAC_OVERRIDEএডিটিং /etc/shadowএবং স্টাফের অনুমতি দেয় তাই এটি প্রায় সমান যাইহোক যাইহোক সম্পূর্ণ রুট অ্যাক্সেস থাকার জন্য।)

এমন CAP_DAC_READ_SEARCHক্ষমতাও রয়েছে যা কোনও ফাইল পড়তে এবং যে কোনও ডিরেক্টরিতে অ্যাক্সেস করতে দেয় তবে তাদের চালানো বা লিখতে দেয় না; এবং CAP_FOWNERএটি কোনও প্রক্রিয়া এমন স্টাফ করার অনুমতি দেয় যা সাধারণত ফাইলের মালিকদের জন্য অনুমতি বিট এবং ফাইল গ্রুপ পরিবর্তন করার মতো সংরক্ষণ করা হয়।

ডিরেক্টরিতে স্টিকি বিট ওভাররাইডিং কেবলমাত্র নীচে উল্লিখিত হয় CAP_FOWNER, সুতরাং মনে হয় এটি CAP_DAC_OVERRIDEএড়ানো যথেষ্ট নয়। (এটি আপনাকে লেখার অনুমতি দিবে, তবে সাধারণত স্টিকি ডিরেক্টরিগুলিতে আপনার যেভাবেই থাকে এবং +tএটি সীমাবদ্ধ করে দেয়))

(আমি বিশেষ ডিভাইসগুলিকে এখানে "ফাইল" হিসাবে গণ্য করি generic_permission()directories কমপক্ষে ডিরেক্টরিগুলির জন্য কেবলমাত্র টাইপ চেক আছে, তবে আমি এটির বাইরে পরীক্ষা করিনি।)


অবশ্যই, এখনও এমন পরিস্থিতি রয়েছে যেখানে এমনকি ক্ষমতাগুলি আপনাকে ফাইলগুলি সংশোধন করতে সহায়তা করবে না:

  • কিছু ফাইল রয়েছে /procএবং /sysযেহেতু সেগুলি প্রকৃত ফাইল নয়
  • সেলইনাক্স এবং অন্যান্য সুরক্ষা মডিউল যা মূলকে সীমাবদ্ধ করে
  • chattrঅপরিবর্তনীয় +iএবং কেবল +aএক্সট 2 / এক্সট3 / এক্সট 4-তে পতাকা যুক্ত করে, উভয়ই মূল এমনকি বন্ধ করে দেয় এবং ফাইলের পুনরায় নাম ইত্যাদিও প্রতিরোধ করে
  • নেটওয়ার্ক ফাইল সিস্টেমগুলি, যেখানে সার্ভার নিজস্ব অ্যাক্সেস নিয়ন্ত্রণ করতে পারে, যেমন root_squashএনএফএস মানচিত্রে কারও কাছে রুট নেই
  • FUSE, যা আমি ধরে নিই যে কিছু করতে পারে
  • পঠনযোগ্য কেবল মাউন্টগুলি
  • কেবলমাত্র পঠনযোগ্য ডিভাইসগুলি

আশ্চর্যজনক যে উত্স ফাইলের মন্তব্যটি capabilities(7)ম্যান পৃষ্ঠায় মিরর করা হয়নি বলে মনে হচ্ছে - একটি বাগ রিপোর্ট ফাইল করা বিবেচনা করুন!
টবি স্পিড

@ilkkachu দেখা গেছে যে, rootআছে rw-উপর (প্রায়) যেকোনো ফাইল অনুমতি এবং পেতে xঅনুমতি, তারপর xবিট ফাইলে পারেন ব্যবহারকারী / গ্রুপ / অন্যদের অনুমতিগুলি সেট করতে হবে। কিন্তু কি ডিরেক্টরি সম্পর্কে, নেই rootআছে rwxযে কোনো ডিরেক্টরির অনুমতি (এমনকি যদি একটি ডিরেক্টরি সব সময়ে কোন অনুমতি ( ----------))?
জোসেফ

@ জোসেফ, হ্যাঁ, CAP_DAC_OVERRIDEসমস্ত ডিরেক্টরি অনুমতিগুলিকে ওভাররাইড করার অনুমতি দেয়, সুতরাং আপনি ডিরেক্টরি পড়তে, লিখতে এবং অ্যাক্সেস করতে পারেন (যেমন বিষয়বস্তুগুলির তালিকা তৈরি করুন, ফাইলগুলি তৈরি করুন এবং লিঙ্কমুক্ত করুন)। আমি এক্সিকিউট বিট সম্পর্কে যে মন্তব্যটি উদ্ধৃত করেছি তা ফাইলগুলির প্রসঙ্গে (কেবল)।
ইলক্কাছু

11

এটি হ'ল ঠিক যেমন আপনি ডিফল্ট অনুমতিগুলির জন্য লক্ষ্য করেছেন:

  • পড়ুন এবং লিখুন:
    ডিফল্টরূপে, রুট ব্যবহারকারীরা সিস্টেমের যে কোনও ফাইল অ্যাক্সেস করতে পারবেন। আপনি এখানে ব্যাখ্যা করার মতো বৈশিষ্ট্যগুলি পরিবর্তন করে এই অ্যাক্সেসটি সরাতে পারেন: চ্যাটার । এটি তখন ক্ষমতার সাথে যুক্ত হয়।

  • এক্সিকিউট করুন:
    কমপক্ষে একটি এক্সিকিউশন বিট সেট না করা হলে রুট ব্যবহারকারীর কার্যকর করার অনুমতি নেই।


রুট লিখতে বা মুছতে পারে না এমন ফাইল থাকা সম্ভব। সুতরাং "রুট ব্যবহারকারীরা সিস্টেমে যে কোনও ফাইল অ্যাক্সেস করতে পারবেন।" ভুল.
Lukas Boersma

আপনার অর্থ কেবল পঠনযোগ্য ফাইল সিস্টেমের মতো? নাকি তোমার আর একটি মামলা আছে?
কেভিন লেমায়ার

1
আমি এই জাতীয় মামলার বিষয়ে কথা বলছি: অলিখিত লিখনযোগ্য ফাইল , মুছে
লুকাশ বোয়ার্সমা

5

দ্বারা myFile.txtপ্রাপ্ত হয় chmod 000 myFile.txt

0 no permission
1 execute
2 write
3 execute + write
4 read 
5 read + execute
6 read + write
7 all

--------- মানে ব্যবহারকারী, গোষ্ঠী এবং অন্যদের জন্য কোনও অনুমতি নেই।

রুট ব্যবহারকারীর এই ফাইলটি সংশোধন করার জন্য একটি সীমাহীন ক্ষমতা রয়েছে। পঠন / লেখার অনুমতি দেওয়া হয়। এই ফাইলটি কার্যকর করতে মূল ব্যবহারকারীকে যেভাবেই এটি কার্যকর করতে হবে। (chmod 100, 010 বা 001)


2

এক্সিকিউট মোডটি অন্যান্য মোডের থেকে কিছুটা আলাদাভাবে চিকিত্সা করা হয়।

সুরক্ষা নীতি প্রয়োগের জন্য পড়ার এবং লেখার অনুমতি ব্যবহার করা হয়। rootব্যবহারকারী সাধারণত নিরাপত্তা সীমাবদ্ধতা (কিছু ব্যতিক্রম, অপরিবর্তনীয় ফাইলের মত হয়, এবং ক্ষমতা মত আধুনিক বৈশিষ্ট্যগুলি এই আরো নিখুঁতভাবে করেছেন), যার কারণে এই অ্যাকাউন্টের জন্য অন্য একটি নাম "সুপার-ইউজার" থেকে অনাক্রম্য হয়।

এক্সিকিউট করার অনুমতি হ'ল ফাইলটি এক্সিকিউটেবল হওয়ার উদ্দেশ্যে তৈরি করা হয়েছে বা কেবল ডেটা। এ কারণে, এমনকি রুট ব্যবহারকারীরা এটি মান্য করে - কোনও ডেটা ফাইল চালানোর কোনও মানে নেই। এক্সিকিউট করার অনুমতিগুলির মধ্যে কোনওটি সেট না করা থাকলে রুট ফাইলটি কার্যকর করতে পারে না; যদি সেগুলির মধ্যে কোনও সেট করা থাকে তবে তিনি পারেন। অবশ্যই, যেহেতু মূলের যে কোনও ফাইলের অনুমতি পরিবর্তন করার অনুমতি রয়েছে, অ্যাকাউন্টটি চাইলে (ফাইল-সিস্টেম কেবল পঠনযোগ্য না হলে) কোনও ফাইল কার্যকর করতে পারে।

বিটিডাব্লু, স্ক্রিপ্টগুলি এটির একটি আকর্ষণীয় ঘটনা। স্ক্রিপ্টগুলি প্রাসঙ্গিক ইন্টারপ্রেটারের জন্য ডেটা ফাইল। যদি স্ক্রিপ্টটির কোনও #!লাইন থাকে তবে আপনি এটিকে প্রোগ্রাম হিসাবে চালিয়ে দিতে পারেন - শেবাং নামক দোভাষীকে আর্গুমেন্ট হিসাবে স্ক্রিপ্ট ফাইলের নাম দিয়ে চালানো হয়। তবে এটি কেবল তখন কার্যকর হবে যখন নির্বাহের অনুমতি সেট হয়ে থাকে। অন্যদিকে, আপনি কেবল দোভাষী সরাসরি চালাতে পারেন, যেমন /bin/bash scriptname। দোভাষীরা কেবল ফাইলটি পড়তে পারেন কিনা সেদিকে খেয়াল রাখেন, তারা কার্যকর করার অনুমতিগুলি পরীক্ষা করে না।


1

আমি আপনাকে তাত্ত্বিকভাবে ব্যাখ্যা করি।

মূল ব্যবহারকারী অপারেটিং সিস্টেমের রাজা।

এক্সিকিউট করার জন্য যদি কোনও ফাইল বা ডিরেক্টরিতে এক্সের মতো অনুমতি থাকে তবে স্টিভ ব্যবহারকারীর মতো ফাইলের মালিকানা থাকে তবে রুটও ফাইলটি কার্যকর করতে পারে।

সর্বদা মনে রাখবেন, লিনাক্সে রুট যে কোনও কিছু করতে পারে, রুটে কোনও বিধিনিষেধ নেই।


কিছু না. উদাহরণস্বরূপ, যদি কোনও ফাইলের একটি অপরিবর্তনীয় বৈশিষ্ট্য থাকে তবে রুট এমনকি এটি পরিবর্তন করতে পারে না (যতক্ষণ না সে স্পষ্টভাবে সেই বৈশিষ্ট্যটি সরিয়ে দেয়)।
Ruslan

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