রুটের শেলটি ভুল করে পরিবর্তিত হয়েছে। আমি কীভাবে এটিকে বৈধ শেলের কাছে ফিরে যেতে পারি?


19

আমি ভুল করে enteredুকলাম

chsh -s /usr/bin 

পরিবর্তে

chsh -s /bin/bash 

এবং এখন আমি কোনও রুট শেলটিতে লগইন করতে পারি না, আমি কীভাবে ম্যানুয়ালি রুট হিসাবে ব্যাশ শেলটি শুরু করব?


কোন প্রসঙ্গে আপনি এটি করেছেন? একটি বর্তমান টার্মিনালে, ব্যবহারকারীদের ডিফল্ট শেল?
jgr208

সুডো গ্রুপে আপনার কি ব্যবহারকারী নেই?
রুই এফ রিবেইরো

3
না sudo vipwকাজ করে?
রুই এফ রিবেইরো

1
@ রুইএফরিবিড়ো হ্যাঁ এটি ধন্যবাদ জানিয়েছিল, আমি জানতাম না যে আমি সেই ফাইলে ডিফল্ট রুট শেলটি পরিবর্তন করতে পারি
চিসলেড অ্যাবস

1
এই ক্ষেত্রে প্রয়োজনীয় নয়, তবে আপনি যখন অজান্তে রুটকে জড়িত একটি বিপর্যয় তৈরি করেন, আপনি সাধারণত মেশিনটিকে একক ব্যবহারকারী মোডে নিয়ে যেতে পারেন, সমস্যাটি সমাধান করতে পারেন এবং তারপরে মাল্টি-ব্যবহারকারী মোডে ফিরে আসতে পারেন।
বোর্ডারাইডার

উত্তর:


29

মূলের অ্যাক্সেস না থাকলেও সুডো গ্রুপের ব্যবহারকারী এখনও সুবিধাপ্রাপ্ত কমান্ড চালাতে পারে - মনে হয় ত্রুটিটি সুডোতে নয়, তবে sudo chshকমান্ডের অন্য কোথাও (যেমন chsh ত্রুটি) রয়েছে।

যেমন আপনার সুডো দৃশ্যত কাজ করছে।

Passwd ফাইলটি এর সাথে সম্পাদনা করা যেতে পারে:

sudo vipw

এবং রুট শেলটি ম্যানুয়ালি পরিবর্তিত হয়েছিল।

( /etc/passwdসাধারণত প্রথম লাইন )

root:x:0:0:root:/root:/bin/bash

ফোম মানুষ ভিআইপিডব্লু

ভিআইপিডাব্লু এবং ভিআইজিআর কমান্ডগুলি যথাক্রমে ফাইলগুলি / ইত্যাদি / পাসডাব্লু এবং / ইত্যাদি / গ্রুপ সম্পাদনা করে। -S পতাকা সহ, তারা যথাক্রমে those ফাইলগুলি, / ইত্যাদি / ছায়া এবং / etc / gshadow এর ছায়া সংস্করণ সম্পাদনা করবে। প্রোগ্রামগুলি ফাইল দুর্নীতি রোধে উপযুক্ত লক সেট করবে।


3
আমি সম্পর্কে জানতাম না vipwএবং vigr, আপনাকে ধন্যবাদ! আমি সর্বদা ব্যবহার করেছিsudo vim /etc/passwd
বিড়াল

3
আপনি visudo sudo.ws/man/1.8.15/visudo.man.html তেও আগ্রহী হতে পারেন , @ ট্যাক
রুই এফ রিবেইরো

3
বা sudo -e, যে কোনও সম্পাদনার জন্য এই লকিং-সম্পাদনা বৈশিষ্ট্যটি সম্পাদন করে।
কোজিরো

16

আপনার অন্য অ্যাকাউন্টে অ্যাক্সেস রয়েছে বলে ধরে নেওয়া অন্য একটি বিকল্প হ'ল ম্যানুয়ালি ডিফল্ট শেলটি নিজে ব্যবহার করে ওভাররাইড করা su --shell=/bin/bash:

-s, - শেল =
/ ইত্যাদি / শেল এটির অনুমতি দিলে শেল চালান

এর প্রাথমিক সুবিধাটি হ'ল এটির জন্য কেবল অন্য অ্যাকাউন্টে অ্যাক্সেস প্রয়োজন, অন্য কোনও সুবিধাযুক্ত অ্যাকাউন্ট নয় one


8

সুরক্ষার কারণে, পাঠ্য বা গ্রাফিকাল এবং ইউটিলিটিগুলি পছন্দ করে suএবং sudoএটি আপনাকে পৃথক ব্যবহারকারী হিসাবে কমান্ড চালানোর অনুমতি দেয় কিনা তা লক্ষ্যবস্তুর শেলের মাধ্যমে সমস্ত কমান্ড চালায় security যদি লক্ষ্য ব্যবহারকারীর শেলটি অ-কার্যকরী হয় তবে ভাল, আপনি ফলাফলগুলি দেখেছেন :-(

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

রেসকিউ সিস্টেমটি বুট করুন, আপনার আসল সিস্টেমের মূল ফাইল সিস্টেমটি কোথাও মাউন্ট করুন, বলুন /mnt/fooএবং /mnt/foo/etc/passwdশেলটি ঠিক করার জন্য সম্পাদনা করুন । সংরক্ষণ, আনমাউন্ট এবং আপনার কাজ শেষ।


কৌতুহলী, আপনি যদি এটি করেন এবং / etc / passwd ফাইলটি সরল পাঠ্যের পরিবর্তে একটি হ্যাশে থাকে তবে কি হবে?
jgr208

1
/etc/passwdপ্লেইন টেক্সট না? আমি এটি কমপক্ষে, এক দশকের মতো দেখিনি। এটি কি এখনও কিছু সিস্টেমে জিনিস? যাইহোক, আমার ধারণা chroot /mnt/foo chsh -s /bin/bashএই ক্ষেত্রে কৌতুকটি করতে পারে?
সেলেদা

আমার বর্ণিত সমস্যাটি কখনও ঘটেনি, তবে আমি লকডাউন সিস্টেমে কাজ করি যা হ্যাকারদের এড়াতে এবং এগুলি অ্যাক্সেস পাওয়ার পরেও আরও বেশি আপস করতে না পারায় সরল পাঠ্যে না থাকা / ইত্যাদি / পাসডাব্লুড থাকা দরকার। হুম যে কাজ করতে পারে, কেবলমাত্র আমি বলতে পারি আশা করি আমাকে কখনই চেষ্টা করতে হবে না এবং এটি বাস্তবে কাজ করে কিনা তা দেখুন।
jgr208

আমি ব্যবহারকারীর অ্যাকাউন্ট থেকে সুডো দিয়ে / ইত্যাদি / পাসডওডি সম্পাদনা করতে সক্ষম হয়েছি, আমি জানতাম না যে শেলটি এই ফাইলে সংজ্ঞায়িত করা হয়েছিল, ধন্যবাদ
ChiseledAbs

@ ছাইসেল্ডআবস ওহ, আপনি ছিলেন? আপনার জন্য ভাল, খুশি যে আপনি আপনার সমস্যার সমাধান করেছেন। আমি ভাবিনি যে এটি আপনাকে দেবে।
সেলেদা

6

যোগ init=/bin/bashআপনার কার্নেল কমান্ড লাইন (যদি কীড়া, প্রেস সঙ্গে বুট করার eসম্পাদনায় যান বুট এন্ট্রি), এবং আপনি একটি ব্যাশ শেল এমনকি একটি পাসওয়ার্ড সরবরাহ না করেও রুট হিসাবে চলমান থাকবে। আপনার রুট ফাইল সিস্টেমটি সম্ভবত এখনও পড়ার জন্য মাউন্ট করা হবে তবে আপনাকে প্রথমে এটি পুনরায় মাউন্ট করতে হবে, তারপরে আপনি শেলটি আবার পরিবর্তন করতে পারবেন chsh


4

sudo usermod -s /bin/bash jdoe

এর শেল পরিবর্তন করতে হবে jdoe করতে bash। তারপরে sudo egrep jdoe /etc/passwdআপনি যাচাই করতে পারেন ।

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