লিনাক্স কেন 'init = / বিন / বাশ' অনুমতি দেয়?


51

আমি সম্প্রতি জানতে পেরেছি যে বুট করার আগে আমি GRUB সম্পাদনা করি এবং আমি যুক্ত করলে rw init=/bin/bashআমি রুট শেলটি দিয়ে শেষ করি।

এমন একটি অবস্থার কারণে যে আমি কেন এটি ঘটে তা জানতে চাই everything মানে এটা কি বাগ? এটি একটি বৈশিষ্ট্য? আপনার যদি কোনও কম্পিউটারে শারীরিক অ্যাক্সেস থাকে কেবল তখনই এটি কাজ করে অ্যাডমিনদের জিনিস ঠিক করার জন্য?

এটি GRUB বা প্রকৃত কার্নেল দ্বারা সরবরাহ করা হয়েছে?


12
আপনি যদি এটি "ফিক্স" করতে চান তবে GRUB এবং আপনার BIOS কে একটি পাসওয়ার্ড দিয়ে লক করুন এবং আপনার হার্ড ডিস্কটিকে প্রথমে বুট ক্রমে রাখুন। অন্য কারও কাছে যদি শারীরিক অ্যাক্সেস থাকে এবং (অ-এনক্রিপ্ট করা) হার্ড ডিস্কটি অন্য কম্পিউটারে রাখতে পারেন তবে আপনি যেভাবেই হেরে
গেছেন

উত্তর:


44

এটি একটি বৈশিষ্ট্য, এবং এটি সিস্টেম রক্ষণাবেক্ষণের জন্য ব্যবহৃত হয়: এটি সিসাদমিনকে মেস-আপ ইনিশিয়ালাইজেশন ফাইলগুলি থেকে সিস্টেম পুনরুদ্ধার করতে বা ভুলে যাওয়া পাসওয়ার্ড পরিবর্তন করতে দেয়।

রেড হ্যাট মেলিং তালিকার এই পোস্টটিতে কিছু বিষয় ব্যাখ্যা করা হয়েছে:

ইউনিক্সের মতো সিস্টেমে, init হ'ল প্রথম প্রক্রিয়া, এবং সমস্ত প্রক্রিয়ার চূড়ান্ত পূর্বপুরুষ কখনও চালিত হয়। এটি সমস্ত init স্ক্রিপ্ট চালানোর জন্য দায়ী।

আপনি লিনাক্স কার্নেলটিকে / init / bin / bash কে init হিসাবে চালানোর জন্য বলছেন, তার পরিবর্তে সিস্টেম আরম্ভ করা যাবে না। [...]

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

এছাড়াও, একটি মন্তব্যে উল্লিখিত হিসাবে, rwপতাকাটি পৃথক পৃথক init=, এটি কেবলমাত্র সিস্টেমটিকে রিড-রাইট হিসাবে রুট ফাইল সিস্টেমটি মাউন্ট করতে বলে (যাতে আপনি উদাহরণস্বরূপ ভুল কনফিগার করা ফাইল সম্পাদনা করতে পারেন বা একটি পাসওয়ার্ড পরিবর্তন করতে পারেন)।


2
এছাড়াও, rwথেকে সম্পূর্ণ পৃথক init=। প্রাক্তন কেবল কার্নেলকে মূল ফাইল সিস্টেম রিড-রাইটিং মাউন্ট করতে বলে।
অ্যালেক্সিয়োস

19

আপনার সিস্টেমে দৌড়ানোর এবং ডিবাগিংয়ের জন্য প্রক্রিয়া রয়েছে (init প্যারামিটারের মতো) এবং এটিতে সুরক্ষা ব্যবস্থা রয়েছে যাতে অযাচিত ব্যবহারকারীদের তাদের সুবিধা গ্রহণ থেকে বিরত রাখা যায়। এগুলি বৈশিষ্ট্যগুলি রয়েছে, বাগ নয়।

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

আপনার সিস্টেম (সম্ভবত একটি পিসি, তাই BIOS) বুটলোডার লোড করে এবং স্পষ্টতই, বুটলোডার সুরক্ষা এটি প্রয়োগ করে না। আপনি যদি ইউএসবি বা এরকম থেকে বায়োস বুট তৈরি করতে বাধা দিতে চান, আপনাকে সেই স্তরে এটি করা দরকার।

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

সিকিউরিটি এমনই। হাতি সমস্ত পথ নামা।


চমৎকার সারসংক্ষেপ। ভ্যানের বিরুদ্ধে সম্ভাব্য উত্তর হিসাবে এটিতে এইচডিডি এনক্রিপশন যুক্ত করতে পারে।
এমভিজি

11

কম্পিউটার শুরু হওয়ার সাথে সাথে এটি "init" নামে একটি প্রোগ্রাম চালায় যা সাধারণত /bin/initবা এগুলিতে পাওয়া যায় /sbin/init। এই প্রোগ্রামটি সমস্ত সিস্টেম সূচনার জন্য এবং ব্যবহারযোগ্য পরিবেশ তৈরির জন্য দায়ী।

পরিবর্তে init=/bin/bashকার্নেলটি চালনার জন্য নির্দিষ্ট /bin/bashকরে (যা শেল)। নির্দিষ্টকরণ rwকার্নেলকে কেবল-পঠন-মোডের পরিবর্তে পঠন-রাইটিং মোডে হার্ড ডিস্ক দিয়ে বুট করতে বলে। Ditionতিহ্যগতভাবে কার্নেলটি কেবল পঠনযোগ্য মোডে ডিস্ক দিয়ে শুরু হয় এবং পরে একটি প্রক্রিয়া রিড-রাইটে স্যুইচ করার আগে ডিস্কের অখণ্ডতা পরীক্ষা করে।



1

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


1

init=যে কোন এক্সিকিউটেবল নিতে পারেন

init=শেল স্ক্রিপ্ট সহ যে কোনও এক্সিকিউটেবল গ্রহণ করতে পারে ।

এখানে উদাহরণস্বরূপ আমি দেখিয়েছি যে সংকলিত একটি নির্বিচারে ন্যূনতম সি তৈরি করা যায়init : কীভাবে একটি কাস্টম লিনাক্স ডিস্ট্রো তৈরি করতে পারি যা কেবল একটি প্রোগ্রাম চালায় এবং অন্য কিছুই নয়?

সুতরাং কেন এটি সমস্ত কিছু গ্রহণ করবে না/bin/bash , যা কেবলমাত্র একটি নিয়মিত সম্পাদনযোগ্য এবং বাস্তবে কার্যকর হতে পারে? :-)

এর পরে, আপনার নিয়মিত initযেমন সিস্টেমেড বা ব্যসিবক্সে ট্রেড-অফগুলি কী হবে তা বোঝার চেষ্টা করা উচিত should

মূলত, একটি কাঁচা সহ /bin/bash, আপনি:

চাকরির নিয়ন্ত্রণ busybox 'Init উপর পুনরুদ্ধার করা যেতে পারে এবং অন্যান্য অনুরূপ একটি নেতৃস্থানীয় সঙ্গে inits -মধ্যে inittab:

tty3::respawn:-/bin/sh

আরও সাধারণ inittabএন্ট্রি, যা লগইন ব্যবহার করে এবং যদি আপনি সিটিআরএল + ডি করেন তবে শাঁস তৈরি করে রাখুন:

::respawn:/sbin/getty -L ttyS0 0 vt100

যা gettyএক্সিকিউটেবল, কিন্তু টোডো ব্যবহার করে : আমি ব্যাসিবক্স ছাড়া তাদেরকে স্প্যান করতে সক্ষম হইনি init: কমান্ড লাইন থেকে শুরু করুন?

আপনি এই সেটআপটি এটির সাথে চারপাশে খেলতে এবং উপরের সিদ্ধান্তে পৌঁছাতে পারেন।

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