স্টিকি বিট কীভাবে কাজ করে?


148

এর SUID

চটচটে বিট সিস্টেম ঝিমুনি মেমরি প্রোগ্রাম একটি চিত্র রাখার পর প্রোগ্রাম চলমান সমাপ্ত এক্সিকিউটেবল প্রোগ্রাম প্রয়োগ করা হয়েছিল।

তবে আমি জানি না এটি কী স্মৃতিতে সঞ্চিত। এই ক্ষেত্রে আমি কীভাবে তাদের দেখতে পাচ্ছি?


এখানে কাজের উদাহরণ এবং ব্যাখ্যা সহ একটি ভাল টিউটোরিয়াল রয়েছে। এটি বোঝার মূল বিষয় হ'ল জড়িত অক্টাল সিস্টেম। লিনাক্স স্টিকি বিট টিউটোরিয়াল ওয়ার্কড উদাহরণ সহ
সিএমপি

উত্তর:


193

এটি সম্ভবত আমার সবচেয়ে উদ্বেগজনক বিষয় যা লোকেরা সর্বদা গণ্ডগোল করে। এসইউডি / জিইউডি বিট এবং স্টিকি বিট 2 সম্পূর্ণ ভিন্ন জিনিস।

আপনি যদি একটি করেন man chmodতবে SID এবং স্টিকি বিট সম্পর্কে পড়তে পারেন। Man পৃষ্ঠা এখানে পাওয়া যায় হিসাবে ভাল।

পটভূমি

উদ্ধৃতাংশ

চিঠিগুলি rwxXst প্রভাবিত ব্যবহারকারীদের জন্য ফাইল মোড বিট নির্বাচন করে: পড়ুন (র), লিখুন ( ডাব্লু ), এক্সিকিউট করুন (বা ডিরেক্টরিগুলি অনুসন্ধান করুন) (এক্স), কেবলমাত্র ফাইলটি ডিরেক্টরি হলেই বা কিছুটির জন্য ইতিমধ্যে অনুমতি কার্যকর করার জন্য এক্সিকিউট / অনুসন্ধান করুন search ব্যবহারকারী (এক্স), নির্বাহের উপর ব্যবহারকারীর বা গোষ্ঠী আইডি সেট করুন , মুছে ফেলার সীমাবদ্ধ চিহ্ন বা স্টিকি বিট (টি)

এর SUID / GUID

উপরের ম্যান পেজটি যা বলার চেষ্টা করছে তা হ'ল এক্স বিট ব্যবহারকারী অষ্টাল (আরডাব্লুএক্সের প্রথম গ্রুপ) এবং গ্রুপ অষ্টাল (আরডাব্লুএক্স এর দ্বিতীয় গ্রুপ) এর জন্য rwxrwxrwx এ অবস্থান নেয় এমন একটি অতিরিক্ত অবস্থা নিতে পারে যেখানে এক্স হয়ে যায় একটি এস। যখন এই ফাইলটি সম্পাদিত হয় তখন (যদি এটি কোনও প্রোগ্রাম এবং কেবল শেল স্ক্রিপ্ট নয়) মালিক বা ফাইলের গোষ্ঠীর অনুমতি নিয়ে চলবে।

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

উদ্ধৃতাংশ

সেটটিউড এবং সেটিং বিটস

chmod নিয়মিত ফাইলের সেট-গ্রুপ-আইডি বিটটি সাফ করে যদি ফাইলটির গ্রুপ আইডি ব্যবহারকারীর কার্যকর গ্রুপ আইডি বা ব্যবহারকারীর অন্যতম পরিপূরক গ্রুপ আইডির সাথে মেলে না, যদি না ব্যবহারকারীর উপযুক্ত সুবিধা থাকে has অতিরিক্ত বিধিনিষেধের কারণে মোডে বা আরএফআইএল-এর সেট-ব্যবহারকারী-আইডি এবং সেট-গ্রুপ-আইডি বিটগুলি উপেক্ষা করা যেতে পারে। এই আচরণ অন্তর্নিহিত chmod সিস্টেম কলের নীতি এবং কার্যকারিতার উপর নির্ভর করে। সন্দেহ হলে, অন্তর্নিহিত সিস্টেমের আচরণটি পরীক্ষা করে দেখুন।

chmod ডিরেক্টরিটির ব্যবহারকারী-আইডি এবং সেট-গ্রুপ-আইডি বিটগুলি সংরক্ষণ করে আপনি যদি অন্যথায় স্পষ্টভাবে উল্লেখ না করেন। আপনি ইউ + এস এবং জিএস এর মতো প্রতীকী মোডের সাথে বিটগুলি সেট বা সাফ করতে পারেন এবং সংখ্যাসূচক মোড সহ বিটগুলি সেট করতে পারেন (তবে পরিষ্কার নয়)।

SID / জিইউডি উদাহরণ

কোনও মামলা / নির্দেশিকা নেই - কেবলমাত্র rwxr-xr-x বিট সেট করা আছে।

$ ls -lt b.pl
-rwxr-xr-x 1 root root 179 Jan  9 01:01 b.pl

মামলা এবং ব্যবহারকারীর এক্সিকিউটেবল বিট সক্ষম (ছোট হাতের অক্ষর) - বিটস rwsr-xrx সেট করা আছে।

$ chmod u+s b.pl 
$ ls -lt b.pl 
-rwsr-xr-x 1 root root 179 Jan  9 01:01 b.pl

মামলা সক্রিয় এবং এক্সিকিউটেবল বিট অক্ষম (বড় হাতের এস) - বিটস rwSr-xr-x সেট করা আছে।

$ chmod u-x b.pl
$ ls -lt b.pl 
-rwSr-xr-x 1 root root 179 Jan  9 01:01 b.pl

গাইড এবং গ্রুপের এক্সিকিউটেবল বিট সক্ষম (ছোট হাতের অক্ষর) - বিটস rwxr-sr-x সেট করা আছে।

$ chmod g+s b.pl
$  ls -lt b.pl 
-rwxr-sr-x 1 root root 179 Jan  9 01:01 b.pl

গাইড সক্ষম এবং সম্পাদনযোগ্য বিট অক্ষম (বড় হাতের এস) - বিটস rwxr-Sr-x সেট করা আছে।

$ chmod g-x b.pl
$  ls -lt b.pl 
-rwxr-Sr-x 1 root root 179 Jan  9 01:01 b.pl

স্টিকি বিট

অন্যদিকে স্টিকি বিটটি ডিরেক্টরি tহিসাবে চিহ্নিত করা হয় /tmp:

$ ls -l /|grep tmp
drwxrwxrwt. 168 root root 28672 Jun 14 08:36 tmp

এই বিটটিকে সর্বদা "সীমাবদ্ধ মুছে ফেলার বিট" বলা উচিত ছিল যা এটি সত্যই বোঝায়। এই মোড বিটটি সক্ষম করা হলে, এটি একটি ডিরেক্টরি তৈরি করে যে ব্যবহারকারীরা কেবলমাত্র সেগুলির মালিক যে ফাইল এবং ডিরেক্টরিগুলি মুছতে পারে।

উদ্ধৃতাংশ

নিষিদ্ধ অপসারণ ফ্ল্যাগ বা স্টিকি বিট

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


43
আসলে স্টিকি বিট আগে এক্সিকিউটেবলের জন্য প্রয়োগ করা যেতে পারে, যার ফলে এগুলি প্রথমে লোড হওয়ার পরে অদলবদলে থাকতে পারে। এটি প্রচুর ব্যবহৃত অপ্রয়োজনীয় ডিস্ক / নেটওয়ার্ক (এনএফএস) এবং সিপিইউ ব্যবহারের জন্য অনেক বেশি সঞ্চয় করতে পারে। তবে, লিনাক্স বা সর্বাধিক (সমস্ত?) ইউনিক্স সিস্টেম এটিকে আর সমর্থন করে না (এটি কার্নেল থেকে সরানো হয়েছিল)। এটি "স্টিকি", কারণ নির্বাহযোগ্য অদলবদলে আটকে রয়েছে। এছাড়াও, আপনি বর্ণনা হিসাবে এটি ডিরেক্টরিতে ব্যবহৃত হয়েছিল।
বার্ড কোপার্পুড

4
আসলে "অনেক ব্যবহৃত বা খুব বড়" আরও ভাল বিবরণ হবে। মনে রাখবেন যে 1995 সালে আমার কলেজটির এইচপি-ইউএক্স কম্পিউটারে নেটস্কেপ ওয়েব-ব্রাউজারটি "স্টিকি" হিসাবে ছিল So প্রধান প্রার্থীদের "স্টিকি" করা হত? উভয় ক্ষেত্রেই ডিস্ক / এনএফএস থেকে ক্রমাগত এগুলি পুনরায় লোড করা ব্যর্থ হবে।
বার্ড কোপার্পুড

8
স্টিকি বিট প্রোগ্রামগুলি র‌্যামের বাসিন্দা থাকার জন্য ছিল, অদলবদলে নয় (একটি সোয়াপ ফাইল থেকে একটি চিত্র লোড করা কোনও ফাইল সিস্টেম ডিস্ক থেকে লোড করার চেয়ে তত দ্রুত নয়)। এটি প্রয়োজনীয় ওএস-স্তরের কমান্ডগুলির মতো ছিল ls। স্পষ্টতই, কেবলমাত্র সুপারইসার একটি ফাইলের উপর স্টিকি বিট সেট করতে পারে। ভার্চুয়াল মেমরি এবং ভাগ করা লাইব্রেরিগুলি চালু হওয়ার পরে এটি কম গুরুত্বপূর্ণ হয়ে উঠল এবং বিশেষত পেজারগুলি আরও চৌকস হয়ে উঠলে এবং কোন পৃষ্ঠাগুলিকে বাসিন্দা রাখতে হবে তা গতিশীলভাবে সিদ্ধান্ত নিতে পারে।
অ্যালেক্সিস

4
এবং যেহেতু স্টিকি সম্পত্তি কোনও ডিরেক্টরিকে বোঝায় না, তাই অনুমতিগুলির মাস্কের একই বিটটি পরে ডিরেক্টরিগুলির জন্য চিরাচরিত ফাইল-নির্মাণ শব্দার্থবিজ্ঞান সংশোধন করার জন্য ব্যাখ্যা করা হয়েছিল ।
অ্যালেক্সিস

5
@ অ্যালেক্সিস: মূলত, স্টিকি বিট প্রোগ্রামগুলি অদলবদলে রাখা হয়েছিল। এটি ফাইল সিস্টেম থেকে পড়ার চেয়ে অনেক দ্রুত ছিল কারণ অদলবদল ফাইলের চিত্রগুলি পড়া ক্ষেত্রগুলি জটিল ছিল এবং তাই বেশিরভাগ সংবিধানে পড়া যায় ously প্রাথমিক ফাইল সিস্টেমগুলির সাথে, কোনও সেক্টরের "রান দৈর্ঘ্য" ছিল না এবং সর্বাধিক প্রাথমিক ফাইল-সিস্টেম চালকরা একযোগে একটি সেক্টর পড়েন এমনকি সেক্টরগুলি ধারাবাহিকভাবে ঘটেছিল। PDP-40-এ ফলাফল হ'ল আঠালো প্রোগ্রামগুলি তত্ক্ষণাত্ লোড হয় বলে মনে হয়, যখন নন-স্টিকি প্রোগ্রামগুলি সাধারণত দ্বিতীয় বা দু'বার নেয়। আমি মনে করি আমাদের কেবল edস্টিকি ছিল ।
wallyk

8

"প্রোগ্রামটি চলমান শেষ হওয়ার পরে প্রোগ্রামটির একটি চিত্র মেমরিতে রাখার জন্য সিস্টেমটিকে পতাকাঙ্কিত কার্যকর কার্যকর প্রোগ্রামগুলিতে স্টিকি বিট প্রয়োগ করা হয়।"

আমি মনে করি এটি বেশ অপ্রচলিত তথ্য, আজ বেশিরভাগ আধুনিক ইউনিক্স সেটিকে উপেক্ষা করে। লিনাক্সে, স্টিকি বিট কেবল ডিরেক্টরিগুলির জন্য প্রাসঙ্গিক। দেখুন এখানে এবং বেশ তথ্যপূর্ণ Wikipedia নিবন্ধটি

যাইহোক, সেই পুরানো আচরণে চিত্রটি (কেবলমাত্র "কোড", ডেটা নয়) কেবল ভার্চুয়াল মেমোরিতে রাখা হয়েছিল-সাধারণভাবে অদলবদল করা হয়, আসল স্মৃতিতে নয়, যাতে পরবর্তী সময়ে এটি দ্রুত চালানো যায়।


3

স্টিকি বিট কি?

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

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


1
এটি ঠিক নয়: en.wikedia.org/wiki/Sticky_bit
এবি

7
@ এএবিকে আমার কাছে যথেষ্ট সঠিক মনে হয়েছে, আপনি যে উইকপিডিয়া নিবন্ধটির উদ্ধৃতি দিয়েছিলেন তার সূচনা প্রায় প্যারাফ্রেসিংয়ের দিকে। এতে দোষ কী?
রোয়াইমা

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