'Rm -rf /' কীভাবে সিস্টেমে সমস্ত ফাইল মুছতে সক্ষম?


81

আমি উবুন্টুতে এই কমান্ডটি চেষ্টা করি নি (স্পষ্ট কারণে) তাই আমি নিশ্চিত নই যে উবুন্টু এটি কার্যকর করার অনুমতি দেয় কিনা। তবে এটি সবকিছু মুছে ফেলার জন্য বিখ্যাত। কৌতূহলের বাইরে, কার্নেলটি এবং /binমুছে ফেলা হলে কী ঘটে ? rmরান টাইম স্ট্যাক কীভাবে বজায় রাখা যায়? rmফাইল সিস্টেমের সাথে যোগাযোগ এবং সম্পূর্ণ মোছার ব্যবস্থা কীভাবে করবেন ? এটি হার্ডওয়ারের সাথে কীভাবে যোগাযোগ করে?


18
rm -rf /ছাড়া কিছুই মুছে না --no-preserve-root
মুড়ু

47
লিনাক্সের সাথে আমার প্রথম অভিজ্ঞতাটি একটি উবুন্টু ভিএম তৈরি করছিল যাতে আমি এটি "rm -rf /" করতে পারি। আমি আপনাকে এটি চেষ্টা সুপারিশ। এটি সেটআপ করা খুব দ্রুত, এটি আপনার হোস্টকে সুরক্ষিত রাখে এবং আপনার চোখের সামনে ওএসের বিভিন্ন অংশ ভেঙে পড়ে দেখতে খুব বিনোদন দেয়। খুব সন্তোষজনক
ডিজেএমসিএমহেম 14

21
আমাকে আমার প্রিয় নিম্নোক্ত ত্রুটিযুক্ত প্রতিবেদনটির কথা মনে করিয়ে দেয়: bugzilla.redhat.com/show_bug.cgi?id=1202858 "প্রত্যাশিত ফলাফল: স্কুইড পুনরায় চালু হয়েছে ual প্রকৃত ফলাফল: সমস্ত ফাইল মেশিনে মুছে ফেলা হয়েছে।"

9
আপনার ইউনিক্স রিকভারি লেজেন্ডটি পড়া উচিত । আপনি এখনও শেলের মধ্যে লগইন না হওয়া পর্যন্ত সিস্টেমটি পুরোপুরি মৃত নয়!
200_সুসেস

উত্তর:


79

এটা কোন ব্যাপার না যে /bin/rmমুছে ফেলা হয়। এটি কেবল একবার চালানো হচ্ছে এবং সেই সময়ে এটি সমস্তই মেমরির মধ্যে লোড হয়ে গেছে, যেমন ফাইল সিস্টেম এবং ডিস্কে মুছে ফেলা প্রেরণ চালিয়ে যাওয়ার জন্য প্রয়োজনীয় অন্যান্য সমস্ত কিছুই।


সাইডবার / আপডেট: প্রতি ডেভিড হোলজারের উত্তর (এবং মন্তব্যে উল্লিখিত), হার্ডলিংকটি /bin/rmনির্দেশ করত যে ইনড হার্ডলিঙ্কটি rmশেষ না হওয়া অবধি ঠিক থাকবে (কারণ লিনাক্স একটি উন্মুক্ত অবস্থানে রয়েছে) তবে এই ঘটনাটি অপ্রাসঙ্গিক; ডিস্কের অবস্থা মোটেই কিছু যায় আসে না।

বাইনারিটি চালানোর আগে মেমরিতে লোড করা হয়। এমনকি যদি আপনি rmডিস্কের ডেটা ম্যানুয়ালি নষ্ট করতে পারেন , এটি মুছে ফেলাটি প্রভাবিত করতে বা থামাতে পারে না (ধরে নিলে আপনি অন্যথায় ডিস্কটি অনুপলব্ধ করবেন না)।

কোনও ইনোড বা হার্ডলিঙ্ক কী তা ধারণা নেই? আমি এটি কাজ করেছিলাম যেখানে এই উত্তর।


যাইহোক, এটি কারণও আপনি কম্পিউটারটি বিস্ফোরিত না করে বর্তমান কার্নেলের জন্য প্যাকেজটি মুছতে পারেন । যতক্ষণ আপনি অন্য সংস্করণটি ইনস্টল করবেন ততক্ষণ এটি বুট আপ করতে সক্ষম হবে।

আবার, এটি কাজ করে কারণ rmকেবল একবার ডাকা হয়। মৃত্যুর পরে নিম্নলিখিতটি ব্যর্থ হবে/bin/rm কারণ এটি প্রতিটি ফাইলের জন্য একবার কল করে:

find / -exec rm {} \;

এটি বলেছিল, find / -exec rm -rf {} +এবং find / -print0 | xargs -0 rm -rfউভয়ই ব্যর্থ হতে পারে কারণ তাদের উভয়েরই যুক্তির সীমা রয়েছে, যার অর্থ তারা আবার কল করার আগে কেবলমাত্র বেশ কয়েকটি ফাইল মুছবে। যাত্রার পাশাপাশি কিছু সময় বাকী ফাইলগুলি মুছে ফেলার আগেই /bin/rmমেয়াদ শেষ হয়ে যেতে পারে ( এবং ছেড়ে দেওয়া হবে)। যদিও এটির নিশ্চয়তা নেই। যদি /bin/সর্বশেষ ডিরেক্টরিটি প্রবেশ করানো হত তবে এই পদ্ধতিগুলি কাজ করতে পারে


7
@ ডেভিডহোলজার যেমন ব্যাখ্যা করেছেন, লিঙ্কযুক্ত ফাইলগুলি কাজ চালিয়ে যাওয়ার জন্য ইতিমধ্যে মেমরির প্রয়োজন নেই। কার্নেল জানে যে একটি খোলা ফাইল হ্যান্ডেল রয়েছে, তাই এটি হ্যান্ডেলটি বন্ধ না হওয়া অবধি কোনও অনুরোধ (পেজ-ইনগুলি সহ) পূরণ করতে ফাইল ডেটা রাখে।
অ্যান্ড্রু মেডিকো

4
@ দ্যস্তি, না, এটি সফল হবে না, যতক্ষণ /bin/rmনা শেষ পর্বের শেষ হওয়ার মতো পর্যাপ্ত ঘনিষ্ঠতা নেই; -exec ... {} +(ব্যাকস্ল্যাশ পলায়ন অপ্রয়োজনীয়) এখনও একাধিক মৃত্যুদণ্ড কার্যকর হয়; ফাইলের জন্য একটি নয়, কিন্তু প্রতিটি ব্যাচে একটি আর্গুমেন্টের সংখ্যার ভিত্তিতে যা এআরজি_ম্যাক্সে ফিট করতে পারে।
চার্লস ডাফি

6
@ অলি, এটি পেজিংয়ের কথা নয়; রেফারেন্স কাউন্টারগুলি ইনোডের সাথে সংযুক্ত থাকে, ডিরেক্টরি এন্ট্রি নয় এবং একটি ওপেন ফাইল হ্যান্ডেলকে একটি রেফারেন্স হিসাবে গণনা করা হয় (হার্ড লিঙ্কের মতোই), ইনোডকে বিচ্ছিন্ন হতে বাধা দেয়। ফাইলের আকার মোটেই কোনও ফ্যাক্টর নয় এবং অদলবদল (এইভাবে কোনও পেজিং) না থাকলেও এটি ঘটে।
চার্লস ডাফি

2
@ চার্লসডুফি আপনার অদলবদল থাকুক বা না থাকুক না কেন, পেজিং সমস্ত মেমরি ম্যাপযুক্ত ফাইলগুলির জন্য ব্যবহৃত হবে। এর মধ্যে সমস্ত এক্সিকিউটেবল এবং লাইব্রেরি অন্তর্ভুক্ত রয়েছে। আসলে অদলবদলের অভাবের অর্থ মেমরি ম্যাপযুক্ত ফাইলগুলির জন্য আরও পেজিং চলছে।
ক্যাস্পার্ড

2
@ চার্লস ডফি হ্যাঁ, আকারটি প্রকৃতপক্ষে অপ্রাসঙ্গিক। একটি ফাইল মেমরি ম্যাপিং এর অ্যাক্সেস না হওয়া পর্যন্ত ফাইলের যে কোনও বিষয়বস্তু লোড হতে দেয় না। এবং ফাইলের অ্যাক্সেসযুক্ত অংশগুলি লোড করতে ব্যবহৃত মেমরিটি প্রয়োজন হলে আবার মুক্তি দেওয়া যেতে পারে, তারপরে এটি পুনরায় অ্যাক্সেস করা হলে ফাইল থেকে লোড করা হবে। সুতরাং ফাইলটি ম্যাপ করা যতক্ষণ না ফাইল ফাইলটিতে থাকতে হবে এবং এটি একটি পৃষ্ঠার ফাইলের জন্য একইভাবে আচরণ করবে যেমন এটি পুরো ঠিকানার স্থান ছড়িয়ে দেওয়ার জন্য কোনও ফাইলের পক্ষে যথেষ্ট। (ডায়নামিক লিঙ্কিংয়ের জন্য কপিরাইট-অন-
রাইটিং

57

আমি উবুন্টুতে এই কমান্ডটি চেষ্টা করি নি (স্পষ্ট কারণে) তাই আমি নিশ্চিত নই যে উবুন্টু এটি কার্যকর করার অনুমতি দেয় কিনা।

আমি করেছিলাম. rm -rf / --no-preserve-rootসরাসরি মেশিনে খোলার একটি রুট সেশনে চলছে, যখন আমি sshঅন্য মেশিনের মাধ্যমেও যুক্ত হয়েছি , রুট অ্যাকাউন্টটিও ব্যবহার করে।

যা হয় তা হ'ল আপনি প্রচুর বার্তা পেতে শুরু করেন :

আরএম: '/ ...' অপসারণ করতে পারবেন না: অপারেশন অনুমোদিত নয়

বা:

আরএম: '/ ...' অপসারণ করতে পারবেন না: ডিভাইস বা সংস্থান ব্যস্ত

এখানে চিত্র বর্ণনা লিখুন

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

সকেট থেকে পড়া ব্যর্থ: পিয়ার দ্বারা সংযোগ পুনরায় সেট করুন

মেশিনে, চারটি ডিরেক্টরি রয়ে গেছে:

  • /dev। এখানেই ডিভাইস ফাইলগুলি সংরক্ষণ করা হয়।
  • /procকার্নেলের দ্বারা নির্মিত ইন-মেমরি ফাইল সিস্টেম।
  • /run, ডিমনগুলির জন্য একটি প্রমিত ফাইল সিস্টেমের অবস্থান।
  • /sys। এটি আপনাকে সিস্টেম এবং এর উপাদানগুলি সম্পর্কে তথ্য পেতে সহায়তা করে।

এর অর্থ হ'ল সেখানে খুব বেশি কিছু বাকি নেই, এবং করার মতো কিছুই নেই। আপনি পারবেন না ls(যদিও ব্যবহারের সময় Tab, ডিরেক্টরি এবং ফাইলগুলির নাম এখনও প্রদর্শিত হয়)। আপনি cdবিভিন্ন ডিরেক্টরিতে, এবং স্টাফও করতে echoপারেন, তবে কমান্ডগুলি যেমন catআর পাওয়া যায় না।

নেই sudoকোন।

shutdown -h nowএবং rebootপাশাপাশি অদৃশ্য হয়ে গেছে, সুতরাং আপনার একমাত্র বিকল্পটি মেশিনটিকে ম্যানুয়ালি ডাউন করে দেবে বলে মনে হচ্ছে। লগআউট ( exit) কাজ করে না, এমনকি যদি এটি একটি দুর্দান্ত "লগআউট" পাঠ্য দেখায়।

আপনি একবার মেশিনটি পুনরায় বুট করার চেষ্টা করার পরে, আপনাকে একটি দুর্দান্ত GRUB ত্রুটি 15 উপস্থাপিত হবে এবং তারপরে কিছুই হয় না, এমন সময়ে আপনি ভাবতে শুরু করতে পারেন যে rmআপনার সিস্টেমে খারাপ কিছু করা হতে পারে।

এখানে চিত্র বর্ণনা লিখুন

আপনি এটি করতে পারেন

না, অপেক্ষা করুন, এটি আপনার মেশিনে করবেন না!

পরিবর্তে আপনি যা করতে পারেন তা হ'ল ভার্চুয়াল মেশিন চালানো । ভিএমগুলি পরীক্ষাগুলিটিকে সহজ করে তোলার সুবিধা রয়েছে। যেহেতু আপনি উবুন্টু ব্যবহার করছেন, তাই আপনি ভেমবিল্ডার দ্বারা আগ্রহী হতে পারেন । এটি এমন একটি সরঞ্জাম যা আপনাকে কয়েক মিনিটের মধ্যে ভার্চুয়াল মেশিন স্থাপন করতে দেয় (অফিসিয়াল ডকুমেন্টেশন দাবি করে যে এটি "প্রায় এক মিনিটের মধ্যে" করা যেতে পারে, তবে আসল সময় এমনকি দ্রুত হার্ডওয়্যারেও প্রায় দুই-তিন মিনিটের বেশি হয় ।

একবার স্থাপনা শেষ হয়ে গেলে, আপনার এমন পরিবেশ থাকতে পারে যার সাথে আপনি খেলতে পারেন। আপনি যদি এটি শেষ করে ফেলেন তবে এটি কোনও বিষয় নয়: আপনি আবার মেশিনটি স্থাপন করুন এবং দু'মিনিট পরে আপনি চালিয়ে যেতে পারেন।

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

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

এই পরীক্ষাটি কেবল অপারেটিং সিস্টেমের মধ্যে সীমাবদ্ধ নয়। আপনি সফ্টওয়্যার জড়িত সমস্ত ধরণের জিনিস করতে পারেন। একটি সন্দেহজনক আবেদন পেয়েছেন? এটি একটি ভিএম-এ পরীক্ষা করুন it's যদি এটি কোনও ভাইরাস হয় তবে এটি কোনও ক্ষতি করে না। এটি একটি পরিবেশগত প্রভাবিত করতে পারে যে প্রদত্ত একটি ডাটাবেস মধ্যে একটি অপারেশন পরীক্ষা করতে চান? এটি একটি ভিএম-তে পরীক্ষা করুন।

আপনি যদি এটি একটি বাস্তব, পরীক্ষা না করা মেশিনে করেন?

খারাপ জিনিস ঘটে। মনে রাখবেন যে rmআপনাকে নিজেকে থেকে রক্ষা করে: rm -rf /কাজ করবে না: আপনার ব্যবহার করা দরকার --no-preserve-root। তবুও, আপনি যদি ভুল করে সমস্ত কিছু সরিয়ে ফেলতে চান তবে কী হবে?

rmকেবলমাত্র ফাইলগুলি লিঙ্কমুক্ত করে , তবে ডেটাটি এখনও রয়েছে আপনার হার্ড ডিস্কে। এটি এটি পরে পুনরুদ্ধার করা সম্ভব করে তোলে (এ কারণেই আপনার হার্ড ডিস্কগুলি সংবেদনশীল ডেটা দিয়ে যখন তারা আর কাজ করে না তখন তাদের ফেলে দেওয়া উচিত নয়)।

এর অর্থ হ'ল প্রায় সমস্ত ফাইল পুনরুদ্ধার করার জন্য আপনার কাছে হার্ড ড্রাইভের ঘেরযুক্ত একটি অতিরিক্ত পিসি থাকতে হবে । গুরুত্বপূর্ণ বিষয় হ'ল পুনরুদ্ধার করার জন্য হার্ড ডিস্কে কোনও কিছু লেখা এড়ানো নয়: আপনি যে ডেটা লিখেছেন তা লিঙ্কযুক্ত ফাইলগুলিকে ওভাররাইট করে দেবে।

200_success এর মন্তব্যে নিবন্ধে উল্লিখিত হিসাবে , আপনি যদি স্মার্ট অভিনয় করেন, আপনি অতিরিক্ত পিসি ছাড়াই মেশিনটি ফিরে পেতে পারেন। যদি আপনি কেবল ডেটা সম্পর্কে যত্নশীল হন তবে আমি বিরক্ত করব না a অতিরিক্ত পিসি দিয়ে এটিকে পুনরুদ্ধার করা আরও সহজ।


ভার্চুয়ালবক্স ডিস্ক স্ন্যাপশট সমর্থন করে।
নাথান ওসমান

1
নোট করুন যে ভাইরাসগুলি প্রায়শই ভিএমগুলি সনাক্ত করার জন্য ডিজাইন করা হয়, তাই আমি এই ভাইরাস সনাক্তকরণ প্রক্রিয়াটিকে পরামর্শ দেব না। একটি ছোট প্রশ্ন: বাকী চারটি ডিরেক্টরি "সত্য" ডিরেক্টরি নয়, তাই না? তারা আসলে হার্ড ড্রাইভে নেই? এই কমান্ডটি চালানোর পরে হার্ড ড্রাইভে কী থাকবে?
raptortech97

2
@ raptortech97 rmহার্ড ড্রাইভ থেকে জিনিসগুলি সত্যিই মুছে দেয় না, এটি কেবল ফাইল-সিস্টেম ট্রি থেকে ডিস্কের প্রকৃত ডেটা "আনলিঙ্কস" (বিচ্ছিন্ন করে) এটিকে নিখরচায় চিহ্নিত করে (যাতে এটি সাধারণ কম্পিউটার ব্যবহারের ফলে শেষ পর্যন্ত ওভাররাইট হয়ে যেতে পারে)। সুতরাং আপনি যদি বলুন, rm -rf ~যতক্ষণ না আপনি দ্রুত কাজ করেন (উদাহরণস্বরূপ extundelete) যতক্ষণ না সমস্ত কিছু হারিয়ে যায় না । আপনি এটিকে আপনার মেলবক্সে "মুছে ফেলা" ফোল্ডারের আরও অবিশ্বাস্য সংস্করণ হিসাবে ভাবতে পারেন, আপনি যদি খুব বেশিক্ষণ অপেক্ষা না করেন তবে আপনি জিনিসগুলি ফিরে পেতে পারেন তবে শেষ পর্যন্ত এটি শুদ্ধ হয়ে যাবে।
টমাস

@ raptortech97 অন্যদিকে, যদি কোনও কারণে আপনি ব্যবহার না করেন rmতবে shred, এটি বেশ গেমস হয়ে গেছে, যদিও আপনার সম্ভবত নিজের ভুলটি অনুধাবন করার এবং সময় কাটাতে বেশি সময় লাগবে বলে পরিত্যাগ করতে পারেন।
টমাস

5
যে ডিরেক্টরিগুলি রাখা হচ্ছে তা সম্ভবত কিছু ফর্ম বা অন্যের মাউন্ট পয়েন্ট। এবং যে কমান্ডগুলি কাজ চালিয়ে যাচ্ছে তা হ'ল বাশ বিল্টিন কমান্ডগুলি, পৃথক বাইনারি নয়। lsচলে যাওয়ার সময় for i in /*; do echo $i; doneকাজ করা উচিত। এবং প্রতিস্থাপন catকরতে আপনি যেমন একটি কমান্ড ব্যবহার করতে পারেন while read i; do echo $i; done < /proc/self/maps
এমভিজি

25

কারণটি হ'ল ফাইলের নামকরণ স্তরটি (যা আপনি দেখতে পাচ্ছেন ls) এটি কেবল আপনার সুবিধার জন্য। ফাইল সিস্টেম ড্রাইভার এবং কার্নেল কেবল ইনোড কী তা দেখায়। যখন কোনও ফাইল নাম দ্বারা রেফারেন্স করা হয়, তা অবিলম্বে ইনোডে অনুবাদ করা হয় যার মধ্যে অনুমতি, ডিস্কের ডেটা ব্লক, মালিক আইডি, গ্রুপ আইডি এবং লিঙ্কের গণনা সহ সমস্ত মেটাডেটা থাকে।

লিঙ্ক গণনা এখানে আসলে কি গুরুত্বপূর্ণ। আপনি যখন কোনও ইউএনআইএক্স সিস্টেমে কোনও ফাইল মুছবেন তখন প্রকৃত সিস্টেম কলটি একটি unlink। হুডের নীচে যা ঘটছে তা হ'ল লিঙ্ক গণনা (ফাইলের নামকরণের ফাইলের নামের নাম) সেই ইনোডকে নির্দেশ করে হ্রাস করা হয়েছে। ফাইল সিস্টেমটি জানে যে লিঙ্কের সংখ্যা শূন্যে পৌঁছে গেলে কোনও ফাইল মুছে ফেলা হয়।

যখন কোনও ফাইল এটি দ্বারা মুছে ফেলা rmহবে তখন ডিরেক্টরি ফাইলটিও সম্পাদনা করবে (হ্যাঁ, এটি কেবলমাত্র একটি ফাইল যা এই উত্তরটির জন্য গুরুত্বপূর্ণ নয় এমন কয়েকটি বিট ছাড়াও ফাইলের নাম এবং ইনোড রয়েছে)। তবে এটি লিঙ্কযুক্ত যা আসলে ডিস্কের সংস্থানকে মুক্ত করে।

এটি আরও কিছু আকর্ষণীয় প্রভাব বাড়ে। প্রথমত, এমন কোনও ফাইল উন্মুক্ত করা সম্ভব যার লিঙ্ক গণনাটি শূন্য। rm -rf /এন্ট্রি মুছে ফেলা হলে এটি ঘটে /bin/rm। ফাইলটি খোলা আছে (এটিতে একটি ফাইল হ্যান্ডেল রয়েছে) তবে ইনোডটি মোছা হিসাবে চিহ্নিত হয়েছে (লিঙ্ক কাউন্ট = 0)। ফাইল হ্যান্ডেল বন্ধ না হওয়া পর্যন্ত ডিস্ক সংস্থানগুলি প্রকাশ এবং পুনরায় ব্যবহার করা হবে না।

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

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


অন্য উপায়ে খুঁজছেন, লিঙ্কের গণনা শূন্য নয়, কারণ একটি ফাইল খোলার ফলে / প্রোকের মধ্যে একটি লিঙ্ক যুক্ত হয়।
অরেঞ্জডগ

@ ওরেঞ্জডগ, প্রোফস আনমাউন্ট না থাকলেও এই আচরণটি এখনও বিদ্যমান।
চার্লস ডাফি

1
@ ওরেঞ্জডগ চার্লস ডাফি সঠিক। / Proc এ ফাইলগুলি হ্যান্ডলগুলি লিঙ্কের গণনাটি সামঞ্জস্য করে, ইনোডগুলিতে কোনও পরিবর্তন করে না
ডেভিড হোলজার 19

/ proc এবং / sys বর্তমান সিস্টেমের (কার্নেল) রাষ্ট্রের প্রতিচ্ছবি। কেবলমাত্র ফাইল ও ডিরেক্টরিতে ক্রিয়াগুলি কেবলমাত্র সিস্টেমের স্থিতি পরিবর্তন করে।
একটি সিভিএন

18

পূর্ববর্তী উত্তরগুলি ভাল, তবে আমি একটি বিবরণ স্পষ্ট করতে চাই:

rmশুধু একটি আদেশ নয়। এটি পাওয়া যায় এমন একটি প্রোগ্রাম PATH

অতএব আপনি যখন মৃত্যুদন্ড কার্যকর করেন তখন নিম্নলিখিতটি হয়:

  • আপনি কল (মূল হিসাবে) rm -rf /
  • কর্মসূচির উদাহরণ হিসেবে বলা যায় rmআর্গুমেন্ট সহ মেমরি লোড হয় -rfএবং/
  • এই যুক্তিগুলির ভিত্তিতে প্রোগ্রামটি rmতার ক্রিয়াকলাপগুলি শুরু করে (মাউন্ট / পার্টিশনের সমস্ত কিছুর মধ্য দিয়ে চলছে এবং এর উল্লেখগুলি পুনরাবৃত্তভাবে অপসারণ করে [প্রযুক্তিগততার জন্য দুঃখিত;]])
  • এটি শেষ হয়ে গেলে rmপ্রোগ্রামের উদাহরণটি লোড করা হয়
  • এই মুহুর্তে মেমরির একমাত্র জিনিসগুলি সেই প্রোগ্রামগুলি যা আগে লোড করা হয়েছিল (যেমন উশুন্টু, ডেস্কটপ এনভায়রনমেন্ট, কার্নেল, ড্রাইভার ইত্যাদি ক্ষেত্রে টার্মিনাল খোলা থাকলে বাশ)
  • যদি আপনি অন্য কোনও কমান্ডকে কল করার চেষ্টা করেন (যা লিনাক্সের ক্ষেত্রে এটি একটি স্বতন্ত্র প্রোগ্রাম হিসাবে পরিণত হয়), এটি ব্যর্থ হবে কারণ প্যাথ লোকেশনে এমন কোনও প্রোগ্রাম পাওয়া যায় নি (এবং প্যাথের অবস্থানগুলি আর বিদ্যমান নেই)। তবে একবারে লোড করা সমস্ত কিছু এখনও চলবে

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

পিএস: এই অশুভ কমান্ডটি এমনকি রুট স্বতন্ত্র মোছার মতো দৌড়েছে everything, এটি কিছু কার্নেল সুবিধাযুক্ত প্রক্রিয়াগুলি /procমুছে ফেলতে পারে না এবং /devআপনার সিস্টেমে ফাইল হিসাবে উপস্থিত হওয়া ডিভাইসগুলি থেকে কিছু স্টাফ মুছতে পারে না । প্রকৃতপক্ষে, রুটটি আমাদের মনে হয় তত সর্বশক্তিমান নয়, অন্যদিকে কার্নেলটি।

পিপিএস: এছাড়াও দ্বিতীয় চিন্তার হিসাবে আপনার কাছে এখনও ফাইলগুলি থাকবে যা lockedমুছার চেষ্টা করার সময় অন্য প্রক্রিয়া দ্বারা ছিল ।


লিনাক্সে আপনি অবশ্যই রুট হিসাবে চলার সময় অবশ্যই ডিভাইস নোডগুলি সরাতে পারবেন। তবে হ্যাঁ, আপনি /procযেটি কেবলমাত্র পঠনযোগ্য ফাইল সিস্টেম থেকে কোনও কিছুই মুছতে পারবেন না । অনুরূপ জন্য /sys। আমি বিশ্বাস করি আপনি মাউন্ট পয়েন্টগুলিও মুছতে পারবেন না।
ব্রায়ান

@ অ্যালেক্সকি আমি "নন-কার্নেল এম্বেডড কমান্ড" (বা পুরোপুরি এই বাক্যটি এড়াতে) বলতে কী বোঝাতে চাইছি তা স্পষ্ট করতে সম্পাদনা করার পরামর্শ দিচ্ছি। মনে হচ্ছে আপনি বলছেন এখানে কমান্ড রয়েছে যা আপনি শেল দিয়ে চালাতে পারেন যা সরাসরি কার্নেলের মধ্যে প্রয়োগ করা হয় যাতে তারা সবসময় কোনও কাজই না করেই কাজ করে। (যা সম্ভবত আপনি জানেন তবে অনেক পাঠক তা না-ও করতে পারেন: আপনি যখন কোনও কমান্ড চালাবেন cd, তখন শেলটি বিল্টিনকে সেই নামে ডাকে - সেই কমান্ডটি শেলটিতে নির্মিত হয়, কার্নেল নয়)) মানে Alt + SysRq "কমান্ড"?
এলিয়াহ কাগান

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

@ এলিয়াকাগান যেমন আমি ডিসট্রো স্বাধীন থাকার চেষ্টা করেছি, তাই আমি এই শব্দটি ব্যবহার করেছি। এর অর্থ সমস্ত সিস্টেমে নয় ক্লাইম কমান্ড মানে বাহ্যিক প্রোগ্রাম। তবে ধন্যবাদ, এটি নির্দেশ করার জন্য, আমি বিষয়টিটি পরিষ্কার করব।
আলেক্সি কামেনস্কি

@ অ্যালেক্সকি আমি বিশ্বাস করি যে /dev/ptsএটি একটি পর্বতমালা হওয়ায় আপনি অপসারণ করতে পারবেন না । (এবং কেবল একটি পঠনযোগ্য ফাইল সিস্টেমও))
ব্রায়ান

1

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

ওএস আর কাজ করবে না।

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


4
কার্নেল আটকে যাবে কেন? মাইনমা ​​উত্তরটি অন্যথায় প্রস্তাব দেয় এবং আমি যা প্রত্যাশা করতাম তা সমর্থন করে।
এমভিজি

4
প্রোগ্রামগুলি মেমরি থেকে চালিত হয়, হার্ড ড্রাইভ নয়। কার্নেলটি জানত না যে কোনও রিবুট না হওয়া পর্যন্ত কিছু ভুল।
ফায়ারফক্স

ভাল হতে পারে আমার ব্যবহৃত শব্দগুলি পরিবর্তন করতে হবে, কার্নেলটি ডিভাইস, প্রোগ্রাম ইত্যাদি ব্যতীত কমবেশি "আটকে" আছে এবং আপনি যদি রুট কনসোলের সামনে না থাকেন তবে খারাপ জিনিস আপনি করতে পারবেন না, এমনকি তার উপরও কনসোল আপনি খারাপ জিনিস করতে পারবেন না। তবে আমি আমার উত্তরে আমার কথাটি পরিবর্তন করব কারণ এটি বিভ্রান্তিকর, আমি সম্মত।
s1mmel

0

দয়া করে সচেতন হন যে সিস্টেমে সেলিনাক্স রয়েছে এবং সেলিনাক্স প্রয়োগকারী মোডে রয়েছে এবং সেলিনাক্সের নীতিগুলি সঠিকভাবে সেট আপ করা হয়েছে; তাহলে অনেক কিছুই ঘটবে না।

সেলিনাক্স হ'ল বাধ্যতামূলক অ্যাক্সেস কন্ট্রোল, যার অর্থ অনেকগুলি বিষয় হ'ল সিস্টেমের অন্য কোনও ব্যবহারকারীর চেয়ে মূল ব্যবহারকারীকে সিস্টেম ধ্বংস করার পক্ষে সত্যিকারের বেশি শক্তি নেই।

সেলিনাক্স কার্নেলে প্রয়োগ করা হয়; এটির চারপাশে যাওয়ার জন্য আপনাকে কার্নেলের সাথে আপস করতে হবে।

ভাল সেলিনাক্স নীতিমালা সহ একটি সুনির্দিষ্ট ডিজাইনের সিস্টেমে রুট সিস্টেমে খুব বেশি কিছু করতে সক্ষম হবে না।

অ্যান্ড্রয়েডের পরবর্তী সংস্করণগুলি কেবল এই কারণে সেলিনাক্স প্রয়োগ করছে।

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