লিনাক্সের অধীনে কোনও প্রোগ্রাম দ্বারা তৈরি ফাইল সিস্টেম পরিবর্তনগুলি ট্র্যাক, সেভ এবং রিভার্ট করুন


9

আমি সক্ষম হতে চাই, যখন ইনস্টলারের মতো কোনও প্রোগ্রাম চালানো হয় তখন আমার ফাইল সিস্টেমে করা পরিবর্তনগুলির তালিকাটি ট্র্যাক করুন যাতে আমি পরে সেগুলি ফিরিয়ে আনতে পারি।

সম্পাদনা: এটি একটি প্যাকেজবিহীন প্রোগ্রাম সম্পর্কিত। আমি যতদূর পারি অ্যাপটি-গেট ব্যবহার করি।

আদর্শভাবে আমি এমন কিছু করতে সক্ষম হতে চাই:

(sudo) catch-modifs some-installer.bin > fsmodifs.patch

এবং তারপর:

(sudo) revert-modifs fsmodifs.patch

এটি করার কোনও সুবিধাজনক উপায় নেই?

উত্তর:


1

সম্ভবত এটির সবচেয়ে সহজ (?) উপায় হ'ল একটি "অবিরাম ডেটা পার্টিশন" সহ একটি লাইভ ইউএসবি চালু করা। (বা এফেক্টটি নিজের মতো করে বানাতে, ক্রুট কারাগারে: একটি আরও লেয়ারের উপর একটি আরডাব্লু লেয়ার মাউন্ট করুন।) আর ডাব্লু ফাইল সিস্টেমের একটি স্ন্যাপশট নিন - এটি একটি তাজা বুটের পরে খুব পাতলা হওয়া উচিত - তারপরে আপনার ইনস্টলারটি চালান। এটি পরিবর্তিত বা তৈরি করা প্রতিটি ফাইলই rw "স্থায়ী ডেটা" ওভারলে পার্টিশনে থাকবে। এমনকি সরানো ফাইলগুলি "ম্যাজিক ডটফিলস" হিসাবে উপস্থিত হবে।


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

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

2

ট্রিপওয়্যারের দিকে একবার নজর দিন? ট্রিপওয়ায়ার আপনার সক্রিয় উদাহরণের চেয়ে বেশি প্যাসিভ তবে এটি এখনও আপনার পক্ষে কাজ করতে পারে।

http://www.linuxjournal.com/article/8758

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


1

আপনার মানে "চেকইনস্টল"? আমার কাছে মেকফাইল না থাকলে এটি কি কাজ করে? আমার ক্ষেত্রে (একলিম) জার ইনস্টলারটির মাধ্যমে ইনস্টলেশনটি করা হয়েছিল।

না, আমার অর্থ ইনস্টলওয়াচ যা চেকইনস্টল-এর একটি অংশ।
কেরুব

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

হ্যাঁ কিন্তু দৃশ্যত Installwatch একা আর একটি দীর্ঘ সময়ের জন্য বজায় হয়েছে। এছাড়াও ইনস্টলওয়াচ লগগুলিকে ফিরিয়ে আনতে সক্ষম করতে আপনার চেকইনস্টল লাগবে। আমার এখনও তাকানো উচিত। ধন্যবাদ।

1

লাইব্রেরি ফাংশন LD_PRELOADবাধা দেয় openএবং পথের নাম পরিবর্তন করে / আউটপুট লগ করে / ফাইল খোলার আগে একটি ব্যাকআপ দেয় এমন একটি লাইব্রেরি লোড করতে ব্যবহার করুন।

এর উত্স কোডটি একবার দেখুন strace


হ্যাঁ, তবে যেমনটি কেউ বলেছে, প্রোগ্রামটি যদি স্থিরভাবে সংযুক্ত থাকে তবে কী হবে?
ইয়ুভেন

0

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

আপনি কি সত্যিই কিছু পদ্ধতির দ্বারা তৈরি ফাইল পরিবর্তন অনুসরণ করতে চান, আপনি ব্যবহার করতে পারে strace, অথবা ltraceধরা সিস্টেম কল। আপনি উদ্ভাবিত এবং সম্পর্কিত সুবিধাও করতে পারেন ।

কিন্তু আমি একটি জানা নেই catch-modifs& revert-modifsমত আপনি চান।

আমি আপনার অ্যাপ্লিকেশনটির জন্য কোনও ইনস্টলার না করার পরামর্শ দিচ্ছি, তবে প্যাকেজ ম্যানেজারটি ব্যবহার করার জন্য, সুতরাং আপনার আবেদনের জন্য .deb(এবং / অথবা .rpm) প্যাকেজ সরবরাহ করার জন্য। তারা নির্ভরতা সম্পর্কিত সমস্যাগুলি আপনার নিজের ইনস্টলারের চেয়ে ভাল পরিচালনা করবে।


হ্যাঁ, আমি সারাক্ষণ অ্যাপ-গেট ব্যবহার করি। আমি আমার নিজের অ্যাপ্লিকেশনগুলির বিষয়ে বলছিলাম না, আনপ্যাকড প্যাকেজগুলির বিষয়ে বলছিলাম। আমার সবসময় হাতে একটি .দেব থাকে না।

আপনার উল্লিখিত আনপ্যাকড অ্যাপ্লিকেশনগুলিতে তারা কোন ফাইল ব্যবহার করবে এবং কীভাবে সেগুলি ইনস্টল করা উচিত তা নথিভুক্ত করা উচিত।

If তারা যদি না করে? আমি জানতাম যে আমি সেগুলি নিজেই প্যাকেজ করতে পারি, তবে এটি সোজা নয় । প্লাস যেমন কমান্ডগুলি আপনার তৈরি কিছু সিস্টেম স্ক্রিপ্টগুলি নিরাপদে পরীক্ষার জন্য কার্যকর হতে পারে।

আমি সম্মতি দিচ্ছি যে আপনার

0

আপনি যা চান তা অর্জনের সহজ উপায়: একটি ব্র্যান্ড-নতুন ভার্চুয়াল মেশিন ইনস্ট্যান্সে "অবিশ্বস্ত" অ্যাপ্লিকেশনটি ইনস্টল করুন (ভিএমওয়্যার ওয়ার্কস্টেশন, ওরাকল ভার্চুয়ালবক্স, ইত্যাদি)।

আপনি যখন আর সিদ্ধান্ত নিতে চান না তখন ভার্চুয়াল মেশিনটি মুছুন।

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


বাহ, ভার্চুয়াল মেশিনটি অবশ্যই স্পষ্টভাবে ওভারকিল ... আমাকে কিছু সুবিধাজনক উপায়ে কিছু কনফিগারেশন ফাইল সংরক্ষণ এবং ব্যাকআপ করা দরকার।
ইয়েন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.