লিনাক্স ফাইন্ড কমান্ডটি খারাপ ব্যবহার করছে


14

সাম্প্রতিক দুর্বলতার প্রকাশের পরে সিস্টেম-সংশোধিত পরিষেবাটির অনুসন্ধান করা, আমি ফাইন্ড কমান্ড থেকে একটি খুব অদ্ভুত আচরণ দেখতে পেলাম।

 root@localhost:/# find . -name "*systemd-resolved*"
./usr/share/man/man8/systemd-resolved.service.8.gz
./usr/share/man/man8/systemd-resolved.8.gz

কমান্ডটি প্রথম রানের জন্য আউটপুট হিসাবে 0 বা দুটি লাইন দেয়। তবে আমি যদি দ্বিতীয় বার পেলাম কমান্ডটি চালাও:

root@localhost:/# find . -name "*systemd-resolved*"
./usr/share/man/man8/systemd-resolved.service.8.gz
./usr/share/man/man8/systemd-resolved.8.gz
./lib/systemd/systemd-resolved
./lib/systemd/system/systemd-resolved.service.d
./lib/systemd/system/systemd-resolved.service

এর অর্থ প্রথমবার, "অনুসন্ধান" আসলে সব কিছুই খুঁজে পায় না। এছাড়াও এটি কেবল একবারে ঘটে। পরের বার কমান্ড চালানো সঠিক আউটপুট প্রদর্শন করে। আমি এটি ডিবিয়ান 8 (জেসি) ইনস্টল করে অন্য কয়েকটি সিস্টেমে পরীক্ষা করেছি। কার্নেল ৪.৯++ তাদের ক্ষেত্রে এই সঠিক সমস্যাটি সর্বদা ঘটে তবে কার্নেল ৩.১16 সহ সিস্টেমে এটি ঘটে না।
সিস্টেম পুনরায় বুট করার পরে এগুলি আবার ঘটে। তবে আচরণ প্রতিটি পৃথক ব্যবস্থার জন্য একই রকম। এর অর্থ হ'ল যদি কোনও নির্দিষ্ট সিস্টেমে পরীক্ষা করে যদি প্রথম রানের জন্য দুটি লাইন আউটপুট (ভুলভাবে) ফিরে আসে এবং দ্বিতীয় রানের জন্য সঠিক আউটপুট আসে, তবে সিস্টেমটি পুনরায় বুট করার পরে কমান্ডের প্রথম রানটি আবার 2 টি লাইন প্রিন্ট করে। সুতরাং সিস্টেমগুলি প্রতিটি রিবুটের পরে একই আচরণ দেখায় (আমার পরীক্ষা অনুসারে)। ফাইলের বিবরণ নিম্নরূপ:

-rw-r--r-- 1 root root  ./usr/share/man/man8/systemd-resolved.service.8.gz
lrwxrwxrwx 1 root root  ./usr/share/man/man8/systemd-resolved.8.gz -> systemd-resolved.service.8.gz
-rwxr-xr-x 1 root root  ./lib/systemd/systemd-resolved
drwxr-xr-x 2 root root  ./lib/systemd/system/systemd-resolved.service.d
-rw-r--r-- 1 root root  ./lib/systemd/system/systemd-resolved.service

সম্পাদনা: যারা সমস্যাটি সম্ভবত এই নির্দিষ্ট ফাইলগুলির জন্য এই সুনির্দিষ্ট ক্ষেত্রে সম্পর্কিত হতে পারে তাদের পরামর্শ দেওয়ার জন্য: " সিস্টেম-সমাধান করা " ঠিক যেমন উদাহরণ is অন্যান্য কীওয়ার্ডগুলিও অনুসন্ধান করার সময় এটি ঘটে। এটি অন্য একটি উদাহরণ যা প্রথম বারের জন্য ভুল ফলাফল দেয়:

root@localhost:/# find . -name "*apache*"

ব্যাকপোর্ট রিপোজিটরি থেকে সর্বশেষ কার্নেল দিয়ে এখানে কেউই ডেবিয়ান 8 এ সমস্যাটি পরীক্ষা করতে সক্ষম নয়?


2
উদাহরণস্বরূপ ব্যবহার করে আপনি দুটি কলের ট্রেসের তুলনা করতে চেষ্টা করতে পারেন strace? আপনি কোন ওএসে ত্রুটিপূর্ণ আচরণটি পালন করেছেন? "উপরে মত 0 বা দুটি ফলাফল" বলতে কী বোঝায়? শূন্য বা আউটপুট দুটি লাইন, বা প্রস্থান কোড 0 + দুটি লাইন? নতুন শেল শুরু করার পরে বা রিবুট করার পরে এটি আবার ঘটে? এটি প্রাসঙ্গিক হতে পারে যে প্রথম কল কেবল ফাইলগুলি ফেরত দেয়, যখন দ্বিতীয়টি ফাইল এবং ডিরেক্টরিগুলি দেয়।
l0b0

1
@ l0b0 যেমন আমি বলেছি যে এটি একাধিক সিস্টেমে কার্নেল ৪.৯ এর সাথে ডেবিয়ানের সাথে ঘটে। আমি অন্য ডিস্ট্রোস চেক করিনি। 0 বা 2 এর অর্থ শূন্য বা আউটপুট দুটি লাইন। এটি প্রতিটি রিবুটের পরে ঘটে। আপনার শেষ বিবৃতিটি এখানে প্রযোজ্য নয়। এটি সবকিছু ফিরিয়ে দেওয়ার চেষ্টা করে। ডিরেক্টরি এবং ফাইল উভয়ই।
ব্যবহারকারী2808671

1
@ l0b0 ঠিক আছে আপনি কী খুঁজছেন তা সম্পর্কে আমি নিশ্চিত নই, তবে আপনি দেখতে পাচ্ছেন যে আমি আদেশটি উল্লেখ করেছি যাতে কেউ সমস্যাটি পুনরুত্পাদন করতে সক্ষম হয়। এই কমান্ডটি অবশ্যই "systemd- সমাধান করা" সমস্ত পাথ ফেরত দিতে হবে তবে তা হবে না। এই শর্তটি সন্তুষ্ট করে মোট পাঁচটি পথ রয়েছে তবে "সন্ধান করুন" প্রোগ্রামটি কেবল তাদের দুটি বা একটি বা শূন্যকে ফিরিয়ে দেয়। এখানে গুরুত্বপূর্ণ বিষয়টি হল সরঞ্জামটি ভুল আউটপুট দিচ্ছে এবং কিছু সঠিক পাথ মিস করে। এবং আমি যেমন উল্লেখ করেছি যে আমি এটি অন্যান্য সিস্টেমে ডেবিয়ান সহ পরীক্ষা করেছি, কার্নেল ৪.৯ রয়েছে তাদের এই সমস্যা রয়েছে। এটি ব্যবহারকারীর স্থানের বাইরে মারাত্মক কিছু হতে পারে।
ব্যবহারকারী2808671

2
@ মার্কওয়াগনার নং। আমি উভয়ই gnu অনুসন্ধানকারী এবং ডেবিয়ান ব্যাকপোর্টের মেলিং তালিকাতে একটি বাগ রিপোর্ট পূরণ করেছি। এটি আমার কাছে অত্যন্ত গুরুতর বলে মনে হচ্ছে কারণ এই সমস্যার উত্স অন্যান্য অনেকগুলি বিষয়কে প্রভাবিত করতে পারে যদিও আপনি জানেন না যে আপনি আমার সাথে একমত হন কিনা। যাইহোক "সন্ধান করুন" একটি খুব জনপ্রিয় সরঞ্জাম এবং এর আউটপুট অবশ্যই নির্ভরযোগ্য।
ব্যবহারকারী2808671

2
/lib/systemdমাউন্ট করা হয় কিভাবে ? এটি কোন ধরণের ফাইল সিস্টেম? যদি একটি পৃথক বিন্দু মাউন্ট, কি সময় এটা মাউন্ট ছিল?
অ্যান্ড্রু হেনেল

উত্তর:


4

ডেবিয়ান 8 এ ইনস্টলড থাকা ফাইন্ডুলের ডিফল্ট সংস্করণটি 4.4.2 এবং এটি জেসি সংগ্রহস্থলগুলির সর্বশেষতম সংস্করণ। আমি সন্ধানকারী উত্স কোডের সর্বশেষ সংস্করণ (4.6.0) ডাউনলোড করেছি এবং উত্স থেকে বাইনারিগুলি তৈরি করেছি। তারপরে আমি একই পরীক্ষা করেছিলাম এবং "ফাইন্ড" কমান্ড প্রথম রান করার জন্য সঠিক আউটপুট দেখায় ।

তারপরে আমি gnu আর্কাইভ থেকে ফাইন্ডুলস সংস্করণ 4.4.2 উত্স কোডটি ডাউনলোড করে সংকলন করেছি। সংকলিত ফাইন্ড কমান্ডের ক্ষেত্রেও একই সমস্যা ঘটল। সুতরাং এই সমস্যাটি সন্ধানী 4.6.0 এর সাথে ঘটছে না।

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

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