আমার বাশ ইতিহাসটি অপ্রত্যাশিতভাবে সাফ হওয়ার কারণ কি হতে পারে?


16

আজ আমি লক্ষ্য করেছি যে আমার বাশের ইতিহাস পুরোপুরি সাফ হয়ে গেছে। আমি ফাইলটি কার্যকরও করি নি history -cবা মুছেওনি .bash_history.bash_historyফাইল মুছে ফেলা ছাড়া এবং history -cকীভাবে বাশার ইতিহাস সাফ করা যায়?


2
এটি উদাহরণস্বরূপ ঘটতে পারে >.bash_history। হয়তো কেউ আপনার অ্যাকাউন্টে ছিল এবং তার লেজগুলি গোপন করার চেষ্টা করেছিল। (আপনার সিস্টেমের উপর নির্ভর করে) এর সাথে অস্বাভাবিক লগইন বার lastঅনুসন্ধান /var/log/auth.logকরুন।
অট--

উত্তর:


17

একসাথে একাধিক বাশ দৃষ্টান্ত বন্ধ করার সময়, একটি রেস শর্ত রয়েছে যা ইতিহাস সাফ হওয়ার কারণ হতে পারে। এটি ঘটে কারণ ব্যাশ ইতিহাস ফাইলটি লেখার সময় কোনও লকিং ব্যবহৃত হয় না।

চেট রেমি (বর্তমান ব্যাশ রক্ষণাবেক্ষণকারী) এই সমস্যাটির শর্তগুলির একটি ভাল সংক্ষিপ্তসার দিয়েছে :

বর্তমান (বাশ-৪.৩-ডিভেল) কোডটি কোনও ত্রুটি (lib / readline /istfile.c: ইতিহাস_ডো_রাইট ()) ধরে ধরে এই জাতীয় কিছু কাজ করে:

  • নতুন নামকরণ (হিস্টফাইল, হিস্টফিল ~)
  • O_CREAT | O_TRUNC দিয়ে ফাইল খুলুন
  • সমস্ত ইতিহাসের ডেটা ধরে রাখতে যথেষ্ট ম্যালোক বাফার
  • ইতিহাসের সমস্ত প্রবেশপত্র একটি লিখিত (2) কলে কল করুন
  • ফাইল বন্ধ করুন
  • লিঙ্কমুক্ত (হিস্টফিল ~)

বাশ -২.২ কোড হিস্ট্রি ফাইলটিকে ব্যাকআপ না করে ব্যতীত একইভাবে কাজ করে। আপনার কনফিগারেশনের মতো হিস্টপেন্ড সেট করা নেই, ধরে নিলে প্রতিটি শেল একই কাজ করে।

ইতিহাসের ফাইলটি শূন্য দৈর্ঘ্যের শেষ পর্যন্ত বেশ কয়েকটি উপায় রয়েছে: ম্যালোক ব্যর্থ হতে পারে, বা লেখাগুলি ব্যর্থ হতে পারে। বাশ -২.২-এ, সেই মুহুর্তে কাটা ইতিহাসের ফাইল সম্পর্কে কিছু করতে খুব দেরী। ব্যাশ -৩.৩ এ পূর্ববর্তী ইতিহাস ফাইলটি পুনরুদ্ধার করা হবে।

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

আরও কিছু সম্ভাবনা রয়েছে:

  • কিছু সময়ে, আপনার HISTSIZEবা HISTFILESIZE0 তে সেট করা হয়েছিল
  • এক পর্যায়ে আপনার পাঠ্যলাইন history-size0 তে সেট করা হয়েছিল
  • কেউ, ইচ্ছাকৃতভাবে বা অজান্তেই, বাশের ইতিহাস মুছলেন (মাধ্যমে > "$HISTFILE"বা অনুরূপ)

পরবর্তী ক্ষেত্রে, আপনি এটি পরীক্ষা করে দেখতে চাইতে পারেন যে কেউ আপনার অ্যাকাউন্টে অ্যাক্সেস করছে না এবং তাদের ট্র্যাকগুলি অপরিশোধিত উপায়ে লুকানোর চেষ্টা করছে। কটাক্ষপাত last, /var/log/auth(অথবা /var/log/secureসেন্টওএস / rhel দিকে) এবং আপনি এটি আছে যদি, কোনো প্রক্রিয়া অ্যাকাউন্টিং এবং / অথবা নিরীক্ষণ সফটওয়্যার ইনস্টল করা।


1

আমি কীভাবে দুর্ঘটনাক্রমে আমার বাশের ইতিহাস মুছলাম:

আমি আমার নিজস্ব বিকল্প টার্মিনাল রিডলাইন স্ক্রিপ্ট প্রথম নীতিগুলি থেকে রোল করছি: https://tiswww.cwru.edu/php/chet/readline/rluserman.html

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

স্মৃতিতে রেখে গেলে ইতিহাস পুনরুদ্ধার:

আপনি যদি এটি পুনরায় বুট করার আগে ধরেন, বা ক্লিয়ারিংয়ের আগে যদি কোনও টার্মিনাল খোলা রেখে দেওয়া হয়, আপনি স্মৃতিতে আপনার ইতিহাসটি সন্ধান করতে সক্ষম হতে পারেন। history | cut -c 8- > histback_user1.txtখোলা রেখে এবং প্রতিটি ব্যবহারকারীর জন্য সমস্ত টার্মিনাল চালান । যদি এটি আপনার বর্ধিত ইতিহাসের সাথে কোনও ফাইল তৈরি করে তবে আপনি এটির ~/.bash_historyসাথে প্রতিস্থাপন করতে পারেন histback_user1.txt। এছাড়াও সম্প্রতি সিস্টেমে লগইন করা সমস্ত ব্যবহারকারীর ইতিহাসের পাশাপাশি রুটের ইতিহাসও পরীক্ষা করে দেখুন। বহু পরিস্থিতিতে দুর্ঘটনাক্রমে বাশ ইতিহাস মুছে ফেলা সহজ, সুতরাং আপনি যদি ইতিহাসের কোনও ক্ষতি না হওয়ার বিষয়ে নিশ্চিত হতে চান তবে আপনার একটি দৈনিক ব্যাকআপ স্ক্রিপ্ট দরকার।


আপনাকে ধন্যবাদ । আমি জানিনা কী ঘটেছিল, তবে গতকাল আমার ইতিহাস পুনরায় সেট হয়ে গেছে এবং এটি এখনও অবধি লক্ষ্য করা যায়নি। তবে, ভাগ্যবান আমার, আমার কাছে একটি টার্মিনাল উইন্ডো খোলা ছিল না, তবে 10 (!)। এখন সব ঠিক আছে।
মার্চ ২৩7777
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.