/ বিন / বাশের সামগ্রী কী কী এবং আমি যদি ভুলক্রমে সেগুলি ওভাররোট করি তবে আমি কী করব


24

আমি দুর্ঘটনাক্রমে / বিন / ব্যাশ ফাইলটি বোবা স্ক্রিপ্টের সাথে ওভাররোট করে ফেললাম যা আমি / বিন ফোল্ডারটির ভিতরে রাখতে চেয়েছিলাম।

আমি কীভাবে সেই ফাইলটির সামগ্রী ফিরে পেতে পারি? ওয়েবে থাকা বিষয়বস্তুগুলি খুঁজে পেতে এবং কেবল সেগুলিতে আবার অনুলিপি করার কোনও উপায় আছে কি? এখানে আমার বিকল্পগুলি কী, সেই টার্মিনালটি বিবেচনা করে "অনেক বেশি প্রতীকী লিঙ্কগুলি" সম্পর্কে কথা বলতে একটি ত্রুটি দেয়?

আমি এখনও এই ধরণের জিনিসটিতে একজন নতুন এবং আমি যে সমস্ত সহায়তা পেতে পারি তার প্রশংসা করি।

সম্পাদনা: আমি উল্লেখ করতে ভুলে গেছি আমি কালী ২.২ রোলিংয়ের সাথে রয়েছি, যা কিছু যুক্ত বৈশিষ্ট্য সহ বেশ কিছুটা ডিবিয়ান।

সম্পাদনা 2: আমিও মেশিনটি পুনরায় চালু করেছি, কারণ আমি কিছুদিন আগে পর্যন্ত আমার ভুল বুঝতে পারি নি। এটি একেবারে শক্ত করে তোলে।


9
মুছে ফেলা বাশ? কেবল zsh :-) </trol> ব্যবহার করুন
কেভিন

1
serverfault.com/questions/451528/… এবং আরও বেশ কয়েকজন
skandigraun

শারীরিক না ভিএম?
বেন অ্যাভেলিং

9
পরবর্তী সময়ের জন্য: সিস্টেম ডিরেক্টরিতে স্টাফ রাখবেন না । আপনি যদি কাস্টম স্ক্রিপ্ট এবং স্টাফ চান, তবে নিজেকে $HOME/.binএটিকে তৈরি করুন এবং এটি আপনার যুক্ত করুন PATHবা আপনার /usr/local/binসিস্টেম-ওয়াইড হওয়ার প্রয়োজন হলে ব্যবহার করুন । অথবা, আরও ভাল, একটি প্যাকেজ তৈরি করুন।
spectras

উত্তর:


33

bashএটি একটি শেল, সম্ভবত আপনার সিস্টেমের শেল, সুতরাং এখন অদ্ভুত জিনিসগুলি ঘটে, যখন শেলের কিছু অংশ এখনও মেমোরিতে থাকে। একবার লগ আউট বা পুনরায় বুট করার পরে আপনি আরও গভীর সমস্যায় পড়বেন।

সুতরাং প্রথমটি হ'ল আপনার শেলটি নিরাপদ কিছুতে পরিবর্তন করা উচিত। আপনি কী শেল ইনস্টল করেছেন তা দেখুন

cat /etc/shells

তারপরে সেখানে তালিকাভুক্ত অন্য শেলগুলির মধ্যে একটিতে আপনার শেলটি পরিবর্তন করুন

chsh -s /bin/dash

আপডেট করুন, কারণ আপনি ইতিমধ্যে রিবুট করেছেন:

আপনি ভাগ্যবান যে আজকাল বুট প্রক্রিয়া নির্ভর করে না bash, সুতরাং আপনার সিস্টেম বুট হয়, আপনি কেবল একটি কমান্ড লাইন পেতে পারেন না। কিন্তু আপনি সম্পাদনা করতে একজন সম্পাদক শুরু করতে পারেন /etc/passwdএবং শেল পরিবর্তন rootথেকে লাইন /bin/bashথেকে /bin/dash। লগ আউট এবং আবার লগ ইন করুন। কেবলমাত্র সেই ফাইলটিতে অন্য কোনও পরিবর্তন করবেন না, বা আপনি আপনার সিস্টেমকে পুরোপুরি জগাখিচুড়ি করতে পারেন।

তারপর আবার ইনস্টল করার চেষ্টা bashসঙ্গে

apt-get --reinstall install bash

সবকিছু সফল হলে আপনি chshফিরে যেতে পারেন bash

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


3
@ dr01: বাশ কীভাবে পালানো কাজ করে তা দেওয়া, এটি কোনও ভুল জায়গায় থাকা উদ্ধৃতির বিষয় হতে পারে। command > /bin/bash ...বনাম ভাবুন command > (/bin/bash ...)
এমএসএলটাররা

7
এই শেষ বাক্যটি কঠোর ছিল ... :)
জেমস পুনরায় ইনস্টল করুন মনিকা

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

12
@ জামেসকপলক নং, এটি মোটেও কঠোর নয়। এটি সহজ সত্য। কালি বিশেষজ্ঞের দ্বারা ডিজাইন করা একটি পেশাদার সরঞ্জাম । এমনকি তারা তাদের ওয়েবপৃষ্ঠায় যতটা বর্ণনা করে। আপনি যদি বিশেষজ্ঞ না হন তবে আপনার আসলেই কালী চালানোর কোনও ব্যবসা নেই।
টেরডন

3
শেষ বাক্যটি কঠোর নয় । এটা সরল সত্য।
আন্দ্রে লাজারোটো

65

আপনার মেশিনটি বন্ধ করবেন না।

আপনার কি এখনও একটি চলমান শেল আছে? এটা কি বাশ? যদি তাই হয়, আপনি ভাল আছেন। (তবে এটি আর করবেন না))

চালান:

sudo cp /proc/$$/exe /bin/bash

ভয়েলা, সব ঠিক আছে।


যেহেতু মন্তব্যে কেউ সন্দেহ করে যে এটি কাজ করে:

[vagrant@localhost ~]$ cat /etc/shells 
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
[vagrant@localhost ~]$ grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[vagrant@localhost ~]$ echo $0
-bash
[vagrant@localhost ~]$ sudo rm /bin/bash
[vagrant@localhost ~]$ bash
-bash: /bin/bash: No such file or directory
[vagrant@localhost ~]$ sudo su -
su: /bin/bash: No such file or directory
[vagrant@localhost ~]$ sudo cp /proc/$$/exe /bin/bash
[vagrant@localhost ~]$ bash
[vagrant@localhost ~]$ exit
[vagrant@localhost ~]$ sudo su -
[root@localhost ~]# logout
[vagrant@localhost ~]$ 

18
যাই হোক না কেন, এর পরে, আপনার বিতরণ থেকে বাশ পুনরায় ইনস্টল করার পরামর্শ দেওয়া হয়েছে, যেমন সঠিক অনুমতিগুলির জন্য (কিছু রুটকিট শিকারী সেখানে পরিবর্তনের কারণে অবাক হতে পারে), হার্ড লিঙ্ক বা সিমিলিংক (যেমন /bin/shবা এর rbash) পুনরুদ্ধার করতেও
গিয়াকোমো ক্যাটেনাজি

4
@ গিয়াকোমো কেটেনাজি, আসলে এই পদ্ধতিটি অনুমতি সংরক্ষণ করে - এটি rootরান করার সময় ডিফল্ট cp। যদিও হার্ড লিঙ্কগুলি একটি ভাল পয়েন্ট।
ওয়াইল্ডকার্ড

1
যন্ত্রটি আবার চালু করা হয়েছিল। আমি একটি সাধারণ শেল খুলতে পারি না, তবে আমি জিইউআইয়ের মাধ্যমে সামগ্রীগুলি সম্পাদনা করতে পারি। আগেই বলা হয়েছে, "শিশু প্রক্রিয়া / বিন / বাশ কার্যকর করতে ব্যর্থ st (প্রতীকী লিঙ্কের অনেকগুলি স্তর)" উল্লেখ করে আমি একটি ত্রুটি পেয়েছি "
গারুকএপেক্স

5

আপনি যদি লগইন করতে পারেন তবে আপনি কোনও টার্মিনাল খুলতে বা অন্যথায় শেল অ্যাক্সেস করতে পারবেন না, তবে আপনি জিইউআইয়ের মাধ্যমে ফাইলগুলি অ্যাক্সেস করতে পারেন, যান /bin, যার নামগুলি শেষ হয়েছে এমন ফাইলগুলি সন্ধান করুন sh(তবে নয় .sh) এবং একটি চালান (ডাবল-ক্লিক করে) বা ডান ক্লিক)। বিশেষত, নিম্নলিখিতগুলির জন্য দেখুন:

  • sh
  • dash
  • ash
  • ksh (বা তার kshপরে একটি সংখ্যা; যেমন,  ksh93)
  • zsh
  • yash

বা, একটি শেষ অবলম্বন হিসাবে,

  • tcsh অথবা
  • csh

যদি আপনি কোনও শেল চলতে পারেন তবে ফিলিপসের উত্তরটি চেষ্টা করে দেখুন ।

আরেকটি পদ্ধতি হ'ল এই নির্দেশাবলী অনুসরণ করে একক-ব্যবহারকারী মোডে বুট করা কিন্তু init=/bin/shপরিবর্তে (বা অন্য শেলগুলির মধ্যে একটি) নির্দিষ্ট করুন init=/bin/bash

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